From af91ba16201d83d6f9d7fa3636d03ed600adf218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 9 Mar 2015 22:01:43 +0100 Subject: [PATCH] avviddec: Error out if we try to allocate a buffer without being negotiated Otherwise we just run into assertions because we should've errored out already. --- ext/libav/gstavviddec.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c index 1bb8041bbc..e30190507a 100644 --- a/ext/libav/gstavviddec.c +++ b/ext/libav/gstavviddec.c @@ -1127,6 +1127,9 @@ get_output_buffer (GstFFMpegVidDec * ffmpegdec, GstVideoCodecFrame * frame) GST_LOG_OBJECT (ffmpegdec, "get output buffer"); + if (!ffmpegdec->output_state) + goto not_negotiated; + ret = gst_video_decoder_allocate_output_frame (GST_VIDEO_DECODER (ffmpegdec), frame); @@ -1167,9 +1170,14 @@ get_output_buffer (GstFFMpegVidDec * ffmpegdec, GstVideoCodecFrame * frame) /* special cases */ alloc_failed: { - GST_DEBUG_OBJECT (ffmpegdec, "pad_alloc failed"); + GST_DEBUG_OBJECT (ffmpegdec, "allocation failed"); return ret; } +not_negotiated: + { + GST_DEBUG_OBJECT (ffmpegdec, "not negotiated"); + return GST_FLOW_NOT_NEGOTIATED; + } } static void