From 1cd62000f5a84c3a51913686f9c699a291d9842e Mon Sep 17 00:00:00 2001 From: Alessandro Decina Date: Sun, 8 Dec 2013 15:24:58 +0100 Subject: [PATCH] applemedia: vtdec: fail gracefully when not negotiated --- sys/applemedia/vtdec.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c index 87a193e2a6..68ad6c9fb2 100644 --- a/sys/applemedia/vtdec.c +++ b/sys/applemedia/vtdec.c @@ -257,6 +257,11 @@ gst_vtdec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame) GstFlowReturn ret = GST_FLOW_OK; int decode_frame_number = frame->decode_frame_number; + if (vtdec->format_description == NULL) { + ret = GST_FLOW_NOT_NEGOTIATED; + goto out; + } + GST_LOG_OBJECT (vtdec, "got input frame %d", decode_frame_number); ret = gst_vtdec_push_frames_if_needed (vtdec, FALSE, FALSE); @@ -278,10 +283,11 @@ gst_vtdec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame) if (status != noErr && FALSE) goto error; -out: GST_LOG_OBJECT (vtdec, "submitted input frame %d", decode_frame_number); - CFRelease (cm_sample_buffer); +out: + if (cm_sample_buffer) + CFRelease (cm_sample_buffer); return ret; error: