#include "config_components.h"
#include <libvmaf.h>
#include "libavutil/avstring.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "drawutils.h"
#include "formats.h"
#include "framesync.h"
#include "internal.h"
#include "video.h"
Go to the source code of this file.
Calculate the VMAF between two input videos.
Definition in file vf_libvmaf.c.
◆ OFFSET
◆ FLAGS
◆ FRAMESYNC_DEFINE_CLASS()
◆ pix_fmt_map()
static enum VmafPixelFormat pix_fmt_map |
( |
enum AVPixelFormat |
av_pix_fmt | ) |
|
|
static |
◆ copy_picture_data()
static int copy_picture_data |
( |
AVFrame * |
src, |
|
|
VmafPicture * |
dst, |
|
|
unsigned |
bpc |
|
) |
| |
|
static |
◆ do_vmaf()
◆ delimited_dict_parse()
static AVDictionary** delimited_dict_parse |
( |
char * |
str, |
|
|
unsigned * |
cnt |
|
) |
| |
|
static |
◆ parse_features()
◆ parse_models()
◆ log_level_map()
static enum VmafLogLevel log_level_map |
( |
int |
log_level | ) |
|
|
static |
◆ init()
◆ config_input_ref()
◆ config_output()
◆ activate()
◆ log_fmt_map()
static enum VmafOutputFormat log_fmt_map |
( |
const char * |
log_fmt | ) |
|
|
static |
◆ pool_method_map()
static enum VmafPoolingMethod pool_method_map |
( |
const char * |
pool_method | ) |
|
|
static |
◆ uninit()
◆ libvmaf_options
Initial value:= {
{
"log_fmt",
"Set the format of the log (csv, json, xml, or sub).",
OFFSET(log_fmt),
AV_OPT_TYPE_STRING, {.str=
"xml"}, 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},
}
Definition at line 78 of file vf_libvmaf.c.
◆ pix_fmts
◆ libvmaf_inputs
Initial value:= {
{
.name = "main",
},{
.name = "reference",
},
}
Definition at line 605 of file vf_libvmaf.c.
◆ libvmaf_outputs
Initial value:= {
{
.name = "default",
},
}
Definition at line 616 of file vf_libvmaf.c.
◆ ff_vf_libvmaf
Initial value:= {
.name = "libvmaf",
.preinit = libvmaf_framesync_preinit,
.priv_class = &libvmaf_class,
}
Definition at line 624 of file vf_libvmaf.c.
static const AVFilterPad libvmaf_inputs[]
#define FILTER_PIXFMTS_ARRAY(array)
@ AV_PIX_FMT_YUV420P16LE
planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
@ AV_PIX_FMT_YUV444P16LE
planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
@ AV_PIX_FMT_YUV420P12LE
planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
@ AV_PIX_FMT_YUV420P10LE
planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
@ AV_PIX_FMT_YUV444P12LE
planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
static int config_input_ref(AVFilterLink *inlink)
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
#define FILTER_INPUTS(array)
@ AV_PIX_FMT_YUV444P10LE
planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
static int activate(AVFilterContext *ctx)
@ AV_PIX_FMT_YUV422P16LE
planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
static av_cold void uninit(AVFilterContext *ctx)
static enum AVPixelFormat pix_fmts[]
static int config_output(AVFilterLink *outlink)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
@ AV_PIX_FMT_YUV422P10LE
planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
static const AVFilterPad libvmaf_outputs[]
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
static av_cold int init(AVFilterContext *ctx)
#define FILTER_OUTPUTS(array)
@ AV_PIX_FMT_YUV422P12LE
planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian