diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> | 2012-05-01 18:46:31 +0000 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-06-19 14:10:20 +0100 |
commit | 92d71237bfcaeb263313ed2faba254481859bafe (patch) | |
tree | 2602bfd8e25033a3170d885358aa71795f617d1b /ext | |
parent | 98a21f902650286cf9c5e39fe9b7b6e0e5eb1a9b (diff) |
mpeg2dec: Port to new way of handling frame reference
Diffstat (limited to 'ext')
-rw-r--r-- | ext/mpeg2dec/gstmpeg2dec.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/mpeg2dec/gstmpeg2dec.c b/ext/mpeg2dec/gstmpeg2dec.c index 63d1837b..120c5fd9 100644 --- a/ext/mpeg2dec/gstmpeg2dec.c +++ b/ext/mpeg2dec/gstmpeg2dec.c @@ -633,6 +633,7 @@ handle_picture (GstMpeg2dec * mpeg2dec, const mpeg2_info_t * info, type_str = "B"; break; default: + gst_video_codec_frame_ref (frame); gst_video_decoder_drop_frame (GST_VIDEO_DECODER (mpeg2dec), frame); GST_VIDEO_DECODER_ERROR (mpeg2dec, 1, STREAM, DECODE, ("decoding error"), ("Invalid picture type"), ret); @@ -797,6 +798,7 @@ gst_mpeg2dec_handle_frame (GstVideoDecoder * decoder, if (ret == GST_FLOW_ERROR) { GST_VIDEO_DECODER_ERROR (decoder, 1, STREAM, DECODE, ("decoding error"), ("Bad sequence header"), ret); + gst_video_decoder_drop_frame (decoder, frame); gst_mpeg2dec_reset (decoder, 0); goto done; } @@ -851,6 +853,7 @@ gst_mpeg2dec_handle_frame (GstVideoDecoder * decoder, default: GST_ERROR_OBJECT (mpeg2dec, "Unknown libmpeg2 state %d, FIXME", state); ret = GST_FLOW_OK; + gst_video_codec_frame_unref (frame); goto done; } @@ -861,6 +864,8 @@ gst_mpeg2dec_handle_frame (GstVideoDecoder * decoder, } } + gst_video_codec_frame_unref (frame); + done: return ret; } |