Module: libav
Branch: master
Commit: b22094d74901fb3ac203c8322f8d84aded470bfb

Author:    Aaron Levinson <alevi...@aracnet.com>
Committer: Luca Barbato <lu_z...@gentoo.org>
Date:      Sun Apr 16 18:07:42 2017 -0700

qsvenc: Use MFXVideoENCODE_Query() to update the parameters

Fill out the default/unset parameters with ones actually in use.

Matches the current MediaSDK example code.

Signed-off-by: Luca Barbato <lu_z...@gentoo.org>

---

 libavcodec/qsvenc.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index bd8c243..6ac5ca1 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -757,10 +757,18 @@ int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext 
*q)
     if (ret < 0)
         return ret;
 
+    ret = MFXVideoENCODE_Query(q->session, &q->param, &q->param);
+    if (ret == MFX_WRN_PARTIAL_ACCELERATION) {
+        av_log(avctx, AV_LOG_WARNING, "Encoder will work with partial HW 
acceleration\n");
+    } else if (ret < 0) {
+        return ff_qsv_print_error(avctx, ret,
+                                  "Error querying encoder params");
+    }
+
     ret = MFXVideoENCODE_QueryIOSurf(q->session, &q->param, &q->req);
     if (ret < 0)
         return ff_qsv_print_error(avctx, ret,
-                                  "Error querying the encoding parameters");
+                                  "Error querying (IOSurf) the encoding 
parameters");
 
     if (opaque_alloc) {
         ret = qsv_init_opaque_alloc(avctx, q);

_______________________________________________
libav-commits mailing list
libav-commits@libav.org
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to