libavcodec/qsvenc.c: improving handling for return codes of MFXVideoENCODE_EncodeFram...
authorIvan Uskov <ivan.uskov@nablet.com>
Thu, 9 Jul 2015 19:01:00 +0000 (22:01 +0300)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 9 Jul 2015 23:26:16 +0000 (01:26 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/qsvenc.c

index 5f59b6c..3f37639 100644 (file)
@@ -417,12 +417,20 @@ int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q,
         break;
     } while ( 1 );
 
-    if (ret < 0)
-        return (ret == MFX_ERR_MORE_DATA) ? 0 : ff_qsv_error(ret);
-
-    if (ret == MFX_WRN_INCOMPATIBLE_VIDEO_PARAM && frame->interlaced_frame)
-        print_interlace_msg(avctx, q);
+    if (ret < 0) {
+        if (ret == MFX_ERR_MORE_DATA)
+            return 0;
+        av_log(avctx, AV_LOG_ERROR, "EncodeFrameAsync returned %d\n", ret);
+        return ff_qsv_error(ret);
+    }
 
+    if (ret == MFX_WRN_INCOMPATIBLE_VIDEO_PARAM) {
+        if (frame->interlaced_frame)
+            print_interlace_msg(avctx, q);
+        else
+            av_log(avctx, AV_LOG_WARNING,
+                   "EncodeFrameAsync returned 'incompatible param' code\n");
+    }
     if (sync) {
         MFXVideoCORE_SyncOperation(q->session, sync, 60000);