diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c index 14bd5b81d3..01f738d0c4 100644 --- a/ext/theora/gsttheoradec.c +++ b/ext/theora/gsttheoradec.c @@ -516,7 +516,8 @@ theora_handle_type_packet (GstTheoraDec * dec) dec->uncropped_info = state->info; - gst_video_decoder_negotiate (GST_VIDEO_DECODER (dec)); + if (!gst_video_decoder_negotiate (GST_VIDEO_DECODER (dec))) + goto not_negotiated; dec->have_header = TRUE; @@ -528,6 +529,12 @@ unsupported_format: GST_ERROR_OBJECT (dec, "Invalid pixel format %d", dec->info.pixel_fmt); return GST_FLOW_ERROR; } + +not_negotiated: + { + GST_ERROR_OBJECT (dec, "Failed to negotiate"); + return GST_FLOW_NOT_NEGOTIATED; + } } static GstFlowReturn