On 12/19/2018 6:52 PM, Rene Claus wrote: > This commit adds configuration options to libvpxenc.c that can be used to > tune the sharpness parameter for VP8 and VP9. > > Signed-off-by: Rene Claus <rcl...@google.com> > --- > doc/encoders.texi | 4 ++++ > libavcodec/libvpxenc.c | 6 ++++++ > 2 files changed, 10 insertions(+) > > diff --git a/doc/encoders.texi b/doc/encoders.texi > index ca3892d682..3dd2989526 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -1767,6 +1767,10 @@ Set number of frames to look ahead for frametype and > ratecontrol. > @item error-resilient > Enable error resiliency features. > > +@item sharpness @var{integer} > +Set sharpness. > +The valid range is [0, 7]. Default: 0
I assume 0 means disabled and it would be the same as not setting this control id at all, right? Also, if you're going to update the documentation, you should take the chance to mention this valid range in vp8cx.h > + > @item VP8-specific options > @table @option > @item ts-parameters > diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c > index 39af586790..f9b19a8975 100644 > --- a/libavcodec/libvpxenc.c > +++ b/libavcodec/libvpxenc.c > @@ -76,6 +76,7 @@ typedef struct VPxEncoderContext { > struct FrameListData *coded_frame_list; > > int cpu_used; > + int sharpness; > /** > * VP8 specific flags, see VP8F_* below. > */ > @@ -130,6 +131,7 @@ static const char *const ctlidstr[] = { > [VP8E_SET_TUNING] = "VP8E_SET_TUNING", > [VP8E_SET_CQ_LEVEL] = "VP8E_SET_CQ_LEVEL", > [VP8E_SET_MAX_INTRA_BITRATE_PCT] = "VP8E_SET_MAX_INTRA_BITRATE_PCT", > + [VP8E_SET_SHARPNESS] = "VP8E_SET_SHARPNESS", > #if CONFIG_LIBVPX_VP9_ENCODER > [VP9E_SET_LOSSLESS] = "VP9E_SET_LOSSLESS", > [VP9E_SET_TILE_COLUMNS] = "VP9E_SET_TILE_COLUMNS", > @@ -751,6 +753,9 @@ FF_ENABLE_DEPRECATION_WARNINGS > return AVERROR(EINVAL); > } > > + if (ctx->sharpness) > + codecctl_int(avctx, VP8E_SET_SHARPNESS, ctx->sharpness); > + > if (CONFIG_LIBVPX_VP8_ENCODER && avctx->codec_id == AV_CODEC_ID_VP8) { > #if FF_API_PRIVATE_OPT > FF_DISABLE_DEPRECATION_WARNINGS > @@ -1193,6 +1198,7 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket > *pkt, > {"arnr_strength", "altref noise reduction filter strength", > offsetof(VPxContext, arnr_strength), AV_OPT_TYPE_INT, {.i64 = 3}, 0, 6, VE}, \ > {"arnr_type", "altref noise reduction filter type", offsetof(VPxContext, > arnr_type), AV_OPT_TYPE_INT, {.i64 = 3}, 1, 3, VE}, \ > {"rc_lookahead", "Number of frames to look ahead for alternate reference > frame selection", offsetof(VPxContext, lag_in_frames), AV_OPT_TYPE_INT, {.i64 > = 25}, 0, 25, VE}, \ > + { "sharpness", "Sharpness", offsetof(VPxContext, sharpness), > AV_OPT_TYPE_INT, {.i64 = 0}, 0, 7, VE}, > > #if CONFIG_LIBVPX_VP8_ENCODER > static const AVOption vp8_options[] = { > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel