diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-10-02 16:23:37 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-10-03 17:23:36 +0300 |
commit | 8ae2af61cedd7fa0b022405da79007baa2e5b9a5 (patch) | |
tree | 9082bb8f9d15f64421441bd5bdebcd34f0668d2a /ext/openh264/gstopenh264dec.cpp | |
parent | 1dfcdb9ce313dce1d29cff529a2d939bf8b241e3 (diff) | |
download | gstreamer-plugins-bad-8ae2af61cedd7fa0b022405da79007baa2e5b9a5.tar.gz |
openh264dec: Don't drop videocodec frames if we can't decode them *yet*
Fixes jittery playback of streams with B frames.
Diffstat (limited to 'ext/openh264/gstopenh264dec.cpp')
-rw-r--r-- | ext/openh264/gstopenh264dec.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/ext/openh264/gstopenh264dec.cpp b/ext/openh264/gstopenh264dec.cpp index 76a423f79..08691090d 100644 --- a/ext/openh264/gstopenh264dec.cpp +++ b/ext/openh264/gstopenh264dec.cpp @@ -283,9 +283,9 @@ static GstFlowReturn gst_openh264dec_handle_frame(GstVideoDecoder *decoder, GstV return GST_FLOW_EOS; } + /* No output available yet */ if (dst_buf_info.iBufferStatus != 1) { - GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY(frame); - goto finish; + return GST_FLOW_OK; } actual_width = dst_buf_info.UsrData.sSystemBuffer.iWidth; @@ -333,11 +333,8 @@ static GstFlowReturn gst_openh264dec_handle_frame(GstVideoDecoder *decoder, GstV } } gst_video_codec_state_unref (state); - gst_video_frame_unmap(&video_frame); - -finish: return gst_video_decoder_finish_frame(decoder, frame); } |