Sets aq_mode in the [0, 3] range for the libvpx encode wrapper. 0: none 1: variance aq 2: complexity aq 3: cyclic refresh aq --- doc/encoders.texi | 5 ++++- libavcodec/libvpxenc.c | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/doc/encoders.texi b/doc/encoders.texi index 8df80c4..44b49ce 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -1330,7 +1330,7 @@ ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg @section libvpx -VP8 format supported through libvpx. +VP8/VP9 format supported through libvpx. Requires the presence of the libvpx headers and library during configuration. You need to explicitly configure the build with @code{--enable-libvpx}. @@ -1442,6 +1442,9 @@ g_lag_in_frames @item vp8flags error_resilient g_error_resilient +@item aq_mode +@code{VP9E_SET_AQ_MODE} + @end table For more information about libvpx see: diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 830a793..43015d6 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -96,6 +96,7 @@ typedef struct VP8EncoderContext { int tile_columns; int tile_rows; int frame_parallel; + int aq_mode; } VP8Context; /** String mappings for enum vp8e_enc_control_id */ @@ -123,6 +124,7 @@ static const char *const ctlidstr[] = { [VP9E_SET_TILE_COLUMNS] = "VP9E_SET_TILE_COLUMNS", [VP9E_SET_TILE_ROWS] = "VP9E_SET_TILE_ROWS", [VP9E_SET_FRAME_PARALLEL_DECODING] = "VP9E_SET_FRAME_PARALLEL_DECODING", + [VP9E_SET_AQ_MODE] = "VP9E_SET_AQ_MODE", #endif }; @@ -444,6 +446,8 @@ static av_cold int vpx_init(AVCodecContext *avctx, codecctl_int(avctx, VP9E_SET_TILE_ROWS, ctx->tile_rows); if (ctx->frame_parallel >= 0) codecctl_int(avctx, VP9E_SET_FRAME_PARALLEL_DECODING, ctx->frame_parallel); + if (ctx->aq_mode >= 0) + codecctl_int(avctx, VP9E_SET_AQ_MODE, ctx->aq_mode); } #endif @@ -803,6 +807,11 @@ static const AVOption vp9_options[] = { { "tile-columns", "Number of tile columns to use, log2", OFFSET(tile_columns), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 6, VE}, { "tile-rows", "Number of tile rows to use, log2", OFFSET(tile_rows), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 2, VE}, { "frame-parallel", "Enable frame parallel decodability features", OFFSET(frame_parallel), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, VE}, + { "aq-mode", "adaptive quantization mode", OFFSET(aq_mode), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 3, VE}, + { "none", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, VE, "aq_mode" }, \ + { "variance", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 1}, 0, 0, VE, "aq_mode" }, \ + { "complexity", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 2}, 0, 0, VE, "aq_mode" }, \ + { "cyclic", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 3}, 0, 0, VE, "aq_mode" }, \ LEGACY_OPTIONS { NULL } }; -- 2.1.0.rc2.206.gedb03e5 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel