FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
vf_curves.c File Reference
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/bprint.h"
#include "libavutil/eval.h"
#include "libavutil/file.h"
#include "libavutil/file_open.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "drawutils.h"
#include "filters.h"
#include "video.h"

Go to the source code of this file.

Data Structures

struct  keypoint
 
struct  CurvesContext
 
struct  ThreadData
 Used for passing data between threads. More...
 

Macros

#define R   0
 
#define G   1
 
#define B   2
 
#define A   3
 
#define NB_COMP   3
 
#define OFFSET(x)   offsetof(CurvesContext, x)
 
#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM
 
#define CLIP(v)   (nbits == 8 ? av_clip_uint8(v) : av_clip_uintp2_c(v, nbits))
 Natural cubic spline interpolation Finding curves using Cubic Splines notes by Steven Rauch and John Stockie. More...
 
#define BD   0 /* sub diagonal (below main) */
 
#define MD   1 /* main diagonal (center) */
 
#define AD   2 /* sup diagonal (above main) */
 
#define SIGN(x)   (x > 0.0 ? 1 : x < 0.0 ? -1 : 0)
 
#define READ16(dst)
 
#define SET_COMP_IF_NOT_SET(n, name)
 

Enumerations

enum  preset {
  PRESET_NONE, PRESET_COLOR_NEGATIVE, PRESET_CROSS_PROCESS, PRESET_DARKER,
  PRESET_INCREASE_CONTRAST, PRESET_LIGHTER, PRESET_LINEAR_CONTRAST, PRESET_MEDIUM_CONTRAST,
  PRESET_NEGATIVE, PRESET_STRONG_CONTRAST, PRESET_VINTAGE, NB_PRESETS
}
 
enum  interp { INTERP_NATURAL, INTERP_PCHIP, NB_INTERPS }
 

Functions

 AVFILTER_DEFINE_CLASS (curves)
 
static struct keypointmake_point (double x, double y, struct keypoint *next)
 
static int parse_points_str (AVFilterContext *ctx, struct keypoint **points, const char *s, int lut_size)
 
static int get_nb_points (const struct keypoint *d)
 
static int interpolate (void *log_ctx, uint16_t *y, const struct keypoint *points, int nbits)
 
static double pchip_edge_case (double h0, double h1, double m0, double m1)
 Evalaute the derivative of an edge endpoint. More...
 
static int pchip_find_derivatives (const int n, const double *hk, const double *mk, double *dk)
 Evalaute the piecewise polynomial derivatives at endpoints. More...
 
static double interp_cubic_hermite_half (const double x, const double f, const double d)
 Evalaute half of the cubic hermite interpolation expression, wrt one interval endpoint. More...
 
static int interpolate_pchip (void *log_ctx, uint16_t *y, const struct keypoint *points, int nbits)
 Prepare the lookup table by piecewise monotonic cubic interpolation (PCHIP) More...
 
static int parse_psfile (AVFilterContext *ctx, const char *fname)
 
static int dump_curves (const char *fname, uint16_t *graph[NB_COMP+1], struct keypoint *comp_points[NB_COMP+1], int lut_size)
 
static av_cold int curves_init (AVFilterContext *ctx)
 
static int filter_slice_packed (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int filter_slice_planar (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int config_input (AVFilterLink *inlink)
 
static int filter_frame (AVFilterLink *inlink, AVFrame *in)
 
static int process_command (AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
 
static av_cold void curves_uninit (AVFilterContext *ctx)
 

Variables

static const AVOption curves_options []
 
struct {
   const char *   r
 
   const char *   g
 
   const char *   b
 
   const char *   master
 
curves_presets []
 
static const AVFilterPad curves_inputs []
 
const AVFilter ff_vf_curves
 

Macro Definition Documentation

◆ R

#define R   0

Definition at line 35 of file vf_curves.c.

◆ G

#define G   1

Definition at line 36 of file vf_curves.c.

◆ B

#define B   2

Definition at line 37 of file vf_curves.c.

◆ A

#define A   3

Definition at line 38 of file vf_curves.c.

◆ NB_COMP

#define NB_COMP   3

Definition at line 45 of file vf_curves.c.

◆ OFFSET

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

Definition at line 92 of file vf_curves.c.

◆ FLAGS

Definition at line 93 of file vf_curves.c.

◆ CLIP

#define CLIP (   v)    (nbits == 8 ? av_clip_uint8(v) : av_clip_uintp2_c(v, nbits))

Natural cubic spline interpolation Finding curves using Cubic Splines notes by Steven Rauch and John Stockie.

See also
http://people.math.sfu.ca/~stockie/teaching/macm316/notes/splines.pdf

Definition at line 230 of file vf_curves.c.

◆ BD

#define BD   0 /* sub diagonal (below main) */

◆ MD

#define MD   1 /* main diagonal (center) */

◆ AD

#define AD   2 /* sup diagonal (above main) */

◆ SIGN

#define SIGN (   x)    (x > 0.0 ? 1 : x < 0.0 ? -1 : 0)

Definition at line 355 of file vf_curves.c.

◆ READ16

#define READ16 (   dst)
Value:
do { \
if (size < 2) { \
goto end; \
} \
dst = AV_RB16(buf); \
buf += 2; \
size -= 2; \
} while (0)

◆ SET_COMP_IF_NOT_SET

#define SET_COMP_IF_NOT_SET (   n,
  name 
)
Value:
do { \
if (!pts[n] && curves_presets[curves->preset].name) { \
pts[n] = av_strdup(curves_presets[curves->preset].name); \
if (!pts[n]) \
return AVERROR(ENOMEM); \
} \
} while (0)

Enumeration Type Documentation

◆ preset

enum preset
Enumerator
PRESET_NONE 
PRESET_COLOR_NEGATIVE 
PRESET_CROSS_PROCESS 
PRESET_DARKER 
PRESET_INCREASE_CONTRAST 
PRESET_LIGHTER 
PRESET_LINEAR_CONTRAST 
PRESET_MEDIUM_CONTRAST 
PRESET_NEGATIVE 
PRESET_STRONG_CONTRAST 
PRESET_VINTAGE 
NB_PRESETS 

Definition at line 47 of file vf_curves.c.

◆ interp

enum interp
Enumerator
INTERP_NATURAL 
INTERP_PCHIP 
NB_INTERPS 

Definition at line 62 of file vf_curves.c.

Function Documentation

◆ AVFILTER_DEFINE_CLASS()

AVFILTER_DEFINE_CLASS ( curves  )

◆ make_point()

static struct keypoint* make_point ( double  x,
double  y,
struct keypoint next 
)
static

Definition at line 156 of file vf_curves.c.

Referenced by parse_points_str().

◆ parse_points_str()

static int parse_points_str ( AVFilterContext ctx,
struct keypoint **  points,
const char *  s,
int  lut_size 
)
static

Definition at line 168 of file vf_curves.c.

Referenced by config_input().

◆ get_nb_points()

static int get_nb_points ( const struct keypoint d)
static

Definition at line 214 of file vf_curves.c.

Referenced by interpolate(), and interpolate_pchip().

◆ interpolate()

static int interpolate ( void *  log_ctx,
uint16_t *  y,
const struct keypoint points,
int  nbits 
)
inlinestatic

Definition at line 232 of file vf_curves.c.

Referenced by config_input().

◆ pchip_edge_case()

static double pchip_edge_case ( double  h0,
double  h1,
double  m0,
double  m1 
)
static

Evalaute the derivative of an edge endpoint.

Parameters
h0input interval of the interval closest to the edge
h1input interval of the interval next to the closest
m0linear slope of the interval closest to the edge
m1linear slope of the intervalnext to the closest
Returns
edge endpoint derivative

Based on scipy.interpolate._edge_case() https://github.com/scipy/scipy/blob/2e5883ef7af4f5ed4a5b80a1759a45e43163bf3f/scipy/interpolate/_cubic.py#L239 which is a python implementation of the special case endpoints, as suggested in Cleve Moler, Numerical Computing with MATLAB, Chap 3.6 (pchiptx.m)

Definition at line 371 of file vf_curves.c.

Referenced by pchip_find_derivatives().

◆ pchip_find_derivatives()

static int pchip_find_derivatives ( const int  n,
const double hk,
const double mk,
double dk 
)
static

Evalaute the piecewise polynomial derivatives at endpoints.

Parameters
ninput interval of the interval closest to the edge
hkinput intervals
mklinear slopes over intervals
dkendpoint derivatives (output)
Returns
0 success

Based on scipy.interpolate._find_derivatives() https://github.com/scipy/scipy/blob/2e5883ef7af4f5ed4a5b80a1759a45e43163bf3f/scipy/interpolate/_cubic.py#L254

Definition at line 400 of file vf_curves.c.

Referenced by interpolate_pchip().

◆ interp_cubic_hermite_half()

static double interp_cubic_hermite_half ( const double  x,
const double  f,
const double  d 
)
inlinestatic

Evalaute half of the cubic hermite interpolation expression, wrt one interval endpoint.

Parameters
xnormalized input value at the endpoint
foutput value at the endpoint
dderivative at the endpoint: normalized to the interval, and properly sign adjusted
Returns
half of the interpolated value

Definition at line 444 of file vf_curves.c.

Referenced by interpolate_pchip().

◆ interpolate_pchip()

static int interpolate_pchip ( void *  log_ctx,
uint16_t *  y,
const struct keypoint points,
int  nbits 
)
inlinestatic

Prepare the lookup table by piecewise monotonic cubic interpolation (PCHIP)

Parameters
log_ctxfor logging
youtput lookup table (output)
pointsuser-defined control points/endpoints
nbitsbitdepth
Returns
0 success

References: [1] F. N. Fritsch and J. Butland, A method for constructing local monotone piecewise cubic interpolants, SIAM J. Sci. Comput., 5(2), 300-304 (1984). DOI:10.1137/0905021. [2] scipy.interpolate: https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.PchipInterpolator.html

Definition at line 465 of file vf_curves.c.

Referenced by config_input().

◆ parse_psfile()

static int parse_psfile ( AVFilterContext ctx,
const char *  fname 
)
static

Definition at line 586 of file vf_curves.c.

Referenced by curves_init().

◆ dump_curves()

static int dump_curves ( const char *  fname,
uint16_t *  graph[NB_COMP+1],
struct keypoint comp_points[NB_COMP+1],
int  lut_size 
)
static

Definition at line 642 of file vf_curves.c.

Referenced by config_input().

◆ curves_init()

static av_cold int curves_init ( AVFilterContext ctx)
static

Definition at line 703 of file vf_curves.c.

Referenced by process_command().

◆ filter_slice_packed()

static int filter_slice_packed ( AVFilterContext ctx,
void *  arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 747 of file vf_curves.c.

Referenced by config_input().

◆ filter_slice_planar()

static int filter_slice_planar ( AVFilterContext ctx,
void *  arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 795 of file vf_curves.c.

Referenced by config_input().

◆ config_input()

static int config_input ( AVFilterLink inlink)
static

Definition at line 861 of file vf_curves.c.

Referenced by process_command().

◆ filter_frame()

static int filter_frame ( AVFilterLink inlink,
AVFrame in 
)
static

Definition at line 927 of file vf_curves.c.

◆ process_command()

static int process_command ( AVFilterContext ctx,
const char *  cmd,
const char *  args,
char *  res,
int  res_len,
int  flags 
)
static

Definition at line 957 of file vf_curves.c.

◆ curves_uninit()

static av_cold void curves_uninit ( AVFilterContext ctx)
static

Definition at line 993 of file vf_curves.c.

Variable Documentation

◆ curves_options

const AVOption curves_options[]
static
Initial value:
= {
{ "preset", "select a color curves preset", OFFSET(preset), AV_OPT_TYPE_INT, {.i64=PRESET_NONE}, PRESET_NONE, NB_PRESETS-1, FLAGS, .unit = "preset_name" },
{ "none", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_NONE}, 0, 0, FLAGS, .unit = "preset_name" },
{ "color_negative", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_COLOR_NEGATIVE}, 0, 0, FLAGS, .unit = "preset_name" },
{ "cross_process", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_CROSS_PROCESS}, 0, 0, FLAGS, .unit = "preset_name" },
{ "darker", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_DARKER}, 0, 0, FLAGS, .unit = "preset_name" },
{ "increase_contrast", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_INCREASE_CONTRAST}, 0, 0, FLAGS, .unit = "preset_name" },
{ "lighter", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_LIGHTER}, 0, 0, FLAGS, .unit = "preset_name" },
{ "linear_contrast", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_LINEAR_CONTRAST}, 0, 0, FLAGS, .unit = "preset_name" },
{ "medium_contrast", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_MEDIUM_CONTRAST}, 0, 0, FLAGS, .unit = "preset_name" },
{ "negative", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_NEGATIVE}, 0, 0, FLAGS, .unit = "preset_name" },
{ "strong_contrast", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_STRONG_CONTRAST}, 0, 0, FLAGS, .unit = "preset_name" },
{ "vintage", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_VINTAGE}, 0, 0, FLAGS, .unit = "preset_name" },
{ "master","set master points coordinates",OFFSET(comp_points_str[NB_COMP]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "m", "set master points coordinates",OFFSET(comp_points_str[NB_COMP]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "red", "set red points coordinates", OFFSET(comp_points_str[0]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "r", "set red points coordinates", OFFSET(comp_points_str[0]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "green", "set green points coordinates", OFFSET(comp_points_str[1]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "g", "set green points coordinates", OFFSET(comp_points_str[1]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "blue", "set blue points coordinates", OFFSET(comp_points_str[2]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "b", "set blue points coordinates", OFFSET(comp_points_str[2]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "all", "set points coordinates for all components", OFFSET(comp_points_str_all), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "psfile", "set Photoshop curves file name", OFFSET(psfile), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "plot", "save Gnuplot script of the curves in specified file", OFFSET(plot_filename), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
{ "interp", "specify the kind of interpolation", OFFSET(interp), AV_OPT_TYPE_INT, {.i64=INTERP_NATURAL}, INTERP_NATURAL, NB_INTERPS-1, FLAGS, .unit = "interp_name" },
{ "natural", "natural cubic spline", 0, AV_OPT_TYPE_CONST, {.i64=INTERP_NATURAL}, 0, 0, FLAGS, .unit = "interp_name" },
{ "pchip", "monotonically cubic interpolation", 0, AV_OPT_TYPE_CONST, {.i64=INTERP_PCHIP}, 0, 0, FLAGS, .unit = "interp_name" },
{ NULL }
}

Definition at line 94 of file vf_curves.c.

◆ r

const char* r

Definition at line 127 of file vf_curves.c.

Referenced by aax_read_header(), add_bell(), add_hfyu_left_pred_bgr32_c(), add_residual_joint(), aes_crypt(), affine_cps_from_nb(), alloc_lut(), allocate_plane(), amqp_proto_open(), angle_transform(), ap_run(), aribcaption_trans_bitmap_subtitle(), autoregression(), av_bessel_i0(), av_iamf_param_definition_alloc(), av_inv_q(), av_make_q(), av_rc4_crypt(), av_rc4_init(), av_realloc_f(), av_rescale_rnd(), av_size_mult(), avcodec_default_execute(), avcodec_default_execute2(), avfilter_graph_request_oldest(), avfilter_graph_send_command(), avpriv_set_systematic_pal2(), block_matching_multi(), bprint_color(), butterworth_bp_filter(), cache_read(), calc_add_mv(), calc_noise_floor(), calc_squared_error_and_weight(), cdg_load_palette(), cdtoons_decode_frame(), cdxl_decode_ham6(), cdxl_decode_ham8(), celt_lpc(), chebyshev1_bp_filter(), chebyshev2_bp_filter(), check_fdct(), check_slice_end(), checkasm_check_nlmeans(), choose_rct_params(), cinepak_decode_codebook(), cipher_init56(), cipher_init56_create_table(), circular_swap(), clip_to_subpic(), clut_pick_or_set(), cng_decode_frame(), color_balance16(), color_balance16_p(), color_balance8(), color_balance8_p(), color_correlation(), color_decorrelation(), color_distance(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcontrast_slice8(), colorcontrast_slice8p(), colormap_slice(), colorscale_matrix(), compress_color(), compute_avg(), compute_dev(), compute_gru(), compute_lpc_coefs(), compute_max_lut(), compute_max_row(), compute_median(), compute_min_lut(), compute_min_row(), compute_peak(), compute_ptp(), compute_rms(), compute_unsafe_ssd_integral_image(), config_input(), config_output(), config_props(), constrain_rgb(), convert(), convert_pd2zp(), convert_pr2zp(), convert_timestamp(), count_colors(), cqt_calc(), curves_init(), decipher(), decode_argb(), decode_argbi(), decode_argx(), decode_argxi(), decode_block_coeffs_internal(), decode_byterun2(), decode_delta_j(), decode_frame(), decode_frame_header(), decode_hybrid(), decode_mvc2(), decode_pal(), decode_plte_chunk(), decode_raw_intra_rgb(), decode_residual_block(), decode_rgb(), decode_rgb_frame(), decode_rgbi(), decode_rgbx(), decode_rgbxi(), decode_rice(), decode_run_i(), decode_run_p(), decode_signed_subexp_with_ref(), decode_spectrum_ac(), decode_units(), decode_unsigned_subexp_with_ref(), decode_value3(), decompose_transform(), decompress_i(), decompress_i3(), decompress_p(), decompress_p3(), default_execute(), do_colorkey_pixel(), do_xpsnr(), double_to_rational(), draw_dot(), draw_rectangle(), draw_spatial(), dshow_cycle_devices(), dshow_cycle_formats(), dshow_cycle_pins(), dshow_get_device_list(), dshow_list_device_options(), dshow_open_device(), dshow_read_close(), dshow_read_header(), dump_spherical(), dvbsub_encode(), dvbsub_parse_clut_segment(), dx2_decode_slice_5x5(), encipher(), encode_frame(), encode_rgb_frame(), encode_scalar(), encode_thread(), equisolid_to_xyz(), eval_expr(), expand_script(), expand_tseq(), f_func(), ff_alsa_extend_reorder_buf(), ff_big_div(), ff_dvdclut_yuv_to_rgb(), ff_dxva2_h264_fill_picture_parameters(), ff_els_decode_unsigned(), ff_get_qtpalette(), ff_gmc_c(), ff_jpegls_decode_picture(), ff_lag_rac_init(), ff_mjpeg_decode_frame_from_buf(), ff_oklab_int_to_srgb_u8(), ff_png_filter_row(), ff_rgb48Toxyz12(), ff_rtp_send_h264_hevc(), ff_rtp_send_mpegvideo(), ff_rv34_decode_end(), ff_rv34_decode_frame(), ff_rv34_decode_init(), ff_rv34_decode_update_thread_context(), ff_srgb_u8_to_oklab_int(), ff_text_eof(), ff_text_init_avio(), ff_text_init_buf(), ff_text_peek_r8(), ff_text_pos(), ff_text_r8(), ff_text_read(), ff_update_palette(), ff_vvc_inv_dct2_32(), ff_vvc_output_frame(), ff_xyz12Torgb48(), fill_in_tongue(), fill_slice_long(), filter(), filter_frame(), filter_rgb24(), filter_rgb48(), filter_rgba(), filter_rgba64(), filter_slice_grey_edge(), filter_slice_packed(), filter_slice_planar(), find_ref_mvs(), finish_frame(), flic_decode_frame_8BPP(), fluxlr(), focus_transform(), frac64(), frand(), free_lut(), gamma_convert(), gamma_correct_rgb(), gdv_decode_frame(), gdv_read_header(), gem_decode_frame(), gen_image(), gen_sub_bitmap(), generate_interval(), generate_intervals(), generate_joint_tables(), generate_plateau(), generate_scaling(), generate_transition(), get_cmy_scale(), get_dst_color_err(), get_final(), get_high_utility_cell(), get_max_component_diff(), get_random_number(), get_reconstructed_area(), get_rgb_scale(), get_symbol2(), get_tree_codes(), get_triplet(), get_wsse(), gfmul(), guess_palette(), guess_status_pts(), h263_handle_packet(), hdcd_analyze_gen(), hls_init(), hls_start(), hpel_motion_search(), hsl2rgb(), huff_reader_build_canonical(), huff_reader_get_symbol(), idcin_read_packet(), if(), imf_time_to_ts(), import_palette(), init(), init_axis_color(), init_default_clut(), init_filter(), init_hca(), insert_first(), insert_vertical_pass(), interpolate(), inv_cdf(), inverse_recenter(), iterative_me(), jp2_find_codestream(), lerp_colors32(), lex_char(), lex_double(), lex_time(), loco_get_rice(), loco_get_rice_param(), loco_update_rice_param(), ls_decode_line(), magy_decode_slice(), magy_decode_slice10(), main(), make_cdt15_entry(), make_cdt16_entry(), make_cdt24_entry(), mc_block(), mip_downsampling(), modplug_read_header(), monochrome_slice16(), monochrome_slice8(), mov_estimate_video_delay(), mov_read_sv3d(), mov_write_video_tag(), mp(), mp_yuv_to_rgb(), mpeg4_decode_sprite_trajectory(), mpegts_push_data(), mph(), mss2_blit_wmv9_template(), mss2_decode_frame(), MULH(), mz(), mzh(), next_tile_idx(), nlmeans_plane(), normalize(), on2avc_apply_ms(), opt_list(), optimize_colors(), orthographic_to_xyz(), paf_video_decode(), parse_3dl(), parse_block_def(), parse_ifo_palette(), parse_optarg(), parse_options(), parse_palette(), parse_palette_segment(), parse_pixel_format(), parse_points(), parse_script(), parse_synth_channel(), parse_synth_def(), parse_time_sequence(), parse_timestamp(), pitch_filter(), planar_rgb_to_uv_lasx(), planar_rgb_to_y_lasx(), pnm_decode_frame(), pnm_encode_frame(), pop_integer(), pow_poly(), power(), pps_bd(), pps_multi_tiles_slice(), pps_no_rect_slice(), pps_one_tile_slices(), pps_rect_slice(), pps_ref_wraparound_offset(), pps_width_height(), pred_weight_table(), predict_slice(), premult2straight(), preserve_color(), preservel(), print_pkt_side_data(), process_anticollapse(), process_bayer(), process_frame(), process_ipmovie_chunk(), ps_stereo_interpolate_c(), ps_stereo_interpolate_ipdopd_c(), pulse_read_packet(), pulse_write_packet(), push_integer(), put_pixel(), put_symbol2(), put_vc1_mspel_mc_h_v_lasx(), put_vc1_mspel_mc_h_v_msa(), qpel_motion_search(), rand64(), randomize_buffers(), rd_frame(), read_bits(), read_data(), read_global_param(), read_var_block_data(), refine_colors(), request_frame(), restore_rgb_planes10_c(), restore_rgb_planes_c(), rgb12to15(), rgb24_to_rgb555(), rgb24_to_yuv420p(), rgb24to15_c(), rgb24to16_c(), rgb24tobgr15_c(), rgb24tobgr16_c(), rgb2yuv(), rgb_to_yuv(), rgba2ycocg(), rgtc2_block_internal(), ring2_test(), rka_decode_frame(), rka_read_header(), rotate_tree(), rtmp_close(), rtmp_get_file_handle(), rtmp_open(), rtmp_read(), rtmp_read_pause(), rtmp_read_seek(), rtmp_write(), rtp_handler_iterate(), rtsp_read_packet(), run_postproc(), run_test(), rv30_decode_init(), rv30_decode_intra_types(), rv30_decode_mb_info(), rv30_loop_filter(), rv30_parse_slice_header(), rv34_decode_inter_macroblock(), rv34_decode_inter_mb_header(), rv34_decode_intra_macroblock(), rv34_decode_intra_mb_header(), rv34_decode_mv(), rv34_decode_slice(), rv34_decoder_alloc(), rv34_decoder_free(), rv34_decoder_realloc(), rv34_mc(), rv34_mc_1mv(), rv34_mc_2mv(), rv34_mc_2mv_skip(), rv34_output_i16x16(), rv34_output_intra(), rv34_pred_4x4_block(), rv34_pred_mv(), rv34_pred_mv_b(), rv34_pred_mv_rv3(), rv34_process_block(), rv34_set_deblock_coef(), rv40_decode_init(), rv40_decode_intra_types(), rv40_decode_mb_info(), rv40_loop_filter(), rv40_parse_slice_header(), rv4_weight(), sad_hpel_motion_search(), sampling_init(), sb_set_lr(), sbg_read_header(), sbg_read_probe(), sbr_hf_g_filt_c(), scale_double(), scale_vt_config_output(), search_keyval(), set_filter(), set_frame(), set_palette(), set_params(), sh_deblock_offsets(), silk_unmix_ms(), simbiosis_imx_read_packet(), size_mult(), slice_get_derivative(), smacker_decode_bigtree(), smacker_decode_tree(), sps_bit_depth(), sps_chroma_qp_table(), sps_derive(), sps_inter(), sps_ladf(), sps_map_pixel_format(), sps_partition_constraints(), stereo_processing(), stereographic_to_xyz(), strftime_expand(), sub2video_copy_rect(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), subpic_get_rect(), super2xsai(), swri_rematrix_init(), temperature_slice16(), temperature_slice16p(), temperature_slice32(), temperature_slice8(), temperature_slice8p(), test_stereo_interpolate(), tta_decode_frame(), tta_read_header(), uintpow(), uninit(), update_palette_index(), v360_slice(), vc1_mspel_filter(), vc2_encode_init(), vibrance_slice16(), vibrance_slice16p(), vibrance_slice8(), vibrance_slice8p(), vk_h264_start_frame(), vmd_decode(), vmdvideo_decode_init(), vp7_decode_block_coeffs_internal(), vp8_decode_block_coeffs_internal(), vp9_handle_packet(), vps(), vqa_decode_frame_pal8(), vs_load_library(), wavesynth_decode(), wavesynth_init(), xan_decode_frame(), xface_encode_frame(), xyz_to_ball(), xyz_to_equisolid(), xyz_to_flat(), xyz_to_orthographic(), xyz_to_rgb(), xyz_to_stereographic(), ycocg2rgba(), yuv2rgb_1_c_template(), yuv2rgb_1_template_lasx(), yuv2rgb_1_template_lsx(), yuv2rgb_2_c_template(), yuv2rgb_2_template_lasx(), yuv2rgb_2_template_lsx(), yuv2rgb_write(), yuv2rgb_write_full(), yuv2rgb_X_c_template(), yuv2rgb_X_template_lasx(), yuv2rgb_X_template_lsx(), yuv_a_to_rgba(), yuv_from_cqt(), and yuv_to_rgba().

◆ g

const char* g

Definition at line 128 of file vf_curves.c.

Referenced by add_hfyu_left_pred_bgr32_c(), add_opt(), add_waves(), adjust_frame_information(), adpcm_decode_frame(), apply_complex_stereo(), apply_dependent_coupling(), apply_intensity_stereo(), apply_mid_side_stereo(), apply_noise_fill(), aribcaption_trans_bitmap_subtitle(), asf_build_simple_index(), asf_read_ext_stream_properties(), asf_read_header(), asf_read_stream_properties(), asf_read_unknown(), avcodec_string(), avformat_match_stream_specifier(), avpriv_set_systematic_pal2(), bethsoftvid_decode_frame(), bfi_decode_frame(), bgr24ToUV_c(), bgr24ToUV_half_c(), bprint_color(), butterworth_bp_filter(), butterworth_fo_section(), bytestream2_copy_buffer(), bytestream2_copy_bufferu(), bytestream2_get_buffer(), bytestream2_get_bufferu(), bytestream2_get_bytes_left(), bytestream2_init(), bytestream2_seek(), bytestream2_size(), bytestream2_skip(), bytestream2_skipu(), bytestream2_tell(), calc_thr_3gpp(), calculate_gamma(), cas_slice16(), cas_slice8(), cdg_load_palette(), cdtoons_decode_frame(), cdxl_decode_ham6(), cdxl_decode_ham8(), celt_normalize_residual(), celt_renormalize_vector(), chebyshev2_bp_filter(), chebyshev2_fo_section(), choose_rct_params(), cinepak_decode_codebook(), clut_pick_or_set(), color_balance16(), color_balance16_p(), color_balance8(), color_balance8_p(), color_correlation(), color_decorrelation(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcontrast_slice8(), colorcontrast_slice8p(), colormap_slice(), colorscale_matrix(), complex_stereo_downmix_cur(), complex_stereo_downmix_prev(), compress_color(), compute_antialias(), compute_band_indexes(), compute_imdct(), config_input(), constrain_rgb(), convert(), convert_dir2zdf(), create_lut(), curves_init(), dct_quantize_refine(), decode_adaptive45(), decode_adaptive6(), decode_argb(), decode_argbi(), decode_argx(), decode_argxi(), decode_band_types(), decode_cce(), decode_delta_j(), decode_frame(), decode_huff(), decode_hybrid(), decode_mvc2(), decode_pal(), decode_plte_chunk(), decode_raw_intra_rgb(), decode_rgb(), decode_rgb_frame(), decode_rgbi(), decode_rgbx(), decode_rgbxi(), decode_run_i(), decode_run_p(), decode_scalefactors(), decode_spectrum_and_dequant(), decode_units(), decode_usac_scale_factors(), decode_usac_stereo_cplx(), decode_usac_stereo_info(), decode_value3(), decompress_i(), decompress_i3(), decompress_p(), decompress_p3(), dequant_scalefactors(), detect_unknown_subobject(), difference(), difference2(), dilate(), do_colorkey_pixel(), draw_dot(), draw_glyphs(), dvbsub_encode(), dvbsub_parse_clut_segment(), dx2_decode_slice_5x5(), encode_frame(), encode_rgb_frame(), eq_interp(), erode(), expand_rle_row16(), expand_rle_row8(), exponents_from_scale_factors(), ff_aac_adjust_common_pred(), ff_aac_is_encoding_err(), ff_aac_search_for_is(), ff_aac_search_for_ltp(), ff_aac_search_for_tns(), ff_dvdclut_yuv_to_rgb(), ff_flac_parse_picture(), ff_get_guid(), ff_get_qtpalette(), ff_init_nextband_map(), ff_jpegls_decode_picture(), ff_mjpeg_decode_frame_from_buf(), ff_oklab_int_to_srgb_u8(), ff_png_filter_row(), ff_pns_bits(), ff_printGUID(), ff_put_guid(), ff_rgb48Toxyz12(), ff_srgb_u8_to_oklab_int(), ff_update_palette(), ff_vvc_inv_dct2_16(), ff_vvc_inv_dct2_32(), ff_vvc_inv_dct2_8(), ff_xyz12Torgb48(), fill_in_tongue(), filter_channels(), filter_frame(), filter_horizontally(), filter_rgb24(), filter_rgb48(), filter_rgba(), filter_rgba64(), filter_slice_packed(), filter_slice_planar(), find_best_vect(), find_guid(), finish_group(), flic_decode_frame_8BPP(), gamma_convert(), gamma_correct_rgb(), gbr24pToUV_half_c(), gdv_decode_frame(), gdv_read_header(), gem_decode_frame(), gen_image(), gen_sub_bitmap(), generate_joint_tables(), get_cmy_scale(), get_dst_color_err(), get_match_score(), get_max_component_diff(), get_rgb_scale(), get_triplet(), gif_find_frame_end(), gif_parse(), guess_palette(), hsl2rgb(), huffman_decode(), idcin_read_packet(), idct(), idct_1d(), imdct_calc(), import_palette(), incr_cntdec(), init(), init_axis_color(), init_default_clut(), init_long_region(), init_short_region(), interp_band_gain(), jp2_find_codestream(), lerp_colors32(), line_dilate(), line_erode(), magy_decode_slice(), magy_decode_slice10(), main(), mangle_rgb_planes(), mark_pns(), match_stream_specifier(), mov_write_video_tag(), mp_decode_layer3(), mp_yuv_to_rgb(), mxf_parse_jpeg2000_frame(), nb_decode(), normalize(), optimize_colors(), p01x_wrapper(), paf_video_decode(), parse_3dl(), parse_bit_alloc(), parse_chunks(), parse_exponents(), parse_ifo_palette(), parse_indices(), parse_mantissas(), parse_optgroup(), parse_palette(), parse_palette_segment(), parse_pixel_format(), pgx_decode_frame(), pgx_decode_header(), pgx_get_number(), pitch_filter(), planar_rgb16_to_uv(), planar_rgb16_to_y(), planar_rgb_to_uv(), planar_rgb_to_uv_lasx(), planar_rgb_to_y(), planar_rgb_to_y_lasx(), planar_rgbf32_to_uv(), planar_rgbf32_to_y(), pnm_decode_frame(), pnm_encode_frame(), power(), predict_slice(), premult2straight(), preserve_color(), preservel(), process_bayer(), process_frame(), process_ipmovie_chunk(), process_sample(), psy_3gpp_analyze_channel(), psy_3gpp_init(), put_header(), put_pixel(), qdmc_decode_init(), quantize_band_cost_cached(), ra144_encode_subblock(), rd_frame(), read_rle_sgi(), read_uncompressed_sgi(), refine_colors(), region_offset2size(), remove_doubling(), reorder_block(), rescale_dec(), restore_rgb_planes10_c(), restore_rgb_planes_c(), rgb12to15(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb16_32ToY_c_template(), rgb24_to_rgb555(), rgb24_to_yuv420p(), rgb24to15_c(), rgb24to16_c(), rgb24tobgr15_c(), rgb24tobgr16_c(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24ToY_c(), rgb2yuv(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb48ToY_c_template(), rgb64ToUV_c_template(), rgb64ToUV_half_c_template(), rgb64ToY_c_template(), rgb9plus_planar_funcs(), rgb_from_cqt(), rgb_to_yuv(), rgba2ycocg(), rgbaf16ToUV_endian(), rgbaf16ToY_endian(), rgbf16ToUV_endian(), rgbf16ToUV_half_endian(), rgbf16ToY_endian(), rgbf32_to_uv_c(), rgbf32_to_y_c(), rgtc2_block_internal(), ripemd128_transform(), ripemd160_transform(), ripemd256_transform(), ripemd320_transform(), rnnoise_channel(), run_channel_fft(), run_postproc(), saturation_matrix(), sb_decode(), sbr_hf_gen(), search_for_ms(), search_for_pns(), search_for_quantizers_anmr(), search_for_quantizers_fast(), search_for_quantizers_twoloop(), set_frame(), set_palette(), set_special_band_scalefactors(), sha256_transform(), sha512_transform(), shuffle_bytes_0321_c(), shuffle_bytes_2103_c(), simbiosis_imx_read_packet(), slice_get_derivative(), spectrum_scale(), stream_specifier_match(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), temperature_slice16(), temperature_slice16p(), temperature_slice32(), temperature_slice8(), temperature_slice8p(), transform(), transform_step(), unbias_exponents(), update_model2_to_6(), update_model3_to_7(), update_model4_to_5(), update_model5_to_6(), update_palette_index(), vb_decode_framedata(), vibrance_slice16(), vibrance_slice16p(), vibrance_slice8(), vibrance_slice8p(), vif_statistic(), vmd_decode(), vmdvideo_decode_init(), vp9_handle_packet(), vqa_decode_frame_pal8(), write_stream_codec_info(), xan_decode_frame(), xyz_to_rgb(), ycocg2rgba(), yuv2rgb_1_c_template(), yuv2rgb_1_template_lasx(), yuv2rgb_1_template_lsx(), yuv2rgb_2_c_template(), yuv2rgb_2_template_lasx(), yuv2rgb_2_template_lsx(), yuv2rgb_write(), yuv2rgb_write_full(), yuv2rgb_X_c_template(), yuv2rgb_X_template_lasx(), yuv2rgb_X_template_lsx(), yuv_a_to_rgba(), yuv_from_cqt(), and yuv_to_rgba().

◆ b

const char* b

◆ master

const char* master

◆ curves_presets

const { ... } curves_presets[]
Initial value:
= {
"0.129/1 0.466/0.498 0.725/0",
"0.109/1 0.301/0.498 0.517/0",
"0.098/1 0.235/0.498 0.423/0",
},
"0/0 0.25/0.156 0.501/0.501 0.686/0.745 1/1",
"0/0 0.25/0.188 0.38/0.501 0.745/0.815 1/0.815",
"0/0 0.231/0.094 0.709/0.874 1/1",
},
[PRESET_DARKER] = { .master = "0/0 0.5/0.4 1/1" },
[PRESET_INCREASE_CONTRAST] = { .master = "0/0 0.149/0.066 0.831/0.905 0.905/0.98 1/1" },
[PRESET_LIGHTER] = { .master = "0/0 0.4/0.5 1/1" },
[PRESET_LINEAR_CONTRAST] = { .master = "0/0 0.305/0.286 0.694/0.713 1/1" },
[PRESET_MEDIUM_CONTRAST] = { .master = "0/0 0.286/0.219 0.639/0.643 1/1" },
[PRESET_NEGATIVE] = { .master = "0/1 1/0" },
[PRESET_STRONG_CONTRAST] = { .master = "0/0 0.301/0.196 0.592/0.6 0.686/0.737 1/1" },
"0/0.11 0.42/0.51 1/0.95",
"0/0 0.50/0.48 1/1",
"0/0.22 0.49/0.44 1/0.8",
}
}

◆ curves_inputs

const AVFilterPad curves_inputs[]
static
Initial value:
= {
{
.name = "default",
.filter_frame = filter_frame,
.config_props = config_input,
},
}

Definition at line 1002 of file vf_curves.c.

◆ ff_vf_curves

const AVFilter ff_vf_curves
AV_PIX_FMT_GBRAP16
#define AV_PIX_FMT_GBRAP16
Definition: pixfmt.h:525
PRESET_CROSS_PROCESS
@ PRESET_CROSS_PROCESS
Definition: vf_curves.c:50
PRESET_LIGHTER
@ PRESET_LIGHTER
Definition: vf_curves.c:53
AVERROR
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
curves_presets
static const struct @334 curves_presets[]
curves
static const Curve curves[]
Definition: vf_pseudocolor.c:192
FLAGS
#define FLAGS
Definition: vf_curves.c:93
PRESET_MEDIUM_CONTRAST
@ PRESET_MEDIUM_CONTRAST
Definition: vf_curves.c:55
FILTER_INPUTS
#define FILTER_INPUTS(array)
Definition: filters.h:262
CurvesContext
Definition: vf_curves.c:68
curves_inputs
static const AVFilterPad curves_inputs[]
Definition: vf_curves.c:1002
AV_PIX_FMT_BGR24
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
Definition: pixfmt.h:76
AV_PIX_FMT_BGRA
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
Definition: pixfmt.h:102
AV_PIX_FMT_GBRP14
#define AV_PIX_FMT_GBRP14
Definition: pixfmt.h:520
AV_PIX_FMT_GBRAP
@ AV_PIX_FMT_GBRAP
planar GBRA 4:4:4:4 32bpp
Definition: pixfmt.h:212
interp
interp
Definition: vf_curves.c:62
AV_PIX_FMT_GBRP10
#define AV_PIX_FMT_GBRP10
Definition: pixfmt.h:518
NB_PRESETS
@ NB_PRESETS
Definition: vf_curves.c:59
pts
static int64_t pts
Definition: transcode_aac.c:644
preset
preset
Definition: vf_curves.c:47
ff_video_default_filterpad
const AVFilterPad ff_video_default_filterpad[1]
An AVFilterPad array whose only entry has name "default" and is of type AVMEDIA_TYPE_VIDEO.
Definition: video.c:37
AV_PIX_FMT_GBRAP10
#define AV_PIX_FMT_GBRAP10
Definition: pixfmt.h:522
AV_PIX_FMT_GBRAP12
#define AV_PIX_FMT_GBRAP12
Definition: pixfmt.h:523
process_command
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
Definition: vf_curves.c:957
FILTER_OUTPUTS
#define FILTER_OUTPUTS(array)
Definition: filters.h:263
AV_PIX_FMT_RGBA
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
Definition: pixfmt.h:100
AV_PIX_FMT_GBRP16
#define AV_PIX_FMT_GBRP16
Definition: pixfmt.h:521
AV_PIX_FMT_RGBA64
#define AV_PIX_FMT_RGBA64
Definition: pixfmt.h:492
AV_PIX_FMT_BGR48
#define AV_PIX_FMT_BGR48
Definition: pixfmt.h:493
NULL
#define NULL
Definition: coverity.c:32
INTERP_PCHIP
@ INTERP_PCHIP
Definition: vf_curves.c:64
AV_PIX_FMT_BGR0
@ AV_PIX_FMT_BGR0
packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined
Definition: pixfmt.h:265
AV_PIX_FMT_GBRP9
#define AV_PIX_FMT_GBRP9
Definition: pixfmt.h:517
AV_PIX_FMT_ABGR
@ AV_PIX_FMT_ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
Definition: pixfmt.h:101
PRESET_DARKER
@ PRESET_DARKER
Definition: vf_curves.c:51
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:368
AV_PIX_FMT_RGB24
@ AV_PIX_FMT_RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
Definition: pixfmt.h:75
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:94
AV_PIX_FMT_RGB48
#define AV_PIX_FMT_RGB48
Definition: pixfmt.h:488
size
int size
Definition: twinvq_data.h:10344
curves_uninit
static av_cold void curves_uninit(AVFilterContext *ctx)
Definition: vf_curves.c:993
INTERP_NATURAL
@ INTERP_NATURAL
Definition: vf_curves.c:63
NB_INTERPS
@ NB_INTERPS
Definition: vf_curves.c:65
AV_PIX_FMT_RGB0
@ AV_PIX_FMT_RGB0
packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined
Definition: pixfmt.h:263
AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
Some filters support a generic "enable" expression option that can be used to enable or disable a fil...
Definition: avfilter.h:182
AV_PIX_FMT_ARGB
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
Definition: pixfmt.h:99
PRESET_INCREASE_CONTRAST
@ PRESET_INCREASE_CONTRAST
Definition: vf_curves.c:52
uninit
static void uninit(AVBSFContext *ctx)
Definition: pcm_rechunk.c:68
AV_PIX_FMT_BGRA64
#define AV_PIX_FMT_BGRA64
Definition: pixfmt.h:497
PRESET_NONE
@ PRESET_NONE
Definition: vf_curves.c:48
AV_PIX_FMT_GBRP12
#define AV_PIX_FMT_GBRP12
Definition: pixfmt.h:519
PRESET_VINTAGE
@ PRESET_VINTAGE
Definition: vf_curves.c:58
FILTER_PIXFMTS
#define FILTER_PIXFMTS(...)
Definition: filters.h:248
PRESET_COLOR_NEGATIVE
@ PRESET_COLOR_NEGATIVE
Definition: vf_curves.c:49
NB_COMP
#define NB_COMP
Definition: vf_curves.c:45
AV_PIX_FMT_0BGR
@ AV_PIX_FMT_0BGR
packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined
Definition: pixfmt.h:264
PRESET_NEGATIVE
@ PRESET_NEGATIVE
Definition: vf_curves.c:56
PRESET_LINEAR_CONTRAST
@ PRESET_LINEAR_CONTRAST
Definition: vf_curves.c:54
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition: opt.h:259
config_input
static int config_input(AVFilterLink *inlink)
Definition: vf_curves.c:861
AV_PIX_FMT_GBRP
@ AV_PIX_FMT_GBRP
planar GBR 4:4:4 24bpp
Definition: pixfmt.h:165
AVFILTER_FLAG_SLICE_THREADS
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
Definition: avfilter.h:152
av_strdup
char * av_strdup(const char *s)
Duplicate a string.
Definition: mem.c:272
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
curves_init
static av_cold int curves_init(AVFilterContext *ctx)
Definition: vf_curves.c:703
AV_PIX_FMT_0RGB
@ AV_PIX_FMT_0RGB
packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined
Definition: pixfmt.h:262
AVERROR_INVALIDDATA
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition: error.h:61
AV_OPT_TYPE_STRING
@ AV_OPT_TYPE_STRING
Underlying C type is a uint8_t* that is either NULL or points to a C string allocated with the av_mal...
Definition: opt.h:276
PRESET_STRONG_CONTRAST
@ PRESET_STRONG_CONTRAST
Definition: vf_curves.c:57
AV_OPT_TYPE_CONST
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
Definition: opt.h:299
OFFSET
#define OFFSET(x)
Definition: vf_curves.c:92
AV_RB16
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_RB16
Definition: bytestream.h:98
filter_frame
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
Definition: vf_curves.c:927