GNOME Bugzilla – Bug 687376
Short circuit gst_vp8_dec_handle_frame if keyframe is missing
Last modified: 2012-11-02 08:35:15 UTC
If dec->decoder_inited is FALSE, and a keyframe is missing, then open_codec already calls gst_video_decoder_finish_frame. So continuing with the gst_vp8_dec_handle_frame leads to a CRITICAL at this point: gst_buffer_map (frame->input_buffer, &minfo, GST_MAP_READ) because the GST_IS_BUFFER assertion fails. One way (although it does not happen always) to reproduce this bug is to try to make a VoIP call using VP8 and Empathy. Sometimes you will see the video from the other end for a moment and then the call will get disconnected. If you check the empathy-call logs you will see the above CRITICAL.
Created attachment 227841 [details] [review] vp8dec: Short circuit gst_vp8_dec_handle_frame if keyframe is missing
commit f0640f205cca974ccbe0550e76ab37f16b7c8821 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Fri Nov 2 09:34:25 2012 +0100 vp8dec: Immediately return if opening the decoder failed Instead of ignoring any errors. commit 3c216600f55351549573cf94be541fc6055db128 Author: Debarshi Ray <rishi@gnu.org> Date: Thu Nov 1 22:02:39 2012 +0100 vp8dec: Short circuit gst_vp8_dec_handle_frame if keyframe is missing https://bugzilla.gnome.org/show_bug.cgi?id=687376