[Gstreamer-openmax] Repeat Mode of Totem Player

Felipe Contreras felipe.contreras at gmail.com
Mon Sep 13 01:53:35 PDT 2010


On Sat, Sep 11, 2010 at 7:36 PM, Clark, Rob <rob at ti.com> wrote:
> On Thu, Sep 9, 2010 at 6:06 PM, Felipe Contreras
> <felipe.contreras at gmail.com> wrote:
>>
>> On Mon, Aug 30, 2010 at 2:25 PM, Mickey Kim <jihun.kim at samsung.com> wrote:
>> > diff --git a/omx/gstomx_util.c b/omx/gstomx_util.c
>> > index 283c32d..ce226e0 100644
>> > --- a/omx/gstomx_util.c
>> > +++ b/omx/gstomx_util.c
>> > @@ -697,8 +697,17 @@ g_omx_port_flush (GOmxPort *port)
>> >         OMX_BUFFERHEADERTYPE *omx_buffer;
>> >         while ((omx_buffer = async_queue_pop_forced (port->queue)))
>> >         {
>> > -            omx_buffer->nFilledLen = 0;
>> > -            g_omx_port_release_buffer (port, omx_buffer);
>> > +            if (omx_buffer->nFlags & OMX_BUFFERFLAG_EOS)
>> > +            {
>> > +                omx_buffer->nFlags = 0;
>> > +                g_omx_port_push_buffer (port, omx_buffer);
>> > +                break;
>> > +            }
>> > +            else
>> > +            {
>> > +                omx_buffer->nFilledLen = 0;
>> > +                g_omx_port_release_buffer (port, omx_buffer);
>> > +            }
>> >         }
>> >     }
>> >     else
>> > --
>> > 1.7.0.4
>>
>> I don't think this is the right approach.
>>
>> Buffers marked with EOS should not be any different from other
>> buffers; they should be returned with OMX_FillThisBuffer().
>
> but then I think you could loose the EOS (if the IL client clears the
> flags before again returning the buffer)..

We are the IL client. We are not clearing the flags anywhere.

> I guess this is probably more of a theoretical hole, because it would
> require an eos event followed by flush-start/flush-stop..

Yes, but in my approach I'm clearing the flag only after pushing the
EOS. If this problem really exists, it would be with Mickey's
approach.

-- 
Felipe Contreras




More information about the Gstreamer-openmax mailing list