libav: fix frame leak on negotiation error
authorGuillaume Desmottes <guillaume.desmottes@onestream.live>
Fri, 15 Apr 2022 14:38:46 +0000 (16:38 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 18 Apr 2022 07:13:09 +0000 (07:13 +0000)
The function owns a reference on the frame. Drop it if negotiation
failed as we are already doing for the other error cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2196>

subprojects/gst-libav/ext/libav/gstavviddec.c

index 304dec5..b957d22 100644 (file)
@@ -1887,6 +1887,7 @@ no_output:
 
 negotiation_error:
   {
+    gst_video_decoder_drop_frame (GST_VIDEO_DECODER (ffmpegdec), out_frame);
     if (GST_PAD_IS_FLUSHING (GST_VIDEO_DECODER_SRC_PAD (ffmpegdec))) {
       *ret = GST_FLOW_FLUSHING;
       goto beach;