Questions on PREROLL: let 1 buffer pass the sub-pipeline to get PREROLL working

Maurer, Marie marie.maurer at zeiss.com
Tue May 8 14:38:02 UTC 2018


Hello,

I have a single live video pipeline:

v4l2src -> caps -> tee -> queue -> v4l2sink

With this pipeline I can change state from NULL to PLAYING and vice versa.

Now I connect a sub-pipeline to the above tee, where I can create one or more still images from the live video.
Because I want only one image at a time I let only one buffer pass my sub-pipeline, every time a picture is requested.
To survive pipeline state changes, I must let pass 1 frame data packet (via a pad probe callback function),
otherwise PREROLL does not work and complete pipeline does not go to PLAYING.

Is this the common way to let 1 buffer pass and drop all others to get PREROLL running?
Or is there a better way?

What happens when I use some element (e.g. a H264 encoder), which needs multiple buffers to generate some output data?
Do I then need to let e.g. 3 buffers pass so that PREROLL is working? And if for some circumstances nothing is coming
out of the element (e.g. because I am not sure always 3 input buffers are needed to generate 1 output buffer), then everything hangs?

Can someone shed a bit more light on this topic?

Many thanks!

Best regards,

Marie







-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180508/aeeaabcf/attachment.html>


More information about the gstreamer-devel mailing list