mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 05:16:13 +00:00
applemedia: vtdec: fail gracefully when not negotiated
This commit is contained in:
parent
b1a756fda7
commit
1cd62000f5
1 changed files with 8 additions and 2 deletions
|
@ -257,6 +257,11 @@ gst_vtdec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
|
||||||
GstFlowReturn ret = GST_FLOW_OK;
|
GstFlowReturn ret = GST_FLOW_OK;
|
||||||
int decode_frame_number = frame->decode_frame_number;
|
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);
|
GST_LOG_OBJECT (vtdec, "got input frame %d", decode_frame_number);
|
||||||
|
|
||||||
ret = gst_vtdec_push_frames_if_needed (vtdec, FALSE, FALSE);
|
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)
|
if (status != noErr && FALSE)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
out:
|
|
||||||
GST_LOG_OBJECT (vtdec, "submitted input frame %d", decode_frame_number);
|
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;
|
return ret;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
|
Loading…
Reference in a new issue