Confusing behavior from queue element

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

Confusing behavior from queue element

Michael Jones
Here's my gstreamer version:

gst-launch-1.0 --version
gst-launch-1.0 version 1.12.4
GStreamer 1.12.4

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?

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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Confusing behavior from queue element

Nicolas Dufresne-5
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
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel