qsvenc: properly handle the warning from MFXVideoCORE_SyncOperation
authorMaxym Dmytrychenko <maxym.dmytrychenko@intel.com>
Fri, 18 Dec 2015 13:24:36 +0000 (14:24 +0100)
committerAnton Khirnov <anton@khirnov.net>
Thu, 7 Jan 2016 07:20:21 +0000 (08:20 +0100)
Same as what is done in 3b6473b43eb69fc3faaf69f7fd0b83b51db7607f.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavcodec/qsvenc.c

index f19ca76..cda11fa 100644 (file)
@@ -919,7 +919,9 @@ int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q,
         av_fifo_generic_read(q->async_fifo, &sync,    sizeof(sync),    NULL);
         av_fifo_generic_read(q->async_fifo, &bs,      sizeof(bs),      NULL);
 
-        MFXVideoCORE_SyncOperation(q->session, sync, 60000);
+        do {
+            ret = MFXVideoCORE_SyncOperation(q->session, sync, 1000);
+        } while (ret == MFX_WRN_IN_EXECUTION);
 
         new_pkt.dts  = av_rescale_q(bs->DecodeTimeStamp, (AVRational){1, 90000}, avctx->time_base);
         new_pkt.pts  = av_rescale_q(bs->TimeStamp,       (AVRational){1, 90000}, avctx->time_base);