diff mbox series

[FFmpeg-devel] libavcodec/qsvence: Use QSV encoder defaults as ffmpeg defaults

Message ID MN2PR04MB5981779892C7A9D9C99D2F96BAF49@MN2PR04MB5981.namprd04.prod.outlook.com
State Superseded, archived
Headers show
Series [FFmpeg-devel] libavcodec/qsvence: Use QSV encoder defaults as ffmpeg defaults | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Soft Works Aug. 7, 2021, 3:50 a.m. UTC
Signed-off-by: softworkz <softworkz@hotmail.com>
---
 libavcodec/qsvenc.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Xiang, Haihao Aug. 9, 2021, 3 a.m. UTC | #1
On Sat, 2021-08-07 at 03:50 +0000, Soft Works wrote:
> Signed-off-by: softworkz <softworkz@hotmail.com>
> ---
>  libavcodec/qsvenc.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
> index fc8a14143e..7f729ce2ba 100644
> --- a/libavcodec/qsvenc.h
> +++ b/libavcodec/qsvenc.h
> @@ -76,8 +76,8 @@
>  
>  #define QSV_COMMON_OPTS \
>  { "async_depth", "Maximum processing parallelism", OFFSET(qsv.async_depth),
> AV_OPT_TYPE_INT, { .i64 = ASYNC_DEPTH_DEFAULT }, 1, INT_MAX, VE
> },                          \
> -{ "avbr_accuracy",    "Accuracy of the AVBR
> ratecontrol",    OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 0 },
> 0, INT_MAX, VE },                             \
> -{ "avbr_convergence", "Convergence of the AVBR ratecontrol",
> OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE
> },                             \
> +{ "avbr_accuracy",    "Accuracy of the AVBR ratecontrol (unit of tenth of
> percent)",    OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 1 }, 0,
> INT_MAX, VE },                             \
> +{ "avbr_convergence", "Convergence of the AVBR ratecontrol (unit of 100
> frames)", OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 1 }, 0,
> INT_MAX, VE },                             \
>  { "preset", NULL, OFFSET(qsv.preset), AV_OPT_TYPE_INT, { .i64 =
> MFX_TARGETUSAGE_BALANCED }, MFX_TARGETUSAGE_BEST_QUALITY,
> MFX_TARGETUSAGE_BEST_SPEED,   VE, "preset" }, \
>  { "veryfast",    NULL, 0, AV_OPT_TYPE_CONST, { .i64 =
> MFX_TARGETUSAGE_BEST_SPEED  },   INT_MIN, INT_MAX, VE, "preset"
> },                                                \
>  { "faster",      NULL, 0, AV_OPT_TYPE_CONST, { .i64 =
> MFX_TARGETUSAGE_6  },            INT_MIN, INT_MAX, VE, "preset" },    

The range is [1, 65535] for both Accuracy and Convergence in the SDK, could you
change the range in options ? 

Regards
Haihao
Soft Works Aug. 10, 2021, 6:05 a.m. UTC | #2
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Xiang, Haihao
> Sent: Monday, 9 August 2021 05:00
> To: ffmpeg-devel@ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH] libavcodec/qsvence: Use QSV encoder
> defaults as ffmpeg defaults
> 
> On Sat, 2021-08-07 at 03:50 +0000, Soft Works wrote:
> > Signed-off-by: softworkz <softworkz@hotmail.com>
> > ---
> >  libavcodec/qsvenc.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h index
> > fc8a14143e..7f729ce2ba 100644
> > --- a/libavcodec/qsvenc.h
> > +++ b/libavcodec/qsvenc.h
> > @@ -76,8 +76,8 @@
> >
> >  #define QSV_COMMON_OPTS \
> >  { "async_depth", "Maximum processing parallelism",
> > OFFSET(qsv.async_depth), AV_OPT_TYPE_INT, { .i64 =
> ASYNC_DEPTH_DEFAULT }, 1, INT_MAX, VE
> > },                          \
> > -{ "avbr_accuracy",    "Accuracy of the AVBR
> > ratecontrol",    OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 0 },
> > 0, INT_MAX, VE },                             \
> > -{ "avbr_convergence", "Convergence of the AVBR ratecontrol",
> > OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 0 }, 0,
> INT_MAX, VE
> > },                             \
> > +{ "avbr_accuracy",    "Accuracy of the AVBR ratecontrol (unit of tenth of
> > percent)",    OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 1 }, 0,
> > INT_MAX, VE },                             \
> > +{ "avbr_convergence", "Convergence of the AVBR ratecontrol (unit of
> > +100
> > frames)", OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 1 },
> 0,
> > INT_MAX, VE },                             \
> >  { "preset", NULL, OFFSET(qsv.preset), AV_OPT_TYPE_INT, { .i64 =
> > MFX_TARGETUSAGE_BALANCED }, MFX_TARGETUSAGE_BEST_QUALITY,
> > MFX_TARGETUSAGE_BEST_SPEED,   VE, "preset" }, \
> >  { "veryfast",    NULL, 0, AV_OPT_TYPE_CONST, { .i64 =
> > MFX_TARGETUSAGE_BEST_SPEED  },   INT_MIN, INT_MAX, VE, "preset"
> > },                                                \
> >  { "faster",      NULL, 0, AV_OPT_TYPE_CONST, { .i64 =
> > MFX_TARGETUSAGE_6  },            INT_MIN, INT_MAX, VE, "preset" },
> 
> The range is [1, 65535] for both Accuracy and Convergence in the SDK, could
> you change the range in options ?

Sure, will do.

I wonder what the logical maxima are, e.g. for accuracy, can there be an 
accuracy > 100% ?

softworkz
diff mbox series

Patch

diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
index fc8a14143e..7f729ce2ba 100644
--- a/libavcodec/qsvenc.h
+++ b/libavcodec/qsvenc.h
@@ -76,8 +76,8 @@ 
 
 #define QSV_COMMON_OPTS \
 { "async_depth", "Maximum processing parallelism", OFFSET(qsv.async_depth), AV_OPT_TYPE_INT, { .i64 = ASYNC_DEPTH_DEFAULT }, 1, INT_MAX, VE },                          \
-{ "avbr_accuracy",    "Accuracy of the AVBR ratecontrol",    OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },                             \
-{ "avbr_convergence", "Convergence of the AVBR ratecontrol", OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },                             \
+{ "avbr_accuracy",    "Accuracy of the AVBR ratecontrol (unit of tenth of percent)",    OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 1 }, 0, INT_MAX, VE },                             \
+{ "avbr_convergence", "Convergence of the AVBR ratecontrol (unit of 100 frames)", OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, INT_MAX, VE },                             \
 { "preset", NULL, OFFSET(qsv.preset), AV_OPT_TYPE_INT, { .i64 = MFX_TARGETUSAGE_BALANCED }, MFX_TARGETUSAGE_BEST_QUALITY, MFX_TARGETUSAGE_BEST_SPEED,   VE, "preset" }, \
 { "veryfast",    NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BEST_SPEED  },   INT_MIN, INT_MAX, VE, "preset" },                                                \
 { "faster",      NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_6  },            INT_MIN, INT_MAX, VE, "preset" },                                                \