v4l2videodec: Fix handle_frame error handling

This commit is contained in:
Nicolas Dufresne 2014-05-23 17:01:02 -04:00 committed by Nicolas Dufresne
parent e70173e28a
commit 03ed348d95

View file

@ -530,6 +530,9 @@ gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder,
if (ret == GST_FLOW_FLUSHING) {
if (g_atomic_int_get (&self->processing) == FALSE)
ret = self->output_flow;
goto drop;
} else if (ret != GST_FLOW_OK) {
goto process_failed;
}
/* No need to keep input arround */
@ -551,13 +554,22 @@ activate_failed:
GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS,
(_("Failed to allocate required memory.")),
("Buffer pool activation failed"));
return GST_FLOW_ERROR;
ret = GST_FLOW_ERROR;
goto drop;
}
flushing:
{
ret = GST_FLOW_FLUSHING;
goto drop;
}
process_failed:
{
GST_ELEMENT_ERROR (self, RESOURCE, FAILED,
(_("Failed to process frame.")),
("Maybe be due to not enough memory or failing driver"));
ret = GST_FLOW_ERROR;
goto drop;
}
drop:
{
gst_video_decoder_drop_frame (decoder, frame);