summaryrefslogtreecommitdiff
path: root/ext/openh264/gstopenh264dec.cpp
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-10-02 16:23:37 +0300
committerSebastian Dröge <sebastian@centricular.com>2014-10-03 17:23:36 +0300
commit8ae2af61cedd7fa0b022405da79007baa2e5b9a5 (patch)
tree9082bb8f9d15f64421441bd5bdebcd34f0668d2a /ext/openh264/gstopenh264dec.cpp
parent1dfcdb9ce313dce1d29cff529a2d939bf8b241e3 (diff)
downloadgstreamer-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.cpp7
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);
}