FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
vf_ssim360.c File Reference
#include <math.h>
#include "libavutil/avstring.h"
#include "libavutil/file_open.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "drawutils.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "framesync.h"

Go to the source code of this file.

Data Structures

struct  Map2D
 
struct  HeatmapList
 
struct  SampleParams
 
struct  BilinearMap
 
struct  SSIM360Context
 

Macros

#define RIGHT   0
 Copyright (c) 2015-2021, Facebook, Inc. More...
 
#define LEFT   1
 
#define TOP   2
 
#define BOTTOM   3
 
#define FRONT   4
 
#define BACK   5
 
#define DEFAULT_HEATMAP_W   32
 
#define DEFAULT_HEATMAP_H   16
 
#define M_PI_F   ((float)M_PI)
 
#define M_PI_2_F   ((float)M_PI_2)
 
#define M_PI_4_F   ((float)M_PI_4)
 
#define M_SQRT2_F   ((float)M_SQRT2)
 
#define DEFAULT_EXPANSION_COEF   1.01f
 
#define BARREL_THETA_RANGE   (DEFAULT_EXPANSION_COEF * 2.0f * M_PI_F)
 
#define BARREL_PHI_RANGE   (DEFAULT_EXPANSION_COEF * M_PI_2_F)
 
#define FIXED_POINT_PRECISION   16
 
#define SSIM360_HIST_SIZE   131072
 
#define OFFSET(x)   offsetof(SSIM360Context, x)
 
#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
 
#define PF(suf)   AV_PIX_FMT_YUV420##suf, AV_PIX_FMT_YUV422##suf, AV_PIX_FMT_YUV444##suf, AV_PIX_FMT_GBR##suf
 

Enumerations

enum  StereoFormat { STEREO_FORMAT_TB, STEREO_FORMAT_LR, STEREO_FORMAT_MONO, STEREO_FORMAT_N }
 
enum  Projection {
  PROJECTION_CUBEMAP32, PROJECTION_CUBEMAP23, PROJECTION_BARREL, PROJECTION_BARREL_SPLIT,
  PROJECTION_EQUIRECT, PROJECTION_N
}
 

Functions

 FRAMESYNC_DEFINE_CLASS (ssim360, SSIM360Context, fs)
 
static void set_meta (AVDictionary **metadata, const char *key, char comp, float d)
 
static void map_uninit (Map2D *map)
 
static int map_init (Map2D *map, int w, int h)
 
static void map_list_free (HeatmapList **pl)
 
static int map_alloc (HeatmapList **pl, int w, int h)
 
static void ssim360_4x4xn_16bit (const uint8_t *main8, ptrdiff_t main_stride, const uint8_t *ref8, ptrdiff_t ref_stride, int64_t(*sums)[4], int width)
 
static void ssim360_4x4xn_8bit (const uint8_t *main, ptrdiff_t main_stride, const uint8_t *ref, ptrdiff_t ref_stride, int(*sums)[4], int width)
 
static float ssim360_end1x (int64_t s1, int64_t s2, int64_t ss, int64_t s12, int max)
 
static float ssim360_end1 (int s1, int s2, int ss, int s12)
 
static double ssim360_endn_16bit (const int64_t(*sum0)[4], const int64_t(*sum1)[4], int width, int max, double *density_map, int map_width, double *total_weight)
 
static double ssim360_endn_8bit (const int(*sum0)[4], const int(*sum1)[4], int width, double *density_map, int map_width, double *total_weight)
 
static double ssim360_plane_16bit (uint8_t *main, int main_stride, uint8_t *ref, int ref_stride, int width, int height, void *temp, int max, Map2D density)
 
static double ssim360_plane_8bit (uint8_t *main, int main_stride, uint8_t *ref, int ref_stride, int width, int height, void *temp, int max, Map2D density)
 
static double ssim360_db (double ssim360, double weight)
 
static int get_bilinear_sample (const uint8_t *data, BilinearMap *m, int max_value)
 
static void ssim360_4x4x2_tape (const uint8_t *main, BilinearMap *main_maps, const uint8_t *ref, BilinearMap *ref_maps, int offset_y, int max_value, int(*sums)[4])
 
static float get_radius_between_negative_and_positive_pi (float theta)
 
static float get_heat (HeatmapList *heatmaps, float angular_resoluation, float norm_tape_pos)
 
static double ssim360_tape (uint8_t *main, BilinearMap *main_maps, uint8_t *ref, BilinearMap *ref_maps, int tape_length, int max_value, void *temp, double *ssim360_hist, double *ssim360_hist_net, float angular_resolution, HeatmapList *heatmaps)
 
static void compute_bilinear_map (SampleParams *p, BilinearMap *m, float x, float y)
 
static void get_equirect_map (float phi, float theta, float *x, float *y)
 
static void get_barrel_map (float phi, float theta, float *x, float *y)
 
static void get_barrel_split_map (float phi, float theta, float expand_coef, float *x, float *y)
 
static int get_cubemap_face_map (float axis_vec_x, float axis_vec_y, float axis_vec_z, float *face_x, float *face_y)
 
static void get_cubemap32_map (float phi, float theta, float *x, float *y)
 
static void get_rotated_cubemap_map (float phi, float theta, float expand_coef, float *x, float *y)
 
static void get_projected_map (float phi, float theta, SampleParams *p, BilinearMap *m)
 
static int tape_supports_projection (int projection)
 
static float get_tape_angular_resolution (int projection, float expand_coef, int image_width, int image_height)
 
static int generate_eye_tape_map (SSIM360Context *s, int plane, int eye, SampleParams *ref_sample_params, SampleParams *main_sample_params)
 
static int generate_tape_maps (SSIM360Context *s, AVFrame *main, const AVFrame *ref)
 
static int do_ssim360 (FFFrameSync *fs)
 
static int parse_heatmaps (void *logctx, HeatmapList **proot, const char *data, int w, int h)
 
static av_cold int init (AVFilterContext *ctx)
 
static int config_input_main (AVFilterLink *inlink)
 
static int generate_density_map (SSIM360Context *s, int w, int h)
 
static int config_input_ref (AVFilterLink *inlink)
 
static int config_output (AVFilterLink *outlink)
 
static int activate (AVFilterContext *ctx)
 
static av_cold void uninit (AVFilterContext *ctx)
 

Variables

static const double PERCENTILE_LIST []
 
static const AVOption ssim360_options []
 
static enum AVPixelFormat ssim360_pixfmts []
 
static const AVFilterPad ssim360_inputs []
 
static const AVFilterPad ssim360_outputs []
 
const AVFilter ff_vf_ssim360
 

Macro Definition Documentation

◆ RIGHT

#define RIGHT   0

Copyright (c) 2015-2021, Facebook, Inc.

All rights reserved.

This file is part of FFmpeg.

FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition at line 58 of file vf_ssim360.c.

◆ LEFT

#define LEFT   1

Definition at line 59 of file vf_ssim360.c.

◆ TOP

#define TOP   2

Definition at line 60 of file vf_ssim360.c.

◆ BOTTOM

#define BOTTOM   3

Definition at line 61 of file vf_ssim360.c.

◆ FRONT

#define FRONT   4

Definition at line 62 of file vf_ssim360.c.

◆ BACK

#define BACK   5

Definition at line 63 of file vf_ssim360.c.

◆ DEFAULT_HEATMAP_W

#define DEFAULT_HEATMAP_W   32

Definition at line 65 of file vf_ssim360.c.

◆ DEFAULT_HEATMAP_H

#define DEFAULT_HEATMAP_H   16

Definition at line 66 of file vf_ssim360.c.

◆ M_PI_F

#define M_PI_F   ((float)M_PI)

Definition at line 68 of file vf_ssim360.c.

◆ M_PI_2_F

#define M_PI_2_F   ((float)M_PI_2)

Definition at line 69 of file vf_ssim360.c.

◆ M_PI_4_F

#define M_PI_4_F   ((float)M_PI_4)

Definition at line 70 of file vf_ssim360.c.

◆ M_SQRT2_F

#define M_SQRT2_F   ((float)M_SQRT2)

Definition at line 71 of file vf_ssim360.c.

◆ DEFAULT_EXPANSION_COEF

#define DEFAULT_EXPANSION_COEF   1.01f

Definition at line 73 of file vf_ssim360.c.

◆ BARREL_THETA_RANGE

#define BARREL_THETA_RANGE   (DEFAULT_EXPANSION_COEF * 2.0f * M_PI_F)

Definition at line 75 of file vf_ssim360.c.

◆ BARREL_PHI_RANGE

#define BARREL_PHI_RANGE   (DEFAULT_EXPANSION_COEF * M_PI_2_F)

Definition at line 76 of file vf_ssim360.c.

◆ FIXED_POINT_PRECISION

#define FIXED_POINT_PRECISION   16

Definition at line 79 of file vf_ssim360.c.

◆ SSIM360_HIST_SIZE

#define SSIM360_HIST_SIZE   131072

Definition at line 82 of file vf_ssim360.c.

◆ OFFSET

#define OFFSET (   x)    offsetof(SSIM360Context, x)

Definition at line 203 of file vf_ssim360.c.

◆ FLAGS

Definition at line 204 of file vf_ssim360.c.

◆ PF

#define PF (   suf)    AV_PIX_FMT_YUV420##suf, AV_PIX_FMT_YUV422##suf, AV_PIX_FMT_YUV444##suf, AV_PIX_FMT_GBR##suf

Definition at line 1720 of file vf_ssim360.c.

Enumeration Type Documentation

◆ StereoFormat

Enumerator
STEREO_FORMAT_TB 
STEREO_FORMAT_LR 
STEREO_FORMAT_MONO 
STEREO_FORMAT_N 

Definition at line 90 of file vf_ssim360.c.

◆ Projection

enum Projection
Enumerator
PROJECTION_CUBEMAP32 
PROJECTION_CUBEMAP23 
PROJECTION_BARREL 
PROJECTION_BARREL_SPLIT 
PROJECTION_EQUIRECT 
PROJECTION_N 

Definition at line 97 of file vf_ssim360.c.

Function Documentation

◆ FRAMESYNC_DEFINE_CLASS()

FRAMESYNC_DEFINE_CLASS ( ssim360  ,
SSIM360Context  ,
fs   
)

◆ set_meta()

static void set_meta ( AVDictionary **  metadata,
const char *  key,
char  comp,
float  d 
)
static

Definition at line 279 of file vf_ssim360.c.

Referenced by do_ssim360().

◆ map_uninit()

static void map_uninit ( Map2D map)
static

Definition at line 292 of file vf_ssim360.c.

Referenced by do_ssim360(), map_list_free(), and uninit().

◆ map_init()

static int map_init ( Map2D map,
int  w,
int  h 
)
static

Definition at line 297 of file vf_ssim360.c.

Referenced by generate_density_map(), and map_alloc().

◆ map_list_free()

static void map_list_free ( HeatmapList **  pl)
static

Definition at line 309 of file vf_ssim360.c.

Referenced by parse_heatmaps(), and uninit().

◆ map_alloc()

static int map_alloc ( HeatmapList **  pl,
int  w,
int  h 
)
static

Definition at line 323 of file vf_ssim360.c.

Referenced by parse_heatmaps().

◆ ssim360_4x4xn_16bit()

static void ssim360_4x4xn_16bit ( const uint8_t *  main8,
ptrdiff_t  main_stride,
const uint8_t *  ref8,
ptrdiff_t  ref_stride,
int64_t(*)  sums[4],
int  width 
)
static

Definition at line 343 of file vf_ssim360.c.

Referenced by ssim360_plane_16bit().

◆ ssim360_4x4xn_8bit()

static void ssim360_4x4xn_8bit ( const uint8_t *  main,
ptrdiff_t  main_stride,
const uint8_t *  ref,
ptrdiff_t  ref_stride,
int(*)  sums[4],
int  width 
)
static

Definition at line 379 of file vf_ssim360.c.

Referenced by ssim360_plane_8bit().

◆ ssim360_end1x()

static float ssim360_end1x ( int64_t  s1,
int64_t  s2,
int64_t  ss,
int64_t  s12,
int  max 
)
static

Definition at line 408 of file vf_ssim360.c.

Referenced by ssim360_endn_16bit().

◆ ssim360_end1()

static float ssim360_end1 ( int  s1,
int  s2,
int  ss,
int  s12 
)
static

Definition at line 424 of file vf_ssim360.c.

Referenced by ssim360_endn_8bit().

◆ ssim360_endn_16bit()

static double ssim360_endn_16bit ( const int64_t(*)  sum0[4],
const int64_t(*)  sum1[4],
int  width,
int  max,
double density_map,
int  map_width,
double total_weight 
)
static

Definition at line 441 of file vf_ssim360.c.

Referenced by ssim360_plane_16bit().

◆ ssim360_endn_8bit()

static double ssim360_endn_8bit ( const int(*)  sum0[4],
const int(*)  sum1[4],
int  width,
double density_map,
int  map_width,
double total_weight 
)
static

Definition at line 461 of file vf_ssim360.c.

Referenced by ssim360_plane_8bit().

◆ ssim360_plane_16bit()

static double ssim360_plane_16bit ( uint8_t *  main,
int  main_stride,
uint8_t *  ref,
int  ref_stride,
int  width,
int  height,
void *  temp,
int  max,
Map2D  density 
)
static

Definition at line 479 of file vf_ssim360.c.

Referenced by config_input_ref().

◆ ssim360_plane_8bit()

static double ssim360_plane_8bit ( uint8_t *  main,
int  main_stride,
uint8_t *  ref,
int  ref_stride,
int  width,
int  height,
void *  temp,
int  max,
Map2D  density 
)
static

Definition at line 511 of file vf_ssim360.c.

Referenced by config_input_ref().

◆ ssim360_db()

static double ssim360_db ( double  ssim360,
double  weight 
)
static

Definition at line 542 of file vf_ssim360.c.

Referenced by do_ssim360(), and uninit().

◆ get_bilinear_sample()

static int get_bilinear_sample ( const uint8_t *  data,
BilinearMap m,
int  max_value 
)
static

Definition at line 547 of file vf_ssim360.c.

Referenced by ssim360_4x4x2_tape().

◆ ssim360_4x4x2_tape()

static void ssim360_4x4x2_tape ( const uint8_t *  main,
BilinearMap main_maps,
const uint8_t *  ref,
BilinearMap ref_maps,
int  offset_y,
int  max_value,
int(*)  sums[4] 
)
static

Definition at line 577 of file vf_ssim360.c.

Referenced by ssim360_tape().

◆ get_radius_between_negative_and_positive_pi()

static float get_radius_between_negative_and_positive_pi ( float  theta)
static

Definition at line 612 of file vf_ssim360.c.

Referenced by generate_eye_tape_map(), and get_heat().

◆ get_heat()

static float get_heat ( HeatmapList heatmaps,
float  angular_resoluation,
float  norm_tape_pos 
)
static

Definition at line 626 of file vf_ssim360.c.

Referenced by ssim360_tape().

◆ ssim360_tape()

static double ssim360_tape ( uint8_t *  main,
BilinearMap main_maps,
uint8_t *  ref,
BilinearMap ref_maps,
int  tape_length,
int  max_value,
void *  temp,
double ssim360_hist,
double ssim360_hist_net,
float  angular_resolution,
HeatmapList heatmaps 
)
static

Definition at line 649 of file vf_ssim360.c.

Referenced by do_ssim360().

◆ compute_bilinear_map()

static void compute_bilinear_map ( SampleParams p,
BilinearMap m,
float  x,
float  y 
)
static

Definition at line 717 of file vf_ssim360.c.

Referenced by get_projected_map().

◆ get_equirect_map()

static void get_equirect_map ( float  phi,
float  theta,
float x,
float y 
)
static

Definition at line 749 of file vf_ssim360.c.

Referenced by get_projected_map().

◆ get_barrel_map()

static void get_barrel_map ( float  phi,
float  theta,
float x,
float y 
)
static

Definition at line 756 of file vf_ssim360.c.

Referenced by get_projected_map().

◆ get_barrel_split_map()

static void get_barrel_split_map ( float  phi,
float  theta,
float  expand_coef,
float x,
float y 
)
static

Definition at line 783 of file vf_ssim360.c.

Referenced by get_projected_map().

◆ get_cubemap_face_map()

static int get_cubemap_face_map ( float  axis_vec_x,
float  axis_vec_y,
float  axis_vec_z,
float face_x,
float face_y 
)
static

Definition at line 833 of file vf_ssim360.c.

Referenced by get_cubemap32_map(), and get_rotated_cubemap_map().

◆ get_cubemap32_map()

static void get_cubemap32_map ( float  phi,
float  theta,
float x,
float y 
)
static

Definition at line 873 of file vf_ssim360.c.

Referenced by get_projected_map().

◆ get_rotated_cubemap_map()

static void get_rotated_cubemap_map ( float  phi,
float  theta,
float  expand_coef,
float x,
float y 
)
static

Definition at line 897 of file vf_ssim360.c.

Referenced by get_projected_map().

◆ get_projected_map()

static void get_projected_map ( float  phi,
float  theta,
SampleParams p,
BilinearMap m 
)
static

Definition at line 950 of file vf_ssim360.c.

Referenced by generate_eye_tape_map().

◆ tape_supports_projection()

static int tape_supports_projection ( int  projection)
static

Definition at line 976 of file vf_ssim360.c.

Referenced by config_output().

◆ get_tape_angular_resolution()

static float get_tape_angular_resolution ( int  projection,
float  expand_coef,
int  image_width,
int  image_height 
)
static

Definition at line 990 of file vf_ssim360.c.

Referenced by generate_eye_tape_map().

◆ generate_eye_tape_map()

static int generate_eye_tape_map ( SSIM360Context s,
int  plane,
int  eye,
SampleParams ref_sample_params,
SampleParams main_sample_params 
)
static

Definition at line 1018 of file vf_ssim360.c.

Referenced by generate_tape_maps().

◆ generate_tape_maps()

static int generate_tape_maps ( SSIM360Context s,
AVFrame main,
const AVFrame ref 
)
static

Definition at line 1069 of file vf_ssim360.c.

Referenced by do_ssim360().

◆ do_ssim360()

static int do_ssim360 ( FFFrameSync fs)
static

Definition at line 1129 of file vf_ssim360.c.

Referenced by init().

◆ parse_heatmaps()

static int parse_heatmaps ( void *  logctx,
HeatmapList **  proot,
const char *  data,
int  w,
int  h 
)
static

Definition at line 1251 of file vf_ssim360.c.

Referenced by init().

◆ init()

static av_cold int init ( AVFilterContext ctx)
static

Definition at line 1317 of file vf_ssim360.c.

◆ config_input_main()

static int config_input_main ( AVFilterLink inlink)
static

Definition at line 1350 of file vf_ssim360.c.

◆ generate_density_map()

static int generate_density_map ( SSIM360Context s,
int  w,
int  h 
)
static

Definition at line 1377 of file vf_ssim360.c.

Referenced by config_output().

◆ config_input_ref()

static int config_input_ref ( AVFilterLink inlink)
static

Definition at line 1555 of file vf_ssim360.c.

◆ config_output()

static int config_output ( AVFilterLink outlink)
static

Definition at line 1596 of file vf_ssim360.c.

◆ activate()

static int activate ( AVFilterContext ctx)
static

Definition at line 1663 of file vf_ssim360.c.

◆ uninit()

static av_cold void uninit ( AVFilterContext ctx)
static

Definition at line 1669 of file vf_ssim360.c.

Variable Documentation

◆ PERCENTILE_LIST

const double PERCENTILE_LIST[]
static
Initial value:
= {
1.0, 0.9, 0.8, 0.7, 0.6,
0.5, 0.4, 0.3, 0.2, 0.1, 0, -1
}

Definition at line 85 of file vf_ssim360.c.

Referenced by do_ssim360(), and uninit().

◆ ssim360_options

const AVOption ssim360_options[]
static

Definition at line 206 of file vf_ssim360.c.

◆ ssim360_pixfmts

enum AVPixelFormat ssim360_pixfmts[]
static

◆ ssim360_inputs

const AVFilterPad ssim360_inputs[]
static
Initial value:
= {
{
.name = "main",
.config_props = config_input_main,
},
{
.name = "reference",
.config_props = config_input_ref,
},
}

Definition at line 1733 of file vf_ssim360.c.

◆ ssim360_outputs

const AVFilterPad ssim360_outputs[]
static
Initial value:
= {
{
.name = "default",
.config_props = config_output,
},
}

Definition at line 1746 of file vf_ssim360.c.

◆ ff_vf_ssim360

const AVFilter ff_vf_ssim360
Initial value:
= {
.name = "ssim360",
.description = NULL_IF_CONFIG_SMALL("Calculate the SSIM between two 360 video streams."),
.preinit = ssim360_framesync_preinit,
.init = init,
.uninit = uninit,
.activate = activate,
.priv_size = sizeof(SSIM360Context),
.priv_class = &ssim360_class,
}

Definition at line 1754 of file vf_ssim360.c.

FILTER_PIXFMTS_ARRAY
#define FILTER_PIXFMTS_ARRAY(array)
Definition: internal.h:174
AV_PIX_FMT_YUV440P
@ AV_PIX_FMT_YUV440P
planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
Definition: pixfmt.h:99
ssim360_inputs
static const AVFilterPad ssim360_inputs[]
Definition: vf_ssim360.c:1733
uninit
static av_cold void uninit(AVFilterContext *ctx)
Definition: vf_ssim360.c:1669
AV_PIX_FMT_YUVJ411P
@ AV_PIX_FMT_YUVJ411P
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor ...
Definition: pixfmt.h:276
init
static av_cold int init(AVFilterContext *ctx)
Definition: vf_ssim360.c:1317
AV_PIX_FMT_YUVJ422P
@ AV_PIX_FMT_YUVJ422P
planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting col...
Definition: pixfmt.h:79
config_input_main
static int config_input_main(AVFilterLink *inlink)
Definition: vf_ssim360.c:1350
SSIM360Context
Definition: vf_ssim360.c:143
AV_PIX_FMT_YUV420P
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
FILTER_INPUTS
#define FILTER_INPUTS(array)
Definition: internal.h:194
AV_PIX_FMT_YUVJ444P
@ AV_PIX_FMT_YUVJ444P
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
Definition: pixfmt.h:80
AV_PIX_FMT_YUVJ420P
@ AV_PIX_FMT_YUVJ420P
planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting col...
Definition: pixfmt.h:78
AV_PIX_FMT_GRAY8
@ AV_PIX_FMT_GRAY8
Y , 8bpp.
Definition: pixfmt.h:74
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:115
PF
#define PF(suf)
Definition: vf_ssim360.c:1720
config_input_ref
static int config_input_ref(AVFilterLink *inlink)
Definition: vf_ssim360.c:1555
config_output
static int config_output(AVFilterLink *outlink)
Definition: vf_ssim360.c:1596
AV_PIX_FMT_YUVJ440P
@ AV_PIX_FMT_YUVJ440P
planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range
Definition: pixfmt.h:100
ssim360_pixfmts
static enum AVPixelFormat ssim360_pixfmts[]
Definition: vf_ssim360.c:1721
ssim360_outputs
static const AVFilterPad ssim360_outputs[]
Definition: vf_ssim360.c:1746
AV_PIX_FMT_NONE
@ AV_PIX_FMT_NONE
Definition: pixfmt.h:65
AV_PIX_FMT_YUV444P
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
AV_PIX_FMT_GBRP
@ AV_PIX_FMT_GBRP
planar GBR 4:4:4 24bpp
Definition: pixfmt.h:158
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
AV_PIX_FMT_YUV422P
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:70
FILTER_OUTPUTS
#define FILTER_OUTPUTS(array)
Definition: internal.h:195
AV_PIX_FMT_YUV411P
@ AV_PIX_FMT_YUV411P
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
Definition: pixfmt.h:73
AV_PIX_FMT_YUV410P
@ AV_PIX_FMT_YUV410P
planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples)
Definition: pixfmt.h:72
activate
static int activate(AVFilterContext *ctx)
Definition: vf_ssim360.c:1663