2017-09-30 20:30 GMT+02:00 Ronald S. Bultje <rsbul...@gmail.com>: > Hi Carl, > > On Sat, Sep 30, 2017 at 2:19 PM, Carl Eugen Hoyos <ceffm...@gmail.com> > wrote: > >> 2017-09-30 19:47 GMT+02:00 Ronald S. Bultje <rsbul...@gmail.com>: >> > Hi Carl, >> > >> > On Sat, Sep 30, 2017 at 1:31 PM, Carl Eugen Hoyos <ceffm...@gmail.com> >> > wrote: >> > >> >> Hi! >> >> >> >> 2017-09-15 22:47 GMT+02:00 Ashish Pratap Singh <ashk43...@gmail.com>: >> >> >> >> > +static int query_formats(AVFilterContext *ctx) >> >> > +{ >> >> > + static const enum AVPixelFormat pix_fmts[] = { >> >> > + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, >> >> > AV_PIX_FMT_YUV420P, >> >> > + AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, >> >> > AV_PIX_FMT_YUV420P10, >> >> >> >> Is the algorithm only defined for these formats and bit-depth >> >> or are there just missing features? >> >> Gray and gray10 come to mind... >> >> >> > >> > Great question! I _believe_ that vmaf overall is luma-only, so it should >> be >> > entirely independent of chroma. >> >> Then imo, above function is just wrong, it should check for >> non-rgb or similar (think of YUVA444 and friends). >> > > I don't think I'm familiar enough with lavfi to send a patch, can you send > one? What I've asked Ashish to do (and what he's done here) is simply to > reproduce as closely as possible what Netflix' code does, and they only > support 420, 422 and 444 for 8 and 10 bits/component. I'm happy to support > more if I know how to.
Attached patch also support GBRP, I don't know if this is a good or bad idea. Carl Eugen
From c7da156438424bf9b08aaddaada4967868d28105 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos <ceffm...@gmail.com> Date: Sat, 30 Sep 2017 21:39:08 +0200 Subject: [PATCH] lavfi/vmafmotion: Allow more pix_fmts. --- libavfilter/vf_vmafmotion.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libavfilter/vf_vmafmotion.c b/libavfilter/vf_vmafmotion.c index 6b6150a..48986b7 100644 --- a/libavfilter/vf_vmafmotion.c +++ b/libavfilter/vf_vmafmotion.c @@ -261,15 +261,19 @@ int ff_vmafmotion_init(VMAFMotionData *s, static int query_formats(AVFilterContext *ctx) { - static const enum AVPixelFormat pix_fmts[] = { - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV420P10, - AV_PIX_FMT_NONE - }; - - AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); - if (!fmts_list) - return AVERROR(ENOMEM); + AVFilterFormats *fmts_list = NULL; + int format, ret; + + for (format = 0; av_pix_fmt_desc_get(format); format++) { + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(format); + if (!(desc->flags & (AV_PIX_FMT_FLAG_HWACCEL | AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_PAL)) && + (desc->flags & AV_PIX_FMT_FLAG_PLANAR || desc->nb_components == 1) && + (!(desc->flags & AV_PIX_FMT_FLAG_BE) == !HAVE_BIGENDIAN || desc->comp[0].depth == 8) && + (desc->comp[0].depth == 8 || desc->comp[0].depth == 10) && + (ret = ff_add_format(&fmts_list, format)) < 0) + return ret; + } + return ff_set_common_formats(ctx, fmts_list); } -- 1.7.10.4
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel