Browse code

libavcodec/qsvenc.c: improving handling for return codes of MFXVideoENCODE_EncodeFrameAsync

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Ivan Uskov authored on 2015/07/10 04:01:00
Showing 1 changed files
... ...
@@ -417,12 +417,20 @@ int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q,
417 417
         break;
418 418
     } while ( 1 );
419 419
 
420
-    if (ret < 0)
421
-        return (ret == MFX_ERR_MORE_DATA) ? 0 : ff_qsv_error(ret);
422
-
423
-    if (ret == MFX_WRN_INCOMPATIBLE_VIDEO_PARAM && frame->interlaced_frame)
424
-        print_interlace_msg(avctx, q);
420
+    if (ret < 0) {
421
+        if (ret == MFX_ERR_MORE_DATA)
422
+            return 0;
423
+        av_log(avctx, AV_LOG_ERROR, "EncodeFrameAsync returned %d\n", ret);
424
+        return ff_qsv_error(ret);
425
+    }
425 426
 
427
+    if (ret == MFX_WRN_INCOMPATIBLE_VIDEO_PARAM) {
428
+        if (frame->interlaced_frame)
429
+            print_interlace_msg(avctx, q);
430
+        else
431
+            av_log(avctx, AV_LOG_WARNING,
432
+                   "EncodeFrameAsync returned 'incompatible param' code\n");
433
+    }
426 434
     if (sync) {
427 435
         MFXVideoCORE_SyncOperation(q->session, sync, 60000);
428 436