{
"avbr_accuracy",
"Accuracy of the AVBR ratecontrol (unit of tenth of percent)",
OFFSET(qsv.avbr_accuracy),
AV_OPT_TYPE_INT, { .i64 = 1 }, 1, UINT16_MAX,
VE }, \
{
"avbr_convergence",
"Convergence of the AVBR ratecontrol (unit of 100 frames)",
OFFSET(qsv.avbr_convergence),
AV_OPT_TYPE_INT, { .i64 = 1 }, 1, UINT16_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" }, \
{
"veryslow",
NULL, 0,
AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BEST_QUALITY }, INT_MIN, INT_MAX,
VE,
"preset" }, \
{
"max_frame_size",
"Maximum encoded frame size in bytes",
OFFSET(qsv.max_frame_size),
AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX,
VE }, \
{
"max_slice_size",
"Maximum encoded slice size in bytes",
OFFSET(qsv.max_slice_size),
AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX,
VE }, \
{
"bitrate_limit",
"Toggle bitrate limitations",
OFFSET(qsv.bitrate_limit),
AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1,
VE }, \
{
"adaptive_i",
"Adaptive I-frame placement",
OFFSET(qsv.adaptive_i),
AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1,
VE }, \
{
"adaptive_b",
"Adaptive B-frame placement",
OFFSET(qsv.adaptive_b),
AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1,
VE }, \
{
"b_strategy",
"Strategy to choose between I/P/B-frames",
OFFSET(qsv.b_strategy),
AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1,
VE }, \
{
"low_power",
"enable low power mode(experimental: many limitations by mfx version, BRC modes, etc.)",
OFFSET(qsv.low_power),
AV_OPT_TYPE_BOOL, { .i64 = -1}, -1, 1,
VE},\