[Bug 709711] video decoders - send upstream force_key_unit events when unable to decode

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Oct 10 15:28:48 CEST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=709711
  GStreamer | gst-plugins-base | 1.2.0

--- Comment #4 from Owen Williams <owilliams.cafex at gmail.com> 2013-10-10 13:28:44 UTC ---
Another event?  I don't follow. 

I need an event that 1) when received by an upstream rtpdepay element, it sends
out a PLI over RTCP, and 2) when received by an upstream encoder element the
encoder will send a key_unit (e.g. key frame).  I believe the force_key_unit
event does the above.  

Whilst the packet loss event occurs for each packet lost, I don't expect the
decoder to report a frame as corrupt for minor packet loss because many codecs
have packet loss concealment.  Only when the decoder is seriously struggling
with the stream should it send a force_key_unit.

To me I feel that the correct behaviour of a decoder that can't decode is to
send a force_key_unit event.  However none of the gstreamer decoders send
force_key_units, so maybe I'm missing something.

I forgot to include some gst-launches that could demonstrate that a future
patch improves things.

1) Before patch - h264 test with 10% frame drop
gst-launch-1.0 videotestsrc pattern=18 ! queue ! x264enc ! identity
drop-probability=0.1 ! avdec_h264 ! autovideosink

2) Before patch - vp8 test with 10% frame drop
gst-launch-1.0 videotestsrc pattern=18 ! queue ! vp8enc keyframe-mode=0
keyframe-max-dist=1000 error-resilient=0 ! identity drop-probability=0.1 !
vp8dec ! autovideosink

3) After patch - h264 test with 10% frame drop and force_key_unit interval of
1000ms
gst-launch-1.0 videotestsrc pattern=18 ! queue ! x264enc ! identity
drop-probability=0.1 ! avdec_h264 min-force-key-unit-interval=1000 !
autovideosink

4) After patch - h264 test with 10% frame drop and force_key_unit interval of
1000ms
gst-launch-1.0 videotestsrc pattern=18 ! queue ! vp8enc keyframe-mode=0
keyframe-max-dist=1000 error-resilient=0 ! identity drop-probability=0.1 !
vp8dec min-force-key-unit-interval=1000 ! autovideosink

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list