From 92d71237bfcaeb263313ed2faba254481859bafe Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Tue, 1 May 2012 18:46:31 +0000 Subject: [PATCH] mpeg2dec: Port to new way of handling frame reference --- ext/mpeg2dec/gstmpeg2dec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ext/mpeg2dec/gstmpeg2dec.c b/ext/mpeg2dec/gstmpeg2dec.c index 63d1837ba0..120c5fd901 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; }