diff --git a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech264dec.c b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech264dec.c index b2fa130e1e..5dcfc0e3c9 100644 --- a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech264dec.c +++ b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech264dec.c @@ -1241,8 +1241,10 @@ gst_v4l2_codec_h264_dec_submit_bitstream (GstV4l2CodecH264Dec * self, system_frame_number); g_return_val_if_fail (frame, FALSE); - if (!gst_v4l2_codec_h264_dec_ensure_output_buffer (self, frame)) + if (!gst_v4l2_codec_h264_dec_ensure_output_buffer (self, frame)) { + gst_video_codec_frame_unref (frame); goto done; + } request = gst_v4l2_decoder_alloc_request (self->decoder, system_frame_number, self->bitstream, frame->output_buffer); diff --git a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech265dec.c b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech265dec.c index 2f38959d6e..72ca794939 100644 --- a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech265dec.c +++ b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codech265dec.c @@ -1392,8 +1392,10 @@ gst_v4l2_codec_h265_dec_submit_bitstream (GstV4l2CodecH265Dec * self, system_frame_number); g_return_val_if_fail (frame, FALSE); - if (!gst_v4l2_codec_h265_dec_ensure_output_buffer (self, frame)) + if (!gst_v4l2_codec_h265_dec_ensure_output_buffer (self, frame)) { + gst_video_codec_frame_unref (frame); goto done; + } request = gst_v4l2_decoder_alloc_request (self->decoder, system_frame_number, self->bitstream, frame->output_buffer); diff --git a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codecmpeg2dec.c b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codecmpeg2dec.c index 478bade5db..1449cd3053 100644 --- a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codecmpeg2dec.c +++ b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codecmpeg2dec.c @@ -874,8 +874,10 @@ gst_v4l2_codec_mpeg2_dec_submit_bitstream (GstV4l2CodecMpeg2Dec * self, system_frame_number); g_return_val_if_fail (frame, FALSE); - if (!gst_v4l2_codec_mpeg2_dec_ensure_output_buffer (self, frame)) + if (!gst_v4l2_codec_mpeg2_dec_ensure_output_buffer (self, frame)) { + gst_video_codec_frame_unref (frame); goto done; + } request = gst_v4l2_decoder_alloc_request (self->decoder, system_frame_number, self->bitstream, frame->output_buffer);