---
libavcodec/options.c | 93 ++++++++++++++++++++++++++------------------------
1 files changed, 48 insertions(+), 45 deletions(-)
diff --git a/libavcodec/options.c b/libavcodec/options.c
index 194a334..bf27fef 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -130,6 +130,30 @@ static const AVOption options[]={
{"plane", NULL, 0, AV_OPT_TYPE_CONST, {FF_PRED_PLANE}, 0, 0, V|E, "pred"},
{"median", NULL, 0, AV_OPT_TYPE_CONST, {FF_PRED_MEDIAN}, 0, 0, V|E, "pred"},
+{"cmp", "full pel me compare function", OFFSET(me_cmp),
AV_OPT_TYPE_INT, {DEFAULT}, INT_MIN, INT_MAX, V|E, "cmp_func"},
+{"subcmp", "sub pel me compare function", OFFSET(me_sub_cmp),
AV_OPT_TYPE_INT, {DEFAULT}, INT_MIN, INT_MAX, V|E, "cmp_func"},
+{"mbcmp", "macroblock compare function", OFFSET(mb_cmp),
AV_OPT_TYPE_INT, {DEFAULT}, INT_MIN, INT_MAX, V|E, "cmp_func"},
+{"ildctcmp", "interlaced dct compare function", OFFSET(ildct_cmp),
AV_OPT_TYPE_INT, {FF_CMP_VSAD}, INT_MIN, INT_MAX, V|E, "cmp_func"},
+{"precmp", "pre motion estimation compare function", OFFSET(me_pre_cmp),
AV_OPT_TYPE_INT, {DEFAULT}, INT_MIN, INT_MAX, V|E, "cmp_func"},
+{"skipcmp", "frame skip compare function", OFFSET(frame_skip_cmp),
AV_OPT_TYPE_INT, {FF_CMP_DCTMAX}, INT_MIN, INT_MAX, V|E, "cmp_func"},
+{"sad", "sum of absolute differences, fast (default)", 0,
AV_OPT_TYPE_CONST, {FF_CMP_SAD}, 0, 0, V|E, "cmp_func"},
+{"sse", "sum of squared errors", 0,
AV_OPT_TYPE_CONST, {FF_CMP_SSE}, 0, 0, V|E, "cmp_func"},
+{"satd", "sum of absolute Hadamard transformed differences", 0,
AV_OPT_TYPE_CONST, {FF_CMP_SATD}, 0, 0, V|E, "cmp_func"},
+{"dct", "sum of absolute DCT transformed differences", 0,
AV_OPT_TYPE_CONST, {FF_CMP_DCT}, 0, 0, V|E, "cmp_func"},
+{"psnr", "sum of squared quantization errors (avoid, low quality)", 0,
AV_OPT_TYPE_CONST, {FF_CMP_PSNR}, 0, 0, V|E, "cmp_func"},
+{"bit", "number of bits needed for the block", 0,
AV_OPT_TYPE_CONST, {FF_CMP_BIT}, 0, 0, V|E, "cmp_func"},
+{"rd", "rate distortion optimal, slow", 0,
AV_OPT_TYPE_CONST, {FF_CMP_RD}, 0, 0, V|E, "cmp_func"},
+{"zero", "0", 0,
AV_OPT_TYPE_CONST, {FF_CMP_ZERO}, 0, 0, V|E, "cmp_func"},
+{"vsad", "sum of absolute vertical differences", 0,
AV_OPT_TYPE_CONST, {FF_CMP_VSAD}, 0, 0, V|E, "cmp_func"},
+{"vsse", "sum of squared vertical differences", 0,
AV_OPT_TYPE_CONST, {FF_CMP_VSSE}, 0, 0, V|E, "cmp_func"},
+{"nsse", "noise preserving sum of squared differences", 0,
AV_OPT_TYPE_CONST, {FF_CMP_NSSE}, 0, 0, V|E, "cmp_func"},
+#if CONFIG_SNOW_ENCODER
+{"w53", "5/3 wavelet, only used in snow", 0,
AV_OPT_TYPE_CONST, {FF_CMP_W53}, 0, 0, V|E, "cmp_func"},
+{"w97", "9/7 wavelet, only used in snow", 0,
AV_OPT_TYPE_CONST, {FF_CMP_W97}, 0, 0, V|E, "cmp_func"},
+#endif
+{"dctmax", NULL, 0,
AV_OPT_TYPE_CONST, {FF_CMP_DCTMAX}, 0, 0, V|E, "cmp_func"},
+{"chroma", NULL, 0,
AV_OPT_TYPE_CONST, {FF_CMP_CHROMA}, 0, 0, V|E, "cmp_func"},
+
{"bug", "workaround not auto detected encoder bugs", OFFSET(workaround_bugs),
AV_OPT_TYPE_FLAGS, {.dbl = FF_BUG_AUTODETECT }, INT_MIN, INT_MAX, V|D, "bug"},
{"autodetect", NULL,
0, AV_OPT_TYPE_CONST, {FF_BUG_AUTODETECT}, 0, 0, V|D, "bug"},
{"old_msmpeg4", "some old lavc generated msmpeg4v3 files (no
autodetection)", 0, AV_OPT_TYPE_CONST, {FF_BUG_OLD_MSMPEG4}, 0, 0, V|D,
"bug"},
@@ -148,6 +172,30 @@ static const AVOption options[]={
{"ms", "workaround various bugs in microsofts broken decoders",
0, AV_OPT_TYPE_CONST, {FF_BUG_MS}, 0, 0, V|D, "bug"},
{"trunc", "trancated frames",
0, AV_OPT_TYPE_CONST, {FF_BUG_TRUNCATED}, 0, 0, V|D, "bug"},
+{"debug", "print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.dbl
= DEFAULT }, 0, INT_MAX, V|A|S|E|D, "debug"},
+{"pict", "picture info",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_PICT_INFO}, 0, 0, V|D, "debug"},
+{"rc", "rate control",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_RC}, 0, 0, V|E, "debug"},
+{"bitstream", NULL,
0, AV_OPT_TYPE_CONST, {FF_DEBUG_BITSTREAM}, 0, 0, V|D, "debug"},
+{"mb_type", "macroblock (MB) type",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_MB_TYPE}, 0, 0, V|D, "debug"},
+{"qp", "per-block quantization parameter (QP)",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_QP}, 0, 0, V|D, "debug"},
+{"mv", "motion vector",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_MV}, 0, 0, V|D, "debug"},
+{"dct_coeff", NULL,
0, AV_OPT_TYPE_CONST, {FF_DEBUG_DCT_COEFF}, 0, 0, V|D, "debug"},
+{"skip", NULL,
0, AV_OPT_TYPE_CONST, {FF_DEBUG_SKIP}, 0, 0, V|D, "debug"},
+{"startcode", NULL,
0, AV_OPT_TYPE_CONST, {FF_DEBUG_STARTCODE}, 0, 0, V|D, "debug"},
+{"pts", NULL,
0, AV_OPT_TYPE_CONST, {FF_DEBUG_PTS}, 0, 0, V|D, "debug"},
+{"er", "error recognition",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_ER}, 0, 0, V|D, "debug"},
+{"mmco", "memory management control operations (H.264)",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_MMCO}, 0, 0, V|D, "debug"},
+{"bugs", NULL,
0, AV_OPT_TYPE_CONST, {FF_DEBUG_BUGS}, 0, 0, V|D, "debug"},
+{"vis_qp", "visualize quantization parameter (QP), lower QP are tinted
greener", 0, AV_OPT_TYPE_CONST, {FF_DEBUG_VIS_QP}, 0, 0, V|D, "debug"},
+{"vis_mb_type", "visualize block types",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_VIS_MB_TYPE}, 0, 0, V|D, "debug"},
+{"buffers", "picture buffer allocations",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_BUFFERS}, 0, 0, V|D, "debug"},
+{"thread_ops", "threading operations",
0, AV_OPT_TYPE_CONST, {FF_DEBUG_THREADS}, 0, 0, V|D, "debug"},
+
+{"vismv", "visualize motion vectors (MVs)", OFFSET(debug_mv), AV_OPT_TYPE_INT,
{.dbl = DEFAULT }, 0, INT_MAX, V|D, "debug_mv"},
+{"pf", "forward predicted MVs of P-frames", 0, AV_OPT_TYPE_CONST,
{FF_DEBUG_VIS_MV_P_FOR}, 0, 0, V|D, "debug_mv"},
+{"bf", "forward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST,
{FF_DEBUG_VIS_MV_B_FOR}, 0, 0, V|D, "debug_mv"},
+{"bb", "backward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST,
{FF_DEBUG_VIS_MV_B_BACK}, 0, 0, V|D, "debug_mv"},
+
{"strict", "how strictly to follow the standards",
OFFSET(strict_std_compliance), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN,
INT_MAX, A|V|D|E, "strict"},
{"very", "strictly conform to a older more strict version of the spec
or reference software", 0, AV_OPT_TYPE_CONST, {FF_COMPLIANCE_VERY_STRICT}, 0,
0, V|D|E, "strict"},
{"strict", "strictly conform to all the things in the spec no matter
what consequences", 0, AV_OPT_TYPE_CONST, {FF_COMPLIANCE_STRICT},
0, 0, V|D|E, "strict"},
@@ -253,53 +301,9 @@ static const AVOption options[]={
{"slice_count", NULL, OFFSET(slice_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT },
INT_MIN, INT_MAX},
{"bits_per_coded_sample", NULL, OFFSET(bits_per_coded_sample),
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"aspect", "sample aspect ratio", OFFSET(sample_aspect_ratio),
AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, 10, V|E},
-{"debug", "print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.dbl
= DEFAULT }, 0, INT_MAX, V|A|S|E|D, "debug"},
-{"pict", "picture info", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_PICT_INFO },
INT_MIN, INT_MAX, V|D, "debug"},
-{"rc", "rate control", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_RC }, INT_MIN,
INT_MAX, V|E, "debug"},
-{"bitstream", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BITSTREAM },
INT_MIN, INT_MAX, V|D, "debug"},
-{"mb_type", "macroblock (MB) type", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_MB_TYPE }, INT_MIN, INT_MAX, V|D, "debug"},
-{"qp", "per-block quantization parameter (QP)", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_QP }, INT_MIN, INT_MAX, V|D, "debug"},
-{"mv", "motion vector", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_MV }, INT_MIN,
INT_MAX, V|D, "debug"},
-{"dct_coeff", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_DCT_COEFF },
INT_MIN, INT_MAX, V|D, "debug"},
-{"skip", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_SKIP }, INT_MIN,
INT_MAX, V|D, "debug"},
-{"startcode", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_STARTCODE },
INT_MIN, INT_MAX, V|D, "debug"},
-{"pts", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_PTS }, INT_MIN, INT_MAX,
V|D, "debug"},
-{"er", "error recognition", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_ER },
INT_MIN, INT_MAX, V|D, "debug"},
-{"mmco", "memory management control operations (H.264)", 0, AV_OPT_TYPE_CONST,
{.dbl = FF_DEBUG_MMCO }, INT_MIN, INT_MAX, V|D, "debug"},
-{"bugs", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BUGS }, INT_MIN,
INT_MAX, V|D, "debug"},
-{"vis_qp", "visualize quantization parameter (QP), lower QP are tinted
greener", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_QP }, INT_MIN, INT_MAX,
V|D, "debug"},
-{"vis_mb_type", "visualize block types", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_VIS_MB_TYPE }, INT_MIN, INT_MAX, V|D, "debug"},
-{"buffers", "picture buffer allocations", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_BUFFERS }, INT_MIN, INT_MAX, V|D, "debug"},
-{"thread_ops", "threading operations", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_THREADS }, INT_MIN, INT_MAX, V|D, "debug"},
-{"vismv", "visualize motion vectors (MVs)", OFFSET(debug_mv), AV_OPT_TYPE_INT,
{.dbl = DEFAULT }, 0, INT_MAX, V|D, "debug_mv"},
-{"pf", "forward predicted MVs of P-frames", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_VIS_MV_P_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"},
-{"bf", "forward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_VIS_MV_B_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"},
-{"bb", "backward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_DEBUG_VIS_MV_B_BACK }, INT_MIN, INT_MAX, V|D, "debug_mv"},
-{"cmp", "full pel me compare function", OFFSET(me_cmp), AV_OPT_TYPE_INT, {.dbl
= DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"subcmp", "sub pel me compare function", OFFSET(me_sub_cmp), AV_OPT_TYPE_INT,
{.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"mbcmp", "macroblock compare function", OFFSET(mb_cmp), AV_OPT_TYPE_INT,
{.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"ildctcmp", "interlaced dct compare function", OFFSET(ildct_cmp),
AV_OPT_TYPE_INT, {.dbl = FF_CMP_VSAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"dia_size", "diamond type & size for motion estimation", OFFSET(dia_size),
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"last_pred", "amount of motion predictors from the previous frame",
OFFSET(last_predictor_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN,
INT_MAX, V|E},
{"preme", "pre motion estimation", OFFSET(pre_me), AV_OPT_TYPE_INT, {.dbl =
DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"precmp", "pre motion estimation compare function", OFFSET(me_pre_cmp),
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"sad", "sum of absolute differences, fast (default)", 0, AV_OPT_TYPE_CONST,
{.dbl = FF_CMP_SAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"sse", "sum of squared errors", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SSE },
INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"satd", "sum of absolute Hadamard transformed differences", 0,
AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SATD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"dct", "sum of absolute DCT transformed differences", 0, AV_OPT_TYPE_CONST,
{.dbl = FF_CMP_DCT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"psnr", "sum of squared quantization errors (avoid, low quality)", 0,
AV_OPT_TYPE_CONST, {.dbl = FF_CMP_PSNR }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"bit", "number of bits needed for the block", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_CMP_BIT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"rd", "rate distortion optimal, slow", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_CMP_RD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"zero", "0", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_ZERO }, INT_MIN, INT_MAX,
V|E, "cmp_func"},
-{"vsad", "sum of absolute vertical differences", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_CMP_VSAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"vsse", "sum of squared vertical differences", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_CMP_VSSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"nsse", "noise preserving sum of squared differences", 0, AV_OPT_TYPE_CONST,
{.dbl = FF_CMP_NSSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-#if CONFIG_SNOW_ENCODER
-{"w53", "5/3 wavelet, only used in snow", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_CMP_W53 }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-{"w97", "9/7 wavelet, only used in snow", 0, AV_OPT_TYPE_CONST, {.dbl =
FF_CMP_W97 }, INT_MIN, INT_MAX, V|E, "cmp_func"},
-#endif
-{"dctmax", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_DCTMAX }, INT_MIN,
INT_MAX, V|E, "cmp_func"},
-{"chroma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_CHROMA }, INT_MIN,
INT_MAX, V|E, "cmp_func"},
{"pre_dia_size", "diamond type & size for motion estimation pre-pass",
OFFSET(pre_dia_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX,
V|E},
{"subq", "sub pel motion estimation quality", OFFSET(me_subpel_quality),
AV_OPT_TYPE_INT, {.dbl = 8 }, INT_MIN, INT_MAX, V|E},
{"dtg_active_format", NULL, OFFSET(dtg_active_format), AV_OPT_TYPE_INT, {.dbl
= DEFAULT }, INT_MIN, INT_MAX},
@@ -355,7 +359,6 @@ static const AVOption options[]={
{"skip_threshold", "frame skip threshold", OFFSET(frame_skip_threshold),
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skip_factor", "frame skip factor", OFFSET(frame_skip_factor),
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skip_exp", "frame skip exponent", OFFSET(frame_skip_exp), AV_OPT_TYPE_INT,
{.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"skipcmp", "frame skip compare function", OFFSET(frame_skip_cmp),
AV_OPT_TYPE_INT, {.dbl = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"border_mask", "increases the quantizer for macroblocks close to borders",
OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX,
FLT_MAX, V|E},
{"mblmin", "min macroblock lagrange factor (VBR)", OFFSET(mb_lmin),
AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 2 }, 1, FF_LAMBDA_MAX, V|E},
{"mblmax", "max macroblock lagrange factor (VBR)", OFFSET(mb_lmax),
AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 31 }, 1, FF_LAMBDA_MAX, V|E},
--
1.7.7.3
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel