FFmpeg
|
#include "libavutil/opt.h"
#include "libavutil/bprint.h"
#include "libavutil/eval.h"
#include "libavutil/file.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "drawutils.h"
#include "formats.h"
#include "internal.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 | DECLARE_INTERPOLATE_FUNC(nbits) |
#define | READ16(dst) |
#define | SET_COMP_IF_NOT_SET(n, name) |
Functions | |
AVFILTER_DEFINE_CLASS (curves) | |
static struct keypoint * | make_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 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 | query_formats (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 [] |
static const AVFilterPad | curves_outputs [] |
AVFilter | ff_vf_curves |
#define R 0 |
Definition at line 34 of file vf_curves.c.
#define G 1 |
Definition at line 35 of file vf_curves.c.
#define B 2 |
Definition at line 36 of file vf_curves.c.
#define A 3 |
Definition at line 37 of file vf_curves.c.
#define NB_COMP 3 |
Definition at line 44 of file vf_curves.c.
#define OFFSET | ( | x | ) | offsetof(CurvesContext, x) |
Definition at line 84 of file vf_curves.c.
Definition at line 85 of file vf_curves.c.
#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.
Definition at line 217 of file vf_curves.c.
#define MD 1 /* main diagonal (center) */ |
#define AD 2 /* sup diagonal (above main) */ |
#define DECLARE_INTERPOLATE_FUNC | ( | nbits | ) |
Definition at line 341 of file vf_curves.c.
#define READ16 | ( | dst | ) |
#define SET_COMP_IF_NOT_SET | ( | n, | |
name | |||
) |
enum preset |
Definition at line 46 of file vf_curves.c.
AVFILTER_DEFINE_CLASS | ( | curves | ) |
Definition at line 145 of file vf_curves.c.
Referenced by parse_points_str().
|
static |
Definition at line 157 of file vf_curves.c.
Referenced by config_input().
Definition at line 201 of file vf_curves.c.
Referenced by interpolate().
|
inlinestatic |
Definition at line 219 of file vf_curves.c.
|
static |
Definition at line 355 of file vf_curves.c.
Referenced by curves_init().
|
static |
Definition at line 411 of file vf_curves.c.
Referenced by config_input().
|
static |
Definition at line 472 of file vf_curves.c.
Referenced by process_command().
|
static |
Definition at line 516 of file vf_curves.c.
|
static |
Definition at line 540 of file vf_curves.c.
Referenced by config_input().
|
static |
Definition at line 588 of file vf_curves.c.
Referenced by config_input().
|
static |
Definition at line 654 of file vf_curves.c.
Referenced by process_command().
|
static |
Definition at line 724 of file vf_curves.c.
|
static |
Definition at line 753 of file vf_curves.c.
|
static |
Definition at line 789 of file vf_curves.c.
|
static |
Definition at line 86 of file vf_curves.c.
const char* r |
Definition at line 116 of file vf_curves.c.
Referenced by aax_read_header(), add_bell(), add_hfyu_left_pred_bgr32_c(), aes_crypt(), alloc_frame_buffer(), allocate_plane(), amqp_proto_open(), autoregression(), 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(), bessel(), block_matching_multi(), bprint_color(), butterworth_bp_filter(), cache_read(), calc_add_mv(), cdg_load_palette(), cdtoons_decode_frame(), cdxl_decode_ham6(), cdxl_decode_ham8(), celt_lpc(), chebyshev1_bp_filter(), chebyshev2_bp_filter(), check_slice_end(), checkasm_check_nlmeans(), choose_rct_params(), cinepak_decode_codebook(), cng_decode_frame(), color_balance16(), color_balance16_p(), color_balance8(), color_balance8_p(), color_correlation(), color_decorrelation(), color_distance(), color_get(), color_hash(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcontrast_slice8(), colorcontrast_slice8p(), compress_color(), compute_gru(), compute_lpc_coefs(), 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(), debug_accuracy(), 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_init(), decode_mvc2(), decode_pal(), decode_plte_chunk(), decode_raw_intra_rgb(), decode_refpass(), decode_residual_block(), decode_rgb(), decode_rgb_frame_TMPL(), decode_rgbi(), decode_rgbx(), decode_rgbxi(), decode_rice(), decode_run_i(), decode_run_p(), decode_signed_subexp_with_ref(), decode_units(), decode_unsigned_subexp_with_ref(), decode_value3(), decompose_transform(), decompress_i(), decompress_i3(), decompress_p(), decompress_p3(), default_execute(), dither_int_to_float_triangular_c(), do_colorhold_slice(), do_colorkey_pixel(), doTest(), draw_rectangle(), draw_spatial(), dshow_cycle_devices(), dshow_cycle_formats(), dshow_cycle_pins(), dshow_list_device_options(), dshow_open_device(), dshow_read_close(), dshow_read_header(), dump_spherical(), dv_read_seek(), dvbsub_encode(), dvbsub_init_decoder(), dvbsub_parse_clut_segment(), dx2_decode_slice_5x5(), encipher(), encode_frame(), encode_rgb_frame_TMPL(), encode_scalar(), encode_thread(), equisolid_to_xyz(), eval_expr(), expand_script(), expand_tseq(), f_func(), ff_alsa_extend_reorder_buf(), ff_big_div(), ff_els_decode_unsigned(), ff_get_qtpalette(), ff_gmc_c(), ff_jpegls_decode_picture(), ff_lag_rac_init(), ff_mjpeg_receive_frame(), ff_png_filter_row(), ff_rgb24toyv12_c(), ff_rtp_handler_iterate(), 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_text_eof(), ff_text_init_avio(), ff_text_init_buf(), ff_text_peek_r8(), ff_text_pos(), ff_text_r8(), ff_text_read(), fileTest(), fill_in_tongue(), fill_picture_parameters(), 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(), frac64(), frand(), gamma_convert(), gamma_correct_rgb(), gdv_decode_frame(), gdv_read_header(), gen_image(), gen_sub_bitmap(), generate_interval(), generate_intervals(), generate_joint_tables(), generate_plateau(), generate_transition(), get_avg_color(), get_cmy_scale(), get_dst_color_err(), get_high_utility_cell(), get_max_component_diff(), get_next_color(), get_palette_frame(), get_rgb_scale(), get_symbol2(), get_tree_codes(), 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(), idct_col2(), idct_row(), import_palette(), init(), init_axis_color(), interpolate(), inv_cdf(), inverse_recenter(), iterative_me(), jp2_find_codestream(), 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(), magy_encode_frame(), main(), make_cdt15_entry(), make_cdt16_entry(), make_cdt24_entry(), mc_block(), modplug_read_header(), monochrome_slice16(), monochrome_slice8(), mov_estimate_video_delay(), mov_read_sv3d(), mov_write_video_tag(), mp_yuv_to_rgb(), mpeg4_decode_sprite_trajectory(), mpegts_push_data(), mss2_blit_wmv9_template(), mss2_decode_frame(), MULH(), nlmeans_plane(), 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(), pix_abs16x16_x2_mvi(), pnm_decode_frame(), pnm_encode_frame(), pop_integer(), pow_poly(), premult2straight(), preservel(), print_pkt_side_data(), process_anticollapse(), process_bayer(), 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_msa(), qpel_motion_search(), rand64(), rd_frame(), read_bits(), read_data(), read_global_param(), read_var_block_data(), read_whole_file(), refine_colors(), request_frame(), restore_rgb_planes10_c(), restore_rgb_planes_c(), rgb12to15(), rgb24_to_rgb555(), rgb24_to_yuv420p(), rgb24to15_c(), rgb24to15_TMPL(), rgb24to16_c(), rgb24to16_TMPL(), rgb24tobgr15_c(), rgb24tobgr15_TMPL(), rgb24tobgr16_c(), rgb24tobgr16_TMPL(), rgb2yuv(), rgb48Toxyz12(), rgb_to_yuv(), rgba2ycocg(), rgtc2_block_internal(), ring2_test(), rotate_tree(), roundToInt16(), rtmp_close(), rtmp_get_file_handle(), rtmp_open(), rtmp_read(), rtmp_read_pause(), rtmp_read_seek(), rtmp_write(), 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(), sbg_read_header(), sbg_read_probe(), sbr_hf_g_filt_c(), scale_double(), search_keyval(), set_frame(), set_palette(), set_params(), silk_unmix_ms(), simbiosis_imx_read_packet(), slice_get_derivative(), smacker_decode_bigtree(), smacker_decode_tree(), stereo_processing(), stereo_transform(), stereographic_to_xyz(), strftime_expand(), sub2video_copy_rect(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), super2xsai(), swri_rematrix_init(), sws_scale(), temperature_slice16(), temperature_slice16p(), 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(), vmd_decode(), vmdvideo_decode_init(), vp7_decode_block_coeffs_internal(), vp8_decode_block_coeffs_internal(), vp9_handle_packet(), vqa_decode_chunk(), wavesynth_decode(), wavesynth_init(), xan_decode_frame(), xface_encode_frame(), xyz12Torgb48(), xyz_to_ball(), xyz_to_equisolid(), xyz_to_flat(), xyz_to_orthographic(), xyz_to_rgb(), xyz_to_stereographic(), ycocg2rgba(), yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), yuv2rgb_write(), yuv2rgb_write_full(), yuv2rgb_X_c_template(), yuv_a_to_rgba(), yuv_from_cqt(), and yuv_to_rgba().
const char* g |
Definition at line 117 of file vf_curves.c.
Referenced by add_hfyu_left_pred_bgr32_c(), add_opt(), add_waves(), adjust_frame_information(), adpcm_decode_frame(), apply_dependent_coupling(), apply_dependent_coupling_fixed(), apply_intensity_stereo(), apply_mid_side_stereo(), asf_build_simple_index(), asf_read_ext_stream_properties(), asf_read_header(), asf_read_stream_properties(), asf_read_unknown(), avcodec_string(), avpriv_set_systematic_pal2(), bfi_decode_frame(), bgr24ToUV_c(), bgr24ToUV_half_c(), bgr24ToY_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(), color_balance16(), color_balance16_p(), color_balance8(), color_balance8_p(), color_correlation(), color_decorrelation(), color_get(), color_hash(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcontrast_slice8(), colorcontrast_slice8p(), compress_color(), compute_antialias(), compute_band_indexes(), compute_imdct(), config_input(), constrain_rgb(), convert(), create_lut(), curves_init(), dct_quantize_refine(), debug_accuracy(), 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_TMPL(), decode_rgbi(), decode_rgbx(), decode_rgbxi(), decode_run_i(), decode_run_p(), decode_scalefactors(), decode_spectrum_and_dequant(), decode_units(), decode_value3(), decompress_i(), decompress_i3(), decompress_p(), decompress_p3(), detect_unknown_subobject(), do_colorhold_slice(), do_colorkey_pixel(), dvbsub_encode(), dvbsub_init_decoder(), dvbsub_parse_clut_segment(), dx2_decode_slice_5x5(), encode_frame(), encode_rgb_frame_TMPL(), 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_flac_parse_picture(), ff_get_guid(), ff_get_qtpalette(), ff_init_nextband_map(), ff_jpegls_decode_picture(), ff_mjpeg_receive_frame(), ff_png_filter_row(), ff_pns_bits(), ff_printGUID(), ff_put_guid(), ff_rgb24toyv12_c(), fill_in_tongue(), 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(), for(), gamma_convert(), gamma_correct_rgb(), gdv_decode_frame(), gdv_read_header(), gen_image(), gen_sub_bitmap(), generate_joint_tables(), get_avg_color(), get_cmy_scale(), get_dst_color_err(), get_match_score(), get_max_component_diff(), get_next_color(), get_palette_frame(), get_rgb_scale(), 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_long_region(), init_short_region(), interp_band_gain(), jp2_find_codestream(), magy_decode_slice(), magy_decode_slice10(), magy_encode_frame(), main(), mangle_rgb_planes(), mark_pns(), mov_write_video_tag(), mp_decode_layer3(), mp_yuv_to_rgb(), optimize_colors(), 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_y(), planar_rgbf32_to_uv(), planar_rgbf32_to_y(), pnm_decode_frame(), pnm_encode_frame(), premult2straight(), preservel(), process_bayer(), process_ipmovie_chunk(), psy_3gpp_analyze_channel(), psy_3gpp_init(), put_header(), put_pixel(), qdmc_decode_init(), quantize_band_cost_cached(), ra144_encode_subblock(), rd_frame(), 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(), rgb24_to_rgb555(), rgb24_to_yuv420p(), rgb24to15_c(), rgb24to15_TMPL(), rgb24to16_c(), rgb24to16_TMPL(), rgb24tobgr15_c(), rgb24tobgr15_TMPL(), rgb24tobgr16_c(), rgb24tobgr16_TMPL(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24ToY_c(), rgb2yuv(), rgb48funcs(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb48Toxyz12(), rgb64funcs(), rgb64ToUV_c_template(), rgb64ToUV_half_c_template(), rgb64ToY_c_template(), rgb_from_cqt(), rgb_to_yuv(), rgba2ycocg(), rgtc2_block_internal(), ripemd128_transform(), ripemd160_transform(), ripemd256_transform(), ripemd320_transform(), rnnoise_channel(), run_channel_fft(), run_postproc(), 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(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), sws_scale(), temperature_slice16(), temperature_slice16p(), 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_chunk(), write_stream_codec_info(), xan_decode_frame(), xyz12Torgb48(), xyz_to_rgb(), ycocg2rgba(), yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), yuv2rgb_write(), yuv2rgb_write_full(), yuv2rgb_X_c_template(), yuv_a_to_rgba(), yuv_from_cqt(), and yuv_to_rgba().
const char* b |
Definition at line 118 of file vf_curves.c.
Referenced by curves_init(), filter_slice_packed(), filter_slice_planar(), and interpolate().
const char* master |
Definition at line 119 of file vf_curves.c.
Referenced by curves_init(), do_identity(), do_psnr(), do_ssim(), do_vmaf(), end_ebml_master(), load_apply_palette(), and revert_channel_correlation().
const { ... } curves_presets[] |
|
static |
Definition at line 798 of file vf_curves.c.
|
static |
Definition at line 808 of file vf_curves.c.
AVFilter ff_vf_curves |
Definition at line 816 of file vf_curves.c.