How do I use "intermediate" frame stepping?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

How do I use "intermediate" frame stepping?

wl2776
Administrator
Frame stepping event has the "intermediate" field of type G_TYPE_BOOLEAN, which can be true or false depending on ... what?
Could anyone provide me with examples of it usage?
Frame stepping backwards is of VERY SPECIAL interest.
When do I set this field to TRUE?

I have some problems with the frame stepping backwards on MPEG-2 files.
The pipeline sometimes stops and doesn't step back.
I wrote about it yesterday (http://gstreamer-devel.966125.n4.nabble.com/Framestepping-backwards-doesn-t-work-with-MPEG2-PS-files-tp2222757p2222757.html)
This my message can be understood so that this happens always. This isn't the case. It doesn't step backwards sometimes, and after some steps.
Reply | Threaded
Open this post in threaded view
|

Re: How do I use "intermediate" frame stepping?

Wim Taymans
On Thu, 2010-05-20 at 06:31 -0700, wl2776 wrote:
> Frame stepping event has the "intermediate" field of type G_TYPE_BOOLEAN,
> which can be true or false depending on ... what?

It is TRUE or FALSE depending on if you want TRUE or FALSE in the
resulting GST_MESSAGE_STEP_DONE. The purpose is to flush out data from a
sink in the PAUSED state in small (intermediate) steps so that upstream
queues don't overrun.

> Could anyone provide me with examples of it usage?

I don't have an example, it's a theoretical necessity but not needed in
practice yet.

> Frame stepping backwards is of VERY SPECIAL interest.
> When do I set this field to TRUE?

If you're going to be stepping 10 seconds on a sink and your upstream
queueing is say 1 second, you need to split the step operation into
multiple smaller intermediate steps and then you use the flag to track
your progress.

>
> I have some problems with the frame stepping backwards on MPEG-2 files.

Not surprisingly since backwards playback in mpeg2 is not implemented
yet.

Wim

> The pipeline sometimes stops and doesn't step back.
> I wrote about it yesterday
> (http://gstreamer-devel.966125.n4.nabble.com/Framestepping-backwards-doesn-t-work-with-MPEG2-PS-files-tp2222757p2222757.html)
> This my message can be understood so that this happens always. This isn't
> the case. It doesn't step backwards sometimes, and after some steps.



------------------------------------------------------------------------------

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How do I use "intermediate" frame stepping?

wl2776
Administrator
Oh! Thank you for the answer.

Wim Taymans wrote
On Thu, 2010-05-20 at 06:31 -0700, wl2776 wrote:
> Frame stepping event has the "intermediate" field of type G_TYPE_BOOLEAN,
> which can be true or false depending on ... what?

It is TRUE or FALSE depending on if you want TRUE or FALSE in the
resulting GST_MESSAGE_STEP_DONE. The purpose is to flush out data from a
sink in the PAUSED state in small (intermediate) steps so that upstream
queues don't overrun.
About this message. I don't see it in the playbin's bus.
Is it internal?
Should or could an application react on it somehow?

Wim Taymans wrote
> Frame stepping backwards is of VERY SPECIAL interest.
> When do I set this field to TRUE?

If you're going to be stepping 10 seconds on a sink and your upstream
queueing is say 1 second, you need to split the step operation into
multiple smaller intermediate steps and then you use the flag to track
your progress.
The flag - do you mean an additional variable in my application?

Wim Taymans wrote
> I have some problems with the frame stepping backwards on MPEG-2 files.

Not surprisingly since backwards playback in mpeg2 is not implemented
yet.
I want to (and have to) develop this feature. Do you have any other information sources about mpeg demuxer besides the "fine source"? I would appreciate if you point me to them.