Confusing behavior from queue element

Nicolas Dufresne nicolas at ndufresne.ca
Wed Mar 21 15:25:52 UTC 2018


Le mercredi 21 mars 2018 à 00:55 -0500, Michael Jones a écrit :
> Here's my gstreamer version:
> 
> gst-launch-1.0 --version
> gst-launch-1.0 version 1.12.4
> GStreamer 1.12.4
> https://packages.gentoo.org/package/media-libs/gstreamer
> 
> I have two examples of queue working contrary to expectations
> 
> gst-launch-1.0 -v -e \
>     videotestsrc ! tee name=t0 \
>     t0. ! queue ! x264enc ! matroskamux ! filesink
> location="test.mkv" \
>     t0. ! queue ! queue ! autovideosink
> 
> Works, with both the file, and the on-screen display working
> 
> gst-launch-1.0 -v -e \
>     videotestsrc ! tee name=t0 \
>     t0. ! queue ! x264enc ! matroskamux ! filesink
> location="test.mkv" \
>     t0. ! queue ! autovideosink
> 
> Does not work. The autovideosink shows a single frame, and the mkv
> file is zero bytes. What makes the second queue needed on the last
> line?

With two queues, you have doubled the capacity. Default encoding
settings for x264enc will introduce a very large delay, while the
maximum queue size default to 10s or 10MB or 200 buffers (whatever is
met first, see max-size-time, max-size-bytes and max-size-buffers
property). If you would like to use this insanely high quality default
settings of x264enc with a single queue, you'll have to increase this
settings until it works.

> 
> Here's another set of examples.
> 
> gst-launch-1.0 -v -e \
>     videotestsrc ! tee name=t0 \
>     t0. ! queue ! autovideosink \
>     t0. ! queue ! autovideosink
> 
> Works.
> 
> gst-launch-1.0 -v -e \
>     videotestsrc ! tee name=t0 \
>     t0. ! queue ! autovideosink \
>     t0. ! autovideosink
> 
> Doesn't. Why not? Why do both outputs from the tee need to be queues?
> At worst, I'd expect one autovideosink to work and the other to be
> blank, but instead one displays a single frame and the other is
> black.
> 
> But the following DOES work. What's going on?
> 
> gst-launch-1.0 -v -e \
>     videotestsrc ! tee name=t0 \
>     t0. ! queue ! autovideosink \
>     t0. ! queue ! autovideosink \
>     t0. ! autovideosink
> 
> Why does adding a third output negate the need for a queue on all of
> them?
> 
> Does anyone know why queue behaves like this?
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list