Understanding QOS in gstreamer

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

Understanding QOS in gstreamer

Baby Octopus
Administrator
Hi,

I'm running some pipelines to understand QOS. I'm using checksumsink(since it prints timestamps) which sends QOS events and videoscale which handles QOS events. And I'm using my PC is intel i3 which can not handle the load. Here is the pipeline

gst-launch-1.0 videotestsrc is-live=1 ! videoscale qos=1 ! video/x-raw,width=3840,height=2160 ! checksumsink qos=1 sync=1
PTS: 0:00:00.271404544  DTS: 0:00:00.271404544
PTS: 0:00:00.304737877  DTS: 0:00:00.304737877
PTS: 0:00:00.571404544  DTS: 0:00:00.571404544
PTS: 0:00:02.304737877  DTS: 0:00:02.304737877
PTS: 0:00:13.971404544  DTS: 0:00:13.971404544

I expected the pipeline to run realtime with frame drops by videoscale. But this isn't happening. It just hangs

Alternative pipeline with qos=0 at the videoscale runs as expected(Running slower without dropping any buffers)
gst-launch-1.0 videotestsrc is-live=1 ! videoscale qos=0 ! video/x-raw,width=3840,height=2160 ! checksumsink qos=1 sync=1
PTS: 0:00:00.287512027  DTS: 0:00:00.287512027
PTS: 0:00:00.320845360  DTS: 0:00:00.320845360
PTS: 0:00:00.354178693  DTS: 0:00:00.354178693
PTS: 0:00:00.387512027  DTS: 0:00:00.387512027
PTS: 0:00:00.420845360  DTS: 0:00:00.420845360
PTS: 0:00:00.454178693  DTS: 0:00:00.454178693

Am I missing anything here in QOS concept?

~BO
Reply | Threaded
Open this post in threaded view
|

Re: Understanding QOS in gstreamer

Luis de Bethencourt
On 3 June 2015 at 11:51, Baby Octopus <[hidden email]> wrote:
Hi,

I'm running some pipelines to understand QOS. I'm using checksumsink(since
it prints timestamps) which sends QOS events and videoscale which handles
QOS events. And I'm using my PC is intel i3 which can not handle the load.
Here is the pipeline

*gst-launch-1.0 videotestsrc is-live=1 ! videoscale qos=1 !
video/x-raw,width=3840,height=2160 ! checksumsink qos=1 sync=1*
PTS: 0:00:00.271404544  DTS: 0:00:00.271404544
PTS: 0:00:00.304737877  DTS: 0:00:00.304737877
PTS: 0:00:00.571404544  DTS: 0:00:00.571404544
PTS: 0:00:02.304737877  DTS: 0:00:02.304737877
PTS: 0:00:13.971404544  DTS: 0:00:13.971404544

I expected the pipeline to run realtime with frame drops by videoscale. But
this isn't happening. It just hangs

Alternative pipeline with qos=0 at the videoscale runs as expected(Running
slower without dropping any buffers)
*gst-launch-1.0 videotestsrc is-live=1 ! videoscale qos=0 !
video/x-raw,width=3840,height=2160 ! checksumsink qos=1 sync=1*
PTS: 0:00:00.287512027  DTS: 0:00:00.287512027
PTS: 0:00:00.320845360  DTS: 0:00:00.320845360
PTS: 0:00:00.354178693  DTS: 0:00:00.354178693
PTS: 0:00:00.387512027  DTS: 0:00:00.387512027
PTS: 0:00:00.420845360  DTS: 0:00:00.420845360
PTS: 0:00:00.454178693  DTS: 0:00:00.454178693

Am I missing anything here in QOS concept?

~BO

Which version of GStreamer are you using? The first pipeline should drop frames and not hang.

Thanks,
Luis


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Understanding QOS in gstreamer

Baby Octopus
Administrator
Hi,

I'm using gstreamer 1.4.4. By any chance do you feel this could have been fixed in git master? Just asking. Here is more detailed print from the console. The system shows a load of 25% with 5% memory used(out of 4GB)

[root@localhost gst-plugins-good-1.4.4]# gst-launch-1.0 videotestsrc is-live=1 ! videoscale qos=1 ! video/x-raw,width=32000,height=2160 ! checksumsink qos=1 sync=1  
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
PTS: 0:00:00.252750378  DTS: 0:00:00.252750378
PTS: 0:00:00.286083711  DTS: 0:00:00.286083711
PTS: 0:00:00.519417044  DTS: 0:00:00.519417044
PTS: 0:00:02.219417044  DTS: 0:00:02.219417044
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:18.569766699
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Reply | Threaded
Open this post in threaded view
|

Re: Understanding QOS in gstreamer

Baby Octopus
Administrator
Yes, I see the same behavior with git master too

~BO
Reply | Threaded
Open this post in threaded view
|

Re: Understanding QOS in gstreamer

Luis de Bethencourt
PTS: 0:00:02.219417044  DTS: 0:00:02.219417044
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:18.569766699

So after 2 seconds it doesn't print a single timestamp?

Luis

On 3 June 2015 at 14:53, Baby Octopus <[hidden email]> wrote:
Yes, I see the same behavior with git master too

~BO



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Understanding-QOS-in-gstreamer-tp4672096p4672104.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Understanding QOS in gstreamer

Baby Octopus
Administrator
Hi,

If I keep the pipeline running more more time, I see PTS getting printed occasionally such as below

[root@localhost gst-plugins-base]# gst-launch-1.0 videotestsrc is-live=1 ! videoscale qos=1 ! video/x-raw,width=32000,height=2160 ! checksumsink qos=1 sync=1
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
PTS: 0:00:00.239475936  DTS: 0:00:00.239475936
PTS: 0:00:00.272809269  DTS: 0:00:00.272809269
PTS: 0:00:00.506142602  DTS: 0:00:00.506142602
PTS: 0:00:02.106142602  DTS: 0:00:02.106142602
PTS: 0:00:13.039475936  DTS: 0:00:13.039475936
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:03:31.494284774

~BO
Reply | Threaded
Open this post in threaded view
|

Re: Understanding QOS in gstreamer

Luis de Bethencourt
Right, so frames are dropped and not displayed. Lower the resolution in your caps and you will see more frames making it.

This is the expected behavior in my opinion.

Luis

On 3 June 2015 at 15:27, Baby Octopus <[hidden email]> wrote:
Hi,

If I keep the pipeline running more more time, I see PTS getting printed
occasionally such as below

[root@localhost gst-plugins-base]# gst-launch-1.0 videotestsrc is-live=1 !
videoscale qos=1 ! video/x-raw,width=32000,height=2160 ! checksumsink qos=1
sync=1
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
PTS: 0:00:00.239475936  DTS: 0:00:00.239475936
PTS: 0:00:00.272809269  DTS: 0:00:00.272809269
PTS: 0:00:00.506142602  DTS: 0:00:00.506142602
PTS: 0:00:02.106142602  DTS: 0:00:02.106142602
*PTS: 0:00:13.039475936  DTS: 0:00:13.039475936*
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:03:31.494284774

~BO



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Understanding-QOS-in-gstreamer-tp4672096p4672106.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Understanding QOS in gstreamer

Baby Octopus
Administrator
Hi,
 
No thats not true. Sync is going for a toss here. The first frame comes after a while, second frame after a few seconds, and that last dump of PTS: 0:00:13.03947593 came after 3 mins!

Is there something wrong. Shall I file a bug?