On Wed, Jan 26, 2011 at 8:51 AM, Felipe Contreras <felipe.contreras@gmail.com> wrote:

3) Your solution doesn't conform with GStreamer API

You can't just pad_buffer_alloc() and unref a buffer. If this buffer
comes from a sink that has a ring-buffer, like pulsesink, the sequence
would be screwed up.

note: this is generally a problem with OpenMAX, if you want to allow reverse caps negotiation to influence the output port params.  You need to allocate a buffer to trigger caps negotiation.. although that isn't yet a convenient point to use the buffer.  I guess you could stuff the buffer in some member field in GOmxPort or somewhere like that, and then use it later.  Not very elegant...

At least it isn't a problem with the video sinks I've seen.  But it is a valid point if you want to use OMX based audio decoders.