{
"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 }, \
{
"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" }, \
{
"vcm",
"Use the video conferencing mode ratecontrol",
OFFSET(qsv.vcm),
AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1,
VE }, \
{
"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 }, \
#define ASYNC_DEPTH_DEFAULT