Queue prevents pipeline to preroll

Thibault Saunier thibault at saunier.eu
Thu Dec 15 15:17:21 UTC 2022


Hi Rodrigo,

It is a bit surprising the first pipeline works, the main issue you
have is that you should always use queues for each branch after
demuxers to avoid stalling the way you describe so the following
pipeline should work:


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


- Thibault
 

On Sun, 2022-12-11 at 17:32 -0300, Rodrigo Santos via gstreamer-devel
wrote:
> Just bumping this thread again as I've got no response. Does anyone
> have any idea why this is happening for this particular file (and
> others similar)?
> 
> Rodrigo Santos
> 
> 
> 
> ---- On Mon, 05 Dec 2022 12:16:42 -0300 Rodrigo Santos
> <rsantos at sequence.film> wrote ---
> 
> > 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: CRAZYCAR_HD_422_23p98_STEREO_MiniClip_20211021_2.mov - Google
> > Drive
> > 
> > Rodrigo Santos
> > 
> > 
> 
> 



More information about the gstreamer-devel mailing list