On 21/08/14 9:48 PM, Deb Mukherjee wrote: > Sets aq_mode in the [0, 3] range for the libvpx encode wrapper. > --- > libavcodec/libvpxenc.c | 5 +++++ > 1 file changed, 5 insertions(+)
The new setting should be mentioned in doc/encoders.texi (there are a lot other options missing in the documentation for that matter, but that's not related to this patch). > diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c > index 830a793..f4d3238 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,7 @@ 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}, This needs an AV_OPT_TYPE_CONST for each of the four values, same way it's being done for the arnr-type and quality settings (Or the equivalent aq_mode setting in libx264.c). Also, i have libvpx 1.3.0 here and vpxenc only mentions two values for --aq-mode, 0 (Disabled) and 1 (Variance). 2 and 3 were evidently added after that version. Not sure if this is something that should be handled in the code, mentioned in doc/encoders.texi, or in the description for each of the values. > LEGACY_OPTIONS > { NULL } > }; > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel