msdkdec: release the surface if this surface is not in use

If the surface is not in use, we may release it even if GST_FLOW_OK is going
to be returned, which may avoid the issue of failing to get surface
available

This fixes the regression caused by commit c05acf4
This commit is contained in:
Haihao Xiang 2019-09-17 14:42:51 +08:00 committed by Víctor Manuel Jáquez Leal
parent 8daac1c09a
commit c689c94458

View file

@ -1067,7 +1067,11 @@ gst_msdkdec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
if (bitstream.DataLength == 0) {
flow = GST_FLOW_OK;
surface = NULL;
/* Don't release it if the current surface is in use */
if (surface && task->surface == surface->surface)
surface = NULL;
break;
}
} else if (status == MFX_ERR_MORE_DATA) {