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 |
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 |
#define | BD 0 /* sub diagonal (below main) */ |
#define | MD 1 /* main diagonal (center) */ |
#define | AD 2 /* sup diagonal (above main) */ |
#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) |
static int | get_nb_points (const struct keypoint *d) |
static int | interpolate (AVFilterContext *ctx, uint8_t *y, const struct keypoint *points) |
Natural cubic spline interpolation Finding curves using Cubic Splines notes by Steven Rauch and John Stockie. | |
static int | parse_psfile (AVFilterContext *ctx, const char *fname) |
static av_cold int | init (AVFilterContext *ctx) |
static int | query_formats (AVFilterContext *ctx) |
static int | config_input (AVFilterLink *inlink) |
static int | filter_slice (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *in) |
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.
Referenced by init().
#define OFFSET | ( | x | ) | offsetof(CurvesContext, x) |
Definition at line 76 of file vf_curves.c.
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
Definition at line 77 of file vf_curves.c.
#define BD 0 /* sub diagonal (below main) */ |
Referenced by interpolate().
#define MD 1 /* main diagonal (center) */ |
Referenced by interpolate().
#define AD 2 /* sup diagonal (above main) */ |
#define READ16 | ( | dst | ) |
Referenced by parse_psfile().
Referenced by init().
enum preset |
Definition at line 46 of file vf_curves.c.
AVFILTER_DEFINE_CLASS | ( | curves | ) |
Definition at line 136 of file vf_curves.c.
Referenced by parse_points_str().
|
static |
Definition at line 148 of file vf_curves.c.
Referenced by init().
|
static |
Definition at line 207 of file vf_curves.c.
Referenced by interpolate().
|
static |
Natural cubic spline interpolation Finding curves using Cubic Splines notes by Steven Rauch and John Stockie.
Definition at line 222 of file vf_curves.c.
Referenced by init().
|
static |
Definition at line 318 of file vf_curves.c.
Referenced by init().
|
static |
Definition at line 374 of file vf_curves.c.
|
static |
Definition at line 457 of file vf_curves.c.
|
static |
Definition at line 471 of file vf_curves.c.
|
static |
Definition at line 482 of file vf_curves.c.
Referenced by filter_frame().
|
static |
Definition at line 514 of file vf_curves.c.
|
static |
Definition at line 78 of file vf_curves.c.
const char* r |
Definition at line 107 of file vf_curves.c.
Referenced by ac3_5p1_mux(), add_bell(), add_hfyu_left_pred_bgr32_c(), alloc_frame_buffer(), av_inv_q(), av_log2(), av_make_q(), av_realloc_f(), av_rescale_rnd(), avcodec_default_execute(), avcodec_default_execute2(), avfilter_graph_request_oldest(), avfilter_graph_send_command(), avpriv_set_systematic_pal2(), avs_get_row_size_p(), avs_get_row_size_p_25(), cache_read(), cdg_load_palette(), cdxl_decode_ham6(), cdxl_decode_ham8(), choose_rct_params(), cinepak_decode_codebook(), cng_decode_frame(), color_correlation(), color_decorrelation(), color_distance(), compute_lpc_coefs(), config_output(), config_props(), convert_timestamp(), crypt(), dca_downmix(), decipher(), decode_block(), decode_block_coeffs_internal(), decode_frame(), decode_frame_header(), decode_hybrid(), decode_mvc2(), decode_pal(), decode_plte_chunk(), decode_rbsp_trailing(), decode_refpass(), decode_rgb_frame(), decode_rice(), default_execute(), dither_int_to_float_triangular_c(), draw_rectangle(), dshow_cycle_devices(), dshow_cycle_pins(), dshow_list_device_options(), dshow_open_device(), dshow_read_close(), dshow_read_header(), dv_read_seek(), dvbsub_init_decoder(), dvbsub_parse_clut_segment(), dx2_decode_slice_565(), encipher(), encode_dvb_subtitles(), encode_frame(), encode_rgb_frame(), encode_scalar(), encode_thread(), eval_expr(), expand_script(), expand_tseq(), ff_alsa_extend_reorder_buf(), ff_gmc_c(), ff_jpegls_decode_picture(), ff_lag_rac_init(), ff_mjpeg_decode_frame(), ff_parse_time_base(), ff_rgb24toyv12_c(), ff_rtp_send_h264(), ff_rtp_send_mpegvideo(), file_read(), file_write(), fill_picture_parameters(), fill_slice_long(), filter(), filter_frame(), filter_slice(), find_ref_mvs(), flic_decode_frame_8BPP(), frac64(), gen_image(), gen_sub_bitmap(), generate_interval(), generate_intervals(), generate_joint_tables(), generate_plateau(), generate_transition(), get_high_utility_cell(), get_strl(), get_symbol2(), guess_palette(), h263_handle_packet(), hpel_motion_search(), idcin_read_packet(), idct_col2(), idct_row(), import_palette(), init(), interpolate(), iterative_me(), jp2_find_codestream(), lag_decode_frame(), lex_char(), lex_time(), ls_decode_line(), main(), make_cdt15_entry(), make_cdt16_entry(), make_cdt24_entry(), matroska_parse_laces(), mc_block(), modplug_read_header(), mov_parse_stsd_video(), mp_yuv_to_rgb(), mpeg4_decode_sprite_trajectory(), mpegts_push_data(), mss2_blit_wmv9_template(), mss2_decode_frame(), mul32(), MULH(), on2avc_apply_ms(), opt_list(), paf_video_decode(), paint_mouse_pointer(), parse_3dl(), parse_block_def(), parse_ifo_palette(), parse_options(), parse_palette_segment(), parse_script(), parse_synth_channel(), parse_synth_def(), parse_time_sequence(), parse_timestamp(), pix_abs16x16_x2_mvi(), plot_cqt(), png_filter_row(), pop_integer(), pow_poly(), process_anticollapse(), process_ipmovie_chunk(), ps_stereo_interpolate_c(), ps_stereo_interpolate_ipdopd_c(), pulse_read_packet(), pulse_write_packet(), push_integer(), put_pixel(), put_symbol2(), qpel_motion_search(), qtrle_decode_24bpp(), rd_frame(), read_var_block_data(), read_whole_file(), request_frame(), restore_rgb_planes(), rgb12to15(), rgb24_to_yuv420p(), rgb24to15_c(), rgb24to15_TMPL(), rgb24to16_c(), rgb24to16_TMPL(), rgb24tobgr15_c(), rgb24tobgr15_TMPL(), rgb24tobgr16_c(), rgb24tobgr16_TMPL(), rgb48Toxyz12(), rgb_to_yuv(), ring2_test(), roundToInt16(), rtmp_close(), rtmp_get_file_handle(), rtmp_open(), rtmp_read(), rtmp_read_pause(), rtmp_read_seek(), rtmp_write(), rtsp_read_packet(), rv30_decode_init(), rv40_decode_init(), sad_hpel_motion_search(), sbg_read_header(), sbg_read_probe(), search_keyval(), set_palette(), smacker_decode_bigtree(), smacker_decode_tree(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), subtitle_thread(), super2xsai(), surround_to_stereo(), swri_rematrix_init(), sws_scale(), tta_decode_frame(), uintpow(), update_palette_index(), vmd_decode(), vmdvideo_decode_init(), vqa_decode_chunk(), wavesynth_decode(), wavesynth_init(), xan_decode_frame(), xface_encode_frame(), xyz12Torgb48(), yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), yuv2rgb_write(), yuv2rgb_write_full(), yuv2rgb_X_c_template(), yuv_a_to_rgba(), and yuv_to_rgba().
const char* g |
Definition at line 108 of file vf_curves.c.
Referenced by aac_encode_frame(), add_hfyu_left_pred_bgr32_c(), add_opt(), adjust_frame_information(), adpcm_decode_frame(), apply_dependent_coupling(), apply_intensity_stereo(), apply_mid_side_stereo(), asf_build_simple_index(), asf_read_ext_stream_properties(), asf_read_header(), asf_read_stream_properties(), avcodec_string(), avpriv_set_systematic_pal2(), bfi_decode_frame(), bgr24ToUV_c(), bgr24ToUV_half_c(), bgr24ToY_c(), calc_thr_3gpp(), cdg_load_palette(), cdxl_decode_ham6(), cdxl_decode_ham8(), celt_renormalize_vector(), choose_rct_params(), cinepak_decode_codebook(), color_correlation(), color_decorrelation(), config_output(), create_lut(), dct_quantize_refine(), decode_band_types(), decode_block(), decode_cce(), decode_frame(), decode_hybrid(), decode_mvc2(), decode_pal(), decode_plte_chunk(), decode_rgb_frame(), decode_scalefactors(), decode_spectrum_and_dequant(), dvbsub_init_decoder(), dvbsub_parse_clut_segment(), dx2_decode_slice_565(), encode_dvb_subtitles(), encode_frame(), encode_rgb_frame(), ff_jpegls_decode_picture(), ff_mjpeg_decode_frame(), ff_rgb24toyv12_c(), filter_frame(), filter_slice(), find_best_vect(), finish_group(), flic_decode_frame_8BPP(), gbr24pToUV_half_c(), gen_image(), gen_sub_bitmap(), generate_joint_tables(), get_match_score(), guess_palette(), idcin_read_packet(), import_palette(), init(), jp2_find_codestream(), lag_decode_frame(), mangle_rgb_planes(), mov_parse_stsd_video(), mp_decode_layer3(), mp_yuv_to_rgb(), open_files(), paf_video_decode(), paint_mouse_pointer(), parse_3dl(), parse_chunks(), parse_ifo_palette(), parse_palette_segment(), planar_rgb16_to_uv(), planar_rgb16_to_y(), planar_rgb_to_uv(), planar_rgb_to_y(), plot_cqt(), png_filter_row(), process_ipmovie_chunk(), psy_3gpp_analyze_channel(), psy_3gpp_init(), put_pixel(), qtrle_decode_24bpp(), ra144_encode_subblock(), rd_frame(), restore_rgb_planes(), rgb12to15(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), 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(), rgb48funcs(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb48Toxyz12(), rgb64funcs(), rgb64ToUV_c_template(), rgb64ToUV_half_c_template(), rgb64ToY_c_template(), rgb_to_yuv(), ripemd128_transform(), ripemd160_transform(), sbr_hf_gen(), search_for_ms(), search_for_quantizers_anmr(), search_for_quantizers_faac(), search_for_quantizers_fast(), search_for_quantizers_twoloop(), set_gamma(), set_palette(), setup_shm(), sha256_transform(), sha512_transform(), shuffle_bytes_2103_c(), shuffle_bytes_2103_TMPL(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), subtitle_thread(), sws_scale(), update_palette_index(), vb_decode_framedata(), vmd_decode(), vmdvideo_decode_init(), vqa_decode_chunk(), write_stream_codec_info(), xan_decode_frame(), xyz12Torgb48(), yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), yuv2rgb_write(), yuv2rgb_write_full(), yuv2rgb_X_c_template(), yuv_a_to_rgba(), and yuv_to_rgba().
const char* b |
Definition at line 109 of file vf_curves.c.
Referenced by add_bytes_c(), add_bytes_l2_c(), add_cb(), add_hfyu_left_pred_bgr32_c(), add_int16_c(), alias_pix_read_probe(), av_add_q(), av_add_sf(), av_buffer_unref(), av_compare_mod(), av_compare_ts(), av_mlfg_get(), av_mul_q(), av_nearer_q(), av_rescale_delta(), av_rescale_q_rnd(), av_size_mult(), avg2(), avg2_no_rnd(), avio_w8(), avpriv_set_systematic_pal2(), bidir_refine(), binkb_read_bundle(), blend_frame(), blur_power(), bmp_probe(), body(), build_canonical_huff(), calculate_visual_weight(), can_merge_formats(), cdata_probe(), cdg_load_palette(), cdxl_decode_ham6(), cdxl_decode_ham8(), celt_decode_band(), celt_decode_bands(), choose_rct_params(), cin_decode_huffman(), cinepak_decode_codebook(), cmp(), cmp_intervals(), cmp_pkt_sub_pos_ts(), cmp_pkt_sub_ts_pos(), color_correlation(), color_decorrelation(), compare_codec_desc(), compare_int64(), compare_vlcspec(), compute_bit_allocation(), compute_lpc_coefs(), compute_metric(), compute_mod(), config_output(), create_luma_lut(), decode_555(), decode_audio_s16(), decode_b(), decode_block(), decode_block_coeffs_internal(), decode_blocks(), decode_blocks_ind(), decode_coeffs(), decode_component(), decode_frame(), decode_gain_control(), decode_hybrid(), decode_init(), decode_mode(), decode_pal(), decode_plte_chunk(), decode_predictor_coeffs(), decode_rgb_frame(), decode_rle(), decode_sb_mem(), decode_scale_factors(), decode_spectrum_and_dequant(), decode_subband_golomb(), decode_subframe(), decode_subframe_fixed(), decode_tonal_components(), decorrelate(), decorrelate_stereo(), deInterlaceBlendLinear_TMPL(), deInterlaceInterpolateLinear_TMPL(), deInterlaceMedian_TMPL(), diff_bytes_c(), diff_int16_c(), dpx_probe(), dsd2pcm_translate(), dv_encode_video_segment(), dv_guess_qnos(), dvbsub_init_decoder(), dvbsub_parse_clut_segment(), dx2_decode_slice_565(), encode_all_blocks(), encode_dvb_subtitles(), encode_frame(), encode_init(), encode_picture(), encode_q_branch2(), encode_residual_fixed(), encode_rgb_frame(), encode_superframe(), exr_probe(), ff_add_png_paeth_prediction(), ff_adx_calculate_coeffs(), ff_celp_lp_synthesis_filterf(), ff_eac3_decode_transform_coeffs_aht_ch(), ff_eval_refl(), ff_h264_chroma_dc_dequant_idct(), ff_h264_filter_mb(), ff_index_search_timestamp(), ff_interp(), ff_ivi_decode_frame(), ff_ivi_init_planes(), ff_ivi_init_tiles(), ff_jpeg2000_ceildiv(), ff_jpeg2000_ceildivpow2(), ff_jpeg2000_dwt_init(), ff_jpegls_decode_picture(), ff_match_2uint16(), ff_merge_channel_layouts(), ff_merge_samplerates(), ff_mjpeg_decode_frame(), ff_mjpeg_find_marker(), ff_mpeg4_pred_dc(), ff_msmpeg4_coded_block_pred(), ff_msmpeg4_pred_dc(), ff_rgb24toyv12_c(), ff_rms(), ff_snow_common_end(), ff_snow_common_init_after_header(), ff_sqrt(), ff_u8_to_s8(), ff_ut_huff_cmp_len(), ff_vc1_pred_dc(), ff_wma_init(), fft(), fill24(), fill_mv(), filter_frame(), filter_mb_edgech(), filter_mb_edgecv(), filter_mb_edgeh(), filter_mb_edgev(), filter_mb_mbaff_edgecv(), filter_mb_mbaff_edgev(), filter_slice(), find_ref_mvs(), flac_decorrelate_ls_c(), flac_decorrelate_ms_c(), flac_decorrelate_rs_c(), flic_decode_frame_8BPP(), for(), frac64(), gen_image(), gen_sub_bitmap(), generate_joint_tables(), get_4block_rd(), get_block_bits(), get_block_sizes(), get_dc(), get_shift(), global_mv(), glyph_cmp(), guess_palette(), h264_filter_mb_fast_internal(), h_block_filter(), horizX1Filter(), hpel_motion_search(), huff_cmp(), huff_cmp_sym(), id3v2_parse(), idcin_read_packet(), ilpack(), import_palette(), init(), init_blocks(), init_planes(), int_sqrt(), inter_recon(), interleave(), interpol(), interpolate(), intra_recon(), ipmovie_probe(), iterative_me(), ivi_free_buffers(), j2k_probe(), jp2_find_codestream(), jpeg_probe(), jpegls_probe(), lag_decode_frame(), loco_predict(), log16(), main(), make_cdt15_entry(), make_cdt16_entry(), make_cdt24_entry(), mark_all_blocks(), matroska_parse_tracks(), mc_block(), mid_pred(), mix_core(), mov_parse_stsd_video(), mp_decode_layer2(), mp_yuv_to_rgb(), mpegts_write_section(), mul_poly(), multiswap_dec(), multiswap_enc(), mxf_read_sync(), next_byte(), no_rnd_avg32(), no_rnd_avg64(), on2avc_apply_ms(), on2avc_decode_band_scales(), on2avc_read_channel_data(), on2avc_read_ms_info(), output_audio_block(), paf_video_decode(), paint_mouse_pointer(), parse_3dl(), parse_ifo_palette(), parse_palette_segment(), pictor_probe(), png_filter_row(), png_get_interlaced_row(), png_probe(), png_put_interlaced_row(), pow_m1_4(), pred16x16_vertical(), pred8x16_plane(), pred8x16_vertical(), pred8x8_plane(), pred8x8_vertical(), pred8x8l_vertical(), pred_spatial_direct_motion(), probe(), process_ipmovie_chunk(), pullup_lock_buffer(), put_no_rnd_pixels_l2(), put_pixel(), qpel_motion_search(), qsort_comparison_function_int16(), qtrle_decode_24bpp(), ratecontrol_1pass(), rd_frame(), read_close(), read_frame_data(), read_header(), read_line(), read_packet(), read_var_block_data(), read_xing_toc(), render_charset(), request_frame(), resample_cubic(), restore_rgb_planes(), resync(), rgb12to15(), rgb24_to_yuv420p(), rgb24to15_c(), rgb24to15_TMPL(), rgb24to16_c(), rgb24to16_TMPL(), rgb24tobgr15_c(), rgb24tobgr15_TMPL(), rgb24tobgr16_c(), rgb24tobgr16_TMPL(), rgb48Toxyz12(), rgb_to_yuv(), ripemd128_transform(), ripemd160_transform(), rnd_avg32(), rnd_avg64(), run_psnr(), sad_hpel_motion_search(), search_for_quantizers_faac(), search_for_quantizers_twoloop(), seq_decode_op1(), set_brightness(), set_palette(), set_string_binary(), sgi_probe(), sha1_transform(), sha256_transform(), sha512_transform(), shift(), silk_decode_excitation(), spatial_compose_daub97i_dy(), spatial_compose_dd137i_dy(), spatial_compose_dd97i_dy(), spatial_compose_dirac53i_dy(), spatial_compose_fidelity(), ssim_4x4x2_core(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), sub_png_paeth_prediction(), subtitle_thread(), sum_bits(), sunrast_probe(), sws_scale(), synth_filter_float(), tgq_calculate_qtable(), tiff_probe(), try_8x8basis_c(), uintpow(), uninit(), update_palette_index(), upsample_plane_c(), utvideo_decode_frame(), v_block_filter(), vb_decode_framedata(), vc1_coded_block_pred(), vc1_h_overlap_c(), vc1_h_s_overlap_c(), vc1_i_pred_dc(), vc1_parse(), vc1_v_overlap_c(), vc1_v_s_overlap_c(), vertX1Filter_TMPL(), video_audio_display(), vmd_decode(), vmdvideo_decode_init(), vp56_add_predictors_dc(), vp56_decode_4mv(), vp56_decode_mb(), vp56_decode_mv(), vp56_mc(), vp5_parse_coeff(), vp6_build_huff_tree(), vp6_huff_cmp(), vp6_parse_coeff(), vp6_parse_coeff_huffman(), vqa_decode_chunk(), webp_probe(), wma_lsp_to_curve_init(), write_all_blocks(), write_float_3d_array(), x8_get_prediction(), xface_decode_frame(), xface_encode_frame(), xyz12Torgb48(), yae_load_data(), yae_load_frag(), yae_overlap_add(), yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), yuv2rgb_write(), yuv2rgb_write_full(), yuv2rgb_X_c_template(), yuv_a_to_rgba(), and yuv_to_rgba().
const char* master |
Definition at line 110 of file vf_curves.c.
Referenced by init(), and revert_channel_correlation().
struct { ... } curves_presets[] |
|
static |
Definition at line 542 of file vf_curves.c.
|
static |
Definition at line 552 of file vf_curves.c.
AVFilter ff_vf_curves |
Definition at line 560 of file vf_curves.c.