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: