Hi, On Tue, Aug 7, 2018 at 8:02 PM, James Almer <jamr...@gmail.com> wrote:
> On 8/7/2018 7:37 PM, Kyle Swanson wrote: > > From: Kyle Swanson <kswan...@netflix.com> > > > > Signed-off-by: Kyle Swanson <kswan...@netflix.com> > > --- > > configure | 2 +- > > libavfilter/vf_libvmaf.c | 9 ++++++++- > > 2 files changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/configure b/configure > > index 15a58935de..e718c1531c 100755 > > --- a/configure > > +++ b/configure > > @@ -6089,7 +6089,7 @@ enabled libtwolame && require libtwolame > twolame.h twolame_init -ltwolame > > die "ERROR: libtwolame must be installed > and version must be >= 0.3.10"; } > > enabled libv4l2 && require_pkg_config libv4l2 libv4l2 > libv4l2.h v4l2_ioctl > > enabled libvidstab && require_pkg_config libvidstab "vidstab >= > 0.98" vid.stab/libvidstab.h vsMotionDetectInit > > -enabled libvmaf && require_pkg_config libvmaf "libvmaf >= > 0.6.2" libvmaf.h compute_vmaf > > +enabled libvmaf && require_pkg_config libvmaf "libvmaf >= > 1.3.9" libvmaf.h compute_vmaf > > enabled libvo_amrwbenc && require libvo_amrwbenc > vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc > > enabled libvorbis && require_pkg_config libvorbis vorbis > vorbis/codec.h vorbis_info_init && > > require_pkg_config libvorbisenc vorbisenc > vorbis/vorbisenc.h vorbis_encode_init > > diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c > > index 5d47a74375..249e50c720 100644 > > --- a/libavfilter/vf_libvmaf.c > > +++ b/libavfilter/vf_libvmaf.c > > @@ -62,6 +62,9 @@ typedef struct LIBVMAFContext { > > int ssim; > > int ms_ssim; > > char *pool; > > + int n_threads; > > + int n_subsample; > > + int enable_conf_interval; > > int error; > > } LIBVMAFContext; > > > > @@ -78,6 +81,9 @@ static const AVOption libvmaf_options[] = { > > {"ssim", "Enables computing ssim along with vmaf.", > OFFSET(ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, > > {"ms_ssim", "Enables computing ms-ssim along with vmaf.", > OFFSET(ms_ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, > > {"pool", "Set the pool method to be used for computing vmaf.", > OFFSET(pool), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, > FLAGS}, > > + {"n_threads", "Set number of threads to be used when computing > vmaf.", OFFSET(n_threads), AV_OPT_TYPE_INT, {.i64=0}, 0, > UINT_MAX, FLAGS}, > > + {"n_subsample", "Set interval for frame subsampling used when > computing vmaf.", OFFSET(n_subsample), AV_OPT_TYPE_INT, {.i64=1}, 1, > UINT_MAX, FLAGS}, > > + {"enable_conf_interval", "Enables confidence interval.", > OFFSET(enable_conf_interval), AV_OPT_TYPE_BOOL, {.i64=0}, > 0, 1, FLAGS}, > > { NULL } > > }; > > > > @@ -166,7 +172,8 @@ static void compute_vmaf_score(LIBVMAFContext *s) > > read_frame, s, s->model_path, s->log_path, > > s->log_fmt, 0, 0, s->enable_transform, > > s->phone_model, s->psnr, s->ssim, > > - s->ms_ssim, s->pool); > > + s->ms_ssim, s->pool, > > + s->n_threads, s->n_subsample, > s->enable_conf_interval); > > It would be ideal if this library could stop breaking the API so often. > If the current API is not extensible, maybe you should consider > introducing a new one that is. > Yes, I'm in agreement with you. The libvmaf API hasn't been stable and has more or less been evolving over time. I've had a few discussions with Zhi about a new API that is both more manageable to use and also extensible. For now this is the interface, but I plan to invest some of my time in the future to help with a new API. At that point there will be another breaking change, but it should be more stable going forward. I can also manage the updates to this filter during that time as well. > > > } > > > > static void *call_vmaf(void *ctx) > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > Thanks, Kyle _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel