Queue prevents pipeline to preroll

Rodrigo Santos rsantos at sequence.film
Mon Dec 5 15:16:42 UTC 2022


Hey folks,



I have this pipeline that works without issues:



gst-launch-1.0.exe filesrc location="$LOCATION" ! decodebin name=decoder ! audioresample ! audioconvert ! autoaudiosink decoder. ! autovideosink



We are developing our own plugin with a custom buffering strategy. To better understand how buffering works in pipelines I'm using a queue after filesrc, the idea is to later add our custom element before the queue. However, I noticed that for some files this pipeline never prerolls:



gst-launch-1.0.exe filesrc location="$LOCATION" ! queue ! decodebin name=decoder ! audioresample ! audioconvert ! autoaudiosink decoder. ! autovideosink



PS: same behavior happens if I use queue2 or multiqueue. Here's the output:



gst-launch-1.0.exe filesrc location="$LOCATION" ! queue ! decodebin name=decoder ! audioresample ! audioconvert ! autoaudiosink decoder. ! autovideosink 

Use Windows high-resolution clock, precision: 1 ms

Setting pipeline to PAUSED ...

Pipeline is PREROLLING ...

Got context from element 'autovideosink0': gst.d3d11.device.handle=context, device=(GstD3D11Device)"\(GstD3D11Device\)\ d3d11device2", adapter=(uint)0, adapter-luid=(gint64)97066, device-id=(uint)39745, vendor-id=(uint)32902, hardware=(boolean)true, description=(string)"Intel\(R\)\ UHD\ Graphics";

Redistribute latency...

Redistribute latency...

Redistribute latency...0.0 %)

0:00:00.0 / 0:01:56.1 (0.0 %)



It shows the first video frame and gets stuck. The weird thing is that if I link ONLY video or ONLY audio-related elements to the decode bin the pipeline executes without problem. That is, the following pipelines work:



without video:
      gst-launch-1.0.exe filesrc location="$LOCATION" ! queue ! decodebin name=decoder ! audioresample ! audioconvert ! autoaudiosink 



without audio:

      gst-launch-1.0.exe filesrc location="$LOCATION" ! queue ! decodebin name=decoder ! autovideosink



Could someone help me understand what is going on? It seems the issue only happens with some files. The issue I just reported is happening when $LOCATION is set to this file: https://drive.google.com/file/d/1y0u1eKbsKAavXpD6otWM0H1mMQQt9trO/view


Rodrigo Santos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20221205/26af8eb2/attachment.htm>


More information about the gstreamer-devel mailing list