mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
msdkdec: release the occupied surface for MFX_WRN_DEVICE_BUSY
When MFXVideoDECODE_DecodeFrameAsync () returns MFX_WRN_DEVICE_BUSY with an output surface, a new input surface is required when retrying MFXVideoDECODE_DecodeFrameAsync (). This fixes the out-of-surface issue mentioned in https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/890
This commit is contained in:
parent
fffb3f628d
commit
6287016a74
1 changed files with 6 additions and 0 deletions
|
@ -1041,6 +1041,12 @@ gst_msdkdec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
|
|||
/* If device is busy, wait 1ms and retry, as per MSDK's recomendation */
|
||||
g_usleep (1000);
|
||||
|
||||
if (task->surface &&
|
||||
task->surface == surface->surface && !task->sync_point) {
|
||||
free_surface (thiz, surface);
|
||||
surface = NULL;
|
||||
}
|
||||
|
||||
/* If the current surface is still busy, we should do sync oepration
|
||||
* then tries to decode again
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue