theoradec: Handle negotiation failure

Avoids a trove of random issues afterwards (due to decoder not
*actually* being initialized/negotiated).
This commit is contained in:
Edward Hervey 2017-11-11 07:45:42 +01:00
parent 6280547be7
commit c7917df7e2

View file

@ -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