qsvenc.c: use query to catch all kind of setting issues
authorSven Dueking <sven@nablet.com>
Thu, 1 Oct 2015 08:07:08 +0000 (09:07 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 1 Oct 2015 14:12:33 +0000 (16:12 +0200)
Reviewed-by: Ivan Uskov <ivan.uskov@nablet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/qsvenc.c

index 1013fe1..55140e1 100644 (file)
@@ -264,6 +264,14 @@ int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q)
     if (ret < 0)
         return ret;
 
+    ret = MFXVideoENCODE_Query(q->session, &q->param,&q->param);
+    if (MFX_WRN_PARTIAL_ACCELERATION==ret) {
+        av_log(avctx, AV_LOG_WARNING, "Encoder will work with partial HW acceleration\n");
+    } else if (ret < 0) {
+        av_log(avctx, AV_LOG_ERROR, "Error %d querying encoder params\n", ret);
+        return ff_qsv_error(ret);
+    }
+
     ret = MFXVideoENCODE_QueryIOSurf(q->session, &q->param, &q->req);
     if (ret < 0) {
         av_log(avctx, AV_LOG_ERROR, "Error querying the encoding parameters\n");