summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/msdk/gstmsdkdec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/msdk/gstmsdkdec.c b/sys/msdk/gstmsdkdec.c
index 134459fab..024aae44a 100644
--- a/sys/msdk/gstmsdkdec.c
+++ b/sys/msdk/gstmsdkdec.c
@@ -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
*/