[Gstreamer-openmax] Repeat Mode of Totem Player

Rob Clark rob at ti.com
Thu Aug 19 18:19:35 PDT 2010


ok, I think I'm managing to understand the sequence..

and btw, I'm not doubting you.. I'm just trying to make sure I understanding the issue properly.. we are using a branch of gst-openmax that significantly refactors the buffer passing for all GstOmxBase{Src,Filter,Sink} classes into g_omx_port_{send,recv}() so I'm getting a bit forgetful about the original logic.  (fwiw, in our case we pass the buffer back to the OMX component (FTB) rather than returning it directly to the queue on EOS.)

So I guess either a _release_buffer() or _push_buffer() in the case of EOS could work.  Although really I need to find some time to clean up and start pushing some patches again, because I believe there could be a lot of cleanup and simplification by pushing more of the common buffer/event passing logic to GOmxPort (which should perhaps be renamed to GstOmxPort).

Would you care to send a git patch to the list, and perhaps Felipe could review and push?

one note: in the future a git patch, so we could be sure of the parts of code that you are suggesting to change, and a gst log w/ *omx*:5 (or at least the relevant snippet of the log) so I can follow the program flow would make understanding easier.

BR,
-R

On Aug 18, 2010, at 7:26 PM, Mickey Kim wrote:

> 
> 
> Yes, buffer is back to gst-omx from openmax component. (by FillBufferDone)
> (This issue is for only output buffer, input buffer is ok.)
> 
> At initial time, 2 output buffer are pushed into gst-omx queue.
> Then 2 buffers are pushed and poped using g_omx_port_release_buffer, g_omx_port_request_buffer.
> 
> But eos buffer is only poped (not called g_omx_port_release_buffer).
> After that g_omx_port_flush is called.
> So only one buffer is remained in queue. 
> 
> And then play from the start of stream using this one buffer in queue.
> At third time playback, there is no buffer in queue.
> So g_omx_port_request_buffer is waiting infinitly in output loop.
> 
> Please remember that omx component always return buffer, gst-omx queue mechanism is not proper.
> 
> Regards,
> Mickey





More information about the Gstreamer-openmax mailing list