Decode as many surfaces as possible in gst_vaapidecode_step().

This commit is contained in:
gb 2010-04-30 15:50:19 +00:00 committed by Gwenole Beauchesne
parent a4d201aaf9
commit a556e08e83

View file

@ -99,12 +99,13 @@ gst_vaapidecode_step(GstVaapiDecode *decode)
GstBuffer *buffer; GstBuffer *buffer;
GstFlowReturn ret; GstFlowReturn ret;
for (;;) {
proxy = gst_vaapi_decoder_get_surface(decode->decoder, &status); proxy = gst_vaapi_decoder_get_surface(decode->decoder, &status);
if (!proxy) { if (!proxy) {
if (status != GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA) if (status != GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA)
goto error_decode; goto error_decode;
/* More data is needed */ /* More data is needed */
return GST_FLOW_OK; break;
} }
buffer = NULL; buffer = NULL;
@ -128,6 +129,7 @@ gst_vaapidecode_step(GstVaapiDecode *decode)
goto error_commit_buffer; goto error_commit_buffer;
g_object_unref(proxy); g_object_unref(proxy);
}
return GST_FLOW_OK; return GST_FLOW_OK;
/* ERRORS */ /* ERRORS */