diff mbox

[FFmpeg-devel,1/2] qsvenc: Use MFXVideoENCODE_Query() to update the parameters

Message ID 25482358-d5ec-efb2-b49a-68996faf5295@aracnet.com
State Accepted
Commit b22094d74901fb3ac203c8322f8d84aded470bfb
Headers show

Commit Message

Aaron Levinson May 7, 2017, 5:39 p.m. UTC
From 2882d77d76805e74fe139f6763f91c39746bebaf Mon Sep 17 00:00:00 2001
From: Aaron Levinson <alevinsn@aracnet.com>
Date: Fri, 5 May 2017 18:49:57 -0700
Subject: [PATCH 1/2] qsvenc: Use MFXVideoENCODE_Query() to update the
 parameters

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

Note: Matches the current MediaSDK example code.  This code used to be
present in ffmpeg and was eliminated in revision 1f26a23 on Oct. 31,
2016 (qsv: Merge libav implementation, at
https://github.com/FFmpeg/FFmpeg/commit/1f26a231bb065276cd80ce02957c759f3197edfa#diff-7d84a34d58597bb7aa4b8239dca1f9f8).
Already applied to libav.

Reviewed-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit b22094d74901fb3ac203c8322f8d84aded470bfb)
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Aaron Levinson <alevinsn@aracnet.com>
---
 libavcodec/qsvenc.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Michael Niedermayer May 9, 2017, 1:40 a.m. UTC | #1
On Sun, May 07, 2017 at 10:39:29AM -0700, Aaron Levinson wrote:
> From 2882d77d76805e74fe139f6763f91c39746bebaf Mon Sep 17 00:00:00 2001
> From: Aaron Levinson <alevinsn@aracnet.com>
> Date: Fri, 5 May 2017 18:49:57 -0700
> Subject: [PATCH 1/2] qsvenc: Use MFXVideoENCODE_Query() to update the
>  parameters
> 
> Purpose: Fill out the default/unset parameters with ones actually in use.
> 
> Note: Matches the current MediaSDK example code.  This code used to be
> present in ffmpeg and was eliminated in revision 1f26a23 on Oct. 31,
> 2016 (qsv: Merge libav implementation, at
> https://github.com/FFmpeg/FFmpeg/commit/1f26a231bb065276cd80ce02957c759f3197edfa#diff-7d84a34d58597bb7aa4b8239dca1f9f8).
> Already applied to libav.
> 
> Reviewed-by: Luca Barbato <lu_zero@gentoo.org>
> (cherry picked from commit b22094d74901fb3ac203c8322f8d84aded470bfb)
> Signed-off-by: Mark Thompson <sw@jkqxz.net>
> Signed-off-by: Aaron Levinson <alevinsn@aracnet.com>
> ---
>  libavcodec/qsvenc.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)

applied

thx


[...]
diff mbox

Patch

diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 9c385a79d8..68d4f5edd0 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -740,10 +740,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);