Understanding QOS

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Understanding QOS

Gst-Geek
Hi,

I want to enable QOS in the pipeline to get live video content without holding buffers even in high CPU load by dropping video frames before encoding.
What i expect is, identity element should drop frames when CPU is not able to process video frame and get the next frame.

Below is the pipeline where I am trying to simulate the case where it encodes 8k and Full HD video. When 8k or full HD video branch is not able to process data identity should drop the buffer.

gst-launch-1.0 udpsrc port=9000 ! decodebin name=dec dec.! identity qos=true ! ! videoconvert qos=false ! tee name=branch \
branch.! videoscale qos=false  ! video/x-raw,width=7680,height=4320 ! x264enc ! fakesink qos=true sync=true silent=0 \
branch.! videoscale qos=false  ! video/x-raw,width=1920,height=1080 ! x264enc ! fakesink qos=true sync=true silent=0 --gst-debug=3 -m -v

But pipeline is not behaving as expected. identity is not dropping frames on CPU oveload instead input is dropped at udpsrc(udp source stops capturing when decodeder queue is full).
Here 8k encoding is used just to simulate CPU overload.

Why identity is not dropping buffers ?? Is it right pipeline to expect such behaviour.
Can I use QOS for my use case ??


~ Vinod