FFmpeg  4.4.4
Macros | Enumerations | Functions | Variables
vf_spp.c File Reference

Simple post processing filter. More...

#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/mem_internal.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "internal.h"
#include "qp_table.h"
#include "vf_spp.h"

Go to the source code of this file.

Macros

#define OFFSET(x)   offsetof(SPPContext, x)
 
#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
 
#define TFLAGS   AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM
 
#define STORE(pos)
 
#define STORE16(pos)
 

Enumerations

enum  mode {
  FF_EBUR128_MODE_M = (1 << 0) , FF_EBUR128_MODE_S = (1 << 1) | FF_EBUR128_MODE_M , FF_EBUR128_MODE_I = (1 << 2) | FF_EBUR128_MODE_M , FF_EBUR128_MODE_LRA = (1 << 3) | FF_EBUR128_MODE_S ,
  FF_EBUR128_MODE_SAMPLE_PEAK = (1 << 4) | FF_EBUR128_MODE_M , MODE_NONE , MODE_RO , MODE_RW ,
  MODE_TOGGLE , MODE_RANDOM , NB_MODES , MODE_COVER ,
  MODE_BLUR , NB_MODES , MODE_HARD , MODE_SOFT ,
  MODE_MEDIUM , MODE_HARD , MODE_SOFT , NB_MODES
}
 

Functions

static const AVClasschild_class_iterate (void **iter)
 
static voidchild_next (void *obj, void *prev)
 
static void hardthresh_c (int16_t dst[64], const int16_t src[64], int qp, const uint8_t *permutation)
 
static void softthresh_c (int16_t dst[64], const int16_t src[64], int qp, const uint8_t *permutation)
 
static void store_slice_c (uint8_t *dst, const int16_t *src, int dst_linesize, int src_linesize, int width, int height, int log2_scale, const uint8_t dither[8][8])
 
static void store_slice16_c (uint16_t *dst, const int16_t *src, int dst_linesize, int src_linesize, int width, int height, int log2_scale, const uint8_t dither[8][8], int depth)
 
static void add_block (uint16_t *dst, int linesize, const int16_t block[64])
 
static void filter (SPPContext *p, uint8_t *dst, uint8_t *src, int dst_linesize, int src_linesize, int width, int height, const uint8_t *qp_table, int qp_stride, int is_luma, int depth)
 
static int query_formats (AVFilterContext *ctx)
 
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 int init_dict (AVFilterContext *ctx, AVDictionary **opts)
 
static av_cold void uninit (AVFilterContext *ctx)
 

Variables

static const AVOption spp_options []
 
static const AVClass spp_class
 
static const uint8_t ldither [8][8]
 
static const uint8_t offset [127][2]
 
static const AVFilterPad spp_inputs []
 
static const AVFilterPad spp_outputs []
 
AVFilter ff_vf_spp
 

Detailed Description

Simple post processing filter.

This implementation is based on an algorithm described in "Aria Nosratinia Embedded Post-Processing for Enhancement of Compressed Images (1999)"

Originally written by Michael Niedermayer for the MPlayer project, and ported by Clément Bœsch for FFmpeg.

Definition in file vf_spp.c.

Macro Definition Documentation

◆ OFFSET

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

Definition at line 69 of file vf_spp.c.

◆ FLAGS

Definition at line 70 of file vf_spp.c.

◆ TFLAGS

Definition at line 71 of file vf_spp.c.

◆ STORE

#define STORE (   pos)
Value:
do { \
temp = ((src[x + y*src_linesize + pos] << log2_scale) + d[pos]) >> 6; \
if (temp & 0x100) \
temp = ~(temp >> 31); \
dst[x + y*dst_linesize + pos] = temp; \
} while (0)
unsigned int pos
Definition: spdifenc.c:412
#define src
Definition: vp8dsp.c:255
else temp
Definition: vf_mcdeint.c:259

◆ STORE16

#define STORE16 (   pos)
Value:
do { \
temp = ((src[x + y*src_linesize + pos] << log2_scale) + (d[pos]>>1)) >> 5; \
if (temp & mask ) \
temp = ~(temp >> 31); \
dst[x + y*dst_linesize + pos] = temp; \
} while (0)
static const uint16_t mask[17]
Definition: lzw.c:38

Enumeration Type Documentation

◆ mode

enum mode
Enumerator
FF_EBUR128_MODE_M 

can resurrrect and call ff_ebur128_loudness_momentary

FF_EBUR128_MODE_S 

can call ff_ebur128_loudness_shortterm

FF_EBUR128_MODE_I 

can call ff_ebur128_loudness_global_* and ff_ebur128_relative_threshold

FF_EBUR128_MODE_LRA 

can call ff_ebur128_loudness_range

FF_EBUR128_MODE_SAMPLE_PEAK 

can call ff_ebur128_sample_peak

MODE_NONE 
MODE_RO 
MODE_RW 
MODE_TOGGLE 
MODE_RANDOM 
NB_MODES 
MODE_COVER 
MODE_BLUR 
NB_MODES 
MODE_HARD 
MODE_SOFT 
MODE_MEDIUM 
MODE_HARD 
MODE_SOFT 
NB_MODES 

Definition at line 43 of file vf_spp.c.

Function Documentation

◆ child_class_iterate()

static const AVClass* child_class_iterate ( void **  iter)
static

Definition at line 56 of file vf_spp.c.

◆ child_next()

static void* child_next ( void obj,
void prev 
)
static

Definition at line 63 of file vf_spp.c.

◆ hardthresh_c()

static void hardthresh_c ( int16_t  dst[64],
const int16_t  src[64],
int  qp,
const uint8_t permutation 
)
static

Definition at line 131 of file vf_spp.c.

Referenced by init_dict().

◆ softthresh_c()

static void softthresh_c ( int16_t  dst[64],
const int16_t  src[64],
int  qp,
const uint8_t permutation 
)
static

Definition at line 152 of file vf_spp.c.

Referenced by init_dict().

◆ store_slice_c()

static void store_slice_c ( uint8_t dst,
const int16_t *  src,
int  dst_linesize,
int  src_linesize,
int  width,
int  height,
int  log2_scale,
const uint8_t  dither[8][8] 
)
static

Definition at line 174 of file vf_spp.c.

Referenced by init_dict().

◆ store_slice16_c()

static void store_slice16_c ( uint16_t *  dst,
const int16_t *  src,
int  dst_linesize,
int  src_linesize,
int  width,
int  height,
int  log2_scale,
const uint8_t  dither[8][8],
int  depth 
)
static

Definition at line 204 of file vf_spp.c.

Referenced by filter().

◆ add_block()

static void add_block ( uint16_t *  dst,
int  linesize,
const int16_t  block[64] 
)
inlinestatic

Definition at line 235 of file vf_spp.c.

Referenced by filter().

◆ filter()

static void filter ( SPPContext p,
uint8_t dst,
uint8_t src,
int  dst_linesize,
int  src_linesize,
int  width,
int  height,
const uint8_t qp_table,
int  qp_stride,
int  is_luma,
int  depth 
)
static

Definition at line 251 of file vf_spp.c.

Referenced by filter_frame().

◆ query_formats()

static int query_formats ( AVFilterContext ctx)
static

Definition at line 323 of file vf_spp.c.

◆ config_input()

static int config_input ( AVFilterLink inlink)
static

Definition at line 348 of file vf_spp.c.

◆ filter_frame()

static int filter_frame ( AVFilterLink inlink,
AVFrame in 
)
static

Definition at line 372 of file vf_spp.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 453 of file vf_spp.c.

◆ init_dict()

static av_cold int init_dict ( AVFilterContext ctx,
AVDictionary **  opts 
)
static

Definition at line 468 of file vf_spp.c.

◆ uninit()

static av_cold void uninit ( AVFilterContext ctx)
static

Definition at line 495 of file vf_spp.c.

Variable Documentation

◆ spp_options

const AVOption spp_options[]
static
Initial value:
= {
{ "quality", "set quality", OFFSET(log2_count), AV_OPT_TYPE_INT, {.i64 = 3}, 0, MAX_LEVEL, TFLAGS },
{ "qp", "force a constant quantizer parameter", OFFSET(qp), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 63, FLAGS },
{ "mode", "set thresholding mode", OFFSET(mode), AV_OPT_TYPE_INT, {.i64 = MODE_HARD}, 0, NB_MODES - 1, FLAGS, "mode" },
{ "hard", "hard thresholding", 0, AV_OPT_TYPE_CONST, {.i64 = MODE_HARD}, INT_MIN, INT_MAX, FLAGS, "mode" },
{ "soft", "soft thresholding", 0, AV_OPT_TYPE_CONST, {.i64 = MODE_SOFT}, INT_MIN, INT_MAX, FLAGS, "mode" },
{ "use_bframe_qp", "use B-frames' QP", OFFSET(use_bframe_qp), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS },
{ NULL }
}
#define NULL
Definition: coverity.c:32
mode
Use these values in ebur128_init (or'ed).
Definition: ebur128.h:83
@ AV_OPT_TYPE_CONST
Definition: opt.h:234
@ AV_OPT_TYPE_INT
Definition: opt.h:225
@ AV_OPT_TYPE_BOOL
Definition: opt.h:242
#define MAX_LEVEL
Definition: rl.h:36
@ MODE_HARD
Definition: vf_spp.c:44
@ NB_MODES
Definition: vf_spp.c:46
@ MODE_SOFT
Definition: vf_spp.c:45
#define TFLAGS
Definition: vf_spp.c:71
#define FLAGS
Definition: vf_spp.c:70
#define OFFSET(x)
Definition: vf_spp.c:69

Definition at line 72 of file vf_spp.c.

◆ spp_class

const AVClass spp_class
static
Initial value:
= {
.class_name = "spp",
.item_name = av_default_item_name,
.option = spp_options,
.child_class_iterate = child_class_iterate,
}
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:235
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
@ AV_CLASS_CATEGORY_FILTER
Definition: log.h:37
void *(* child_next)(void *obj, void *prev)
Return next AVOptions-enabled child or NULL.
Definition: log.h:113
static const AVClass * child_class_iterate(void **iter)
Definition: vf_spp.c:56
static const AVOption spp_options[]
Definition: vf_spp.c:72
static void * child_next(void *obj, void *prev)
Definition: vf_spp.c:63

Definition at line 82 of file vf_spp.c.

◆ ldither

const uint8_t ldither[8][8]
static
Initial value:
= {
{ 0, 48, 12, 60, 3, 51, 15, 63 },
{ 32, 16, 44, 28, 35, 19, 47, 31 },
{ 8, 56, 4, 52, 11, 59, 7, 55 },
{ 40, 24, 36, 20, 43, 27, 39, 23 },
{ 2, 50, 14, 62, 1, 49, 13, 61 },
{ 34, 18, 46, 30, 33, 17, 45, 29 },
{ 10, 58, 6, 54, 9, 57, 5, 53 },
{ 42, 26, 38, 22, 41, 25, 37, 21 },
}

Definition at line 96 of file vf_spp.c.

Referenced by filter().

◆ offset

const uint8_t offset[127][2]
static
Initial value:
= {
{0,0},
{0,0}, {4,4},
{0,0}, {2,2}, {6,4}, {4,6},
{0,0}, {5,1}, {2,2}, {7,3}, {4,4}, {1,5}, {6,6}, {3,7},
{0,0}, {4,0}, {1,1}, {5,1}, {3,2}, {7,2}, {2,3}, {6,3},
{0,4}, {4,4}, {1,5}, {5,5}, {3,6}, {7,6}, {2,7}, {6,7},
{0,0}, {0,2}, {0,4}, {0,6}, {1,1}, {1,3}, {1,5}, {1,7},
{2,0}, {2,2}, {2,4}, {2,6}, {3,1}, {3,3}, {3,5}, {3,7},
{4,0}, {4,2}, {4,4}, {4,6}, {5,1}, {5,3}, {5,5}, {5,7},
{6,0}, {6,2}, {6,4}, {6,6}, {7,1}, {7,3}, {7,5}, {7,7},
{0,0}, {4,4}, {0,4}, {4,0}, {2,2}, {6,6}, {2,6}, {6,2},
{0,2}, {4,6}, {0,6}, {4,2}, {2,0}, {6,4}, {2,4}, {6,0},
{1,1}, {5,5}, {1,5}, {5,1}, {3,3}, {7,7}, {3,7}, {7,3},
{1,3}, {5,7}, {1,7}, {5,3}, {3,1}, {7,5}, {3,5}, {7,1},
{0,1}, {4,5}, {0,5}, {4,1}, {2,3}, {6,7}, {2,7}, {6,3},
{0,3}, {4,7}, {0,7}, {4,3}, {2,1}, {6,5}, {2,5}, {6,1},
{1,0}, {5,4}, {1,4}, {5,0}, {3,2}, {7,6}, {3,6}, {7,2},
{1,2}, {5,6}, {1,6}, {5,2}, {3,0}, {7,4}, {3,4}, {7,0},
}

Definition at line 107 of file vf_spp.c.

Referenced by aa_read_header(), aac_static_table_init(), aax_read_header(), ac3_decode_frame(), add_tone(), add_wave(), add_wave0(), add_waves(), adx_decode(), adx_probe(), after_get_buddy(), aiff_read_header(), align_position(), alloc_frame_buffer(), ape_decode_frame(), apng_read_header(), apply_window_and_mdct(), argo_brp_read_header(), asf_parse_packet(), asf_read_simple_index(), asf_read_single_payload(), asf_write_markers(), asf_write_packet(), assign_pair(), atrac9_decode_block(), atrac9_init_static(), atrac9_init_vlc(), autocorr_max(), av1_filter_obus(), av_audio_fifo_peek_at(), av_fifo_generic_peek_at(), av_probe_input_buffer(), av_probe_input_buffer2(), av_samples_set_silence(), avc_biwgt_4x2_msa(), avc_biwgt_4x4_msa(), avc_biwgt_4x8_msa(), avc_biwgt_8x16_msa(), avc_biwgt_8x4_msa(), avc_biwgt_8x8_msa(), avc_wgt_4x2_msa(), avc_wgt_4x4_msa(), avc_wgt_4x8_msa(), avc_wgt_8x16_msa(), avc_wgt_8x4_msa(), avc_wgt_8x8_msa(), avi_extract_stream_metadata(), avio_seek(), avio_skip(), aw_parse_coords(), bfi_decode_frame(), bidir_sal(), binka_read_header(), bitplane_decoding(), bl_intrp(), bswap(), build_vlc(), bytestream2_seek(), bytestream2_seek_p(), categorize_regions(), celt_compute_qn(), celt_decode_final_energy(), celt_decode_fine_energy(), celt_quant_final(), celt_quant_fine(), cfhd_decode(), check_idct_multiple(), check_rgb2yuv(), check_sao_edge(), check_sync_pes(), check_tag(), check_yuv2rgb(), check_yuv2yuv(), check_yuv2yuvX(), checked_seek(), chroma_4mv_motion(), chroma_4mv_motion_lowres(), chroma_tc(), chs_clear_band_data(), cin_decode_lzss(), clv_init_static(), codebook_bits(), codebook_bits_offset(), colorlevels_slice_16(), colorlevels_slice_8(), comp_block(), comp_interp_index(), comp_ppf_coeff(), compute_pkt_fields(), concatenate_packet(), config_input(), config_output(), convert_coeffs(), cook_decode_frame(), copy_block(), copy_cell(), copy_param_sets(), count_nalus(), count_ts(), cri_decode_frame(), cuvid_output_frame(), decode_0(), decode_8_pulses_35bits(), decode_audio_block(), decode_block(), decode_blockcodes(), decode_blocks(), decode_bytes_and_gain(), decode_cell(), decode_dds1(), decode_decorrelation_matrix(), decode_delta_d(), decode_delta_e(), decode_delta_j(), decode_delta_l(), decode_dsw1(), decode_entropy_coded_image(), decode_fixed_sparse(), decode_frame(), decode_frame_lscr(), decode_init(), decode_inter(), decode_interframe_v4(), decode_interframe_v4a(), decode_intra(), decode_intra_block(), decode_intra_plane(), decode_log_area(), decode_rgb_frame(), decode_rle(), decode_rle16(), decode_rle_bpp2(), decode_rle_bpp4(), decode_scalefactors(), decode_short_horizontal_delta(), decode_slice_thread(), decode_string(), decode_subframe(), decode_subframe_length(), decode_tilehdr(), decode_tsw1(), dequant(), detect_peak(), detect_unknown_subobject(), determine_bits(), dnxhd_decode_row(), dnxhd_encode_picture(), dnxhd_init_vlc(), dnxhd_setup_threads_slices(), do_imdct(), draw_horiz_band(), draw_slice(), dss_723_1_read_packet(), dss_read_metadata_date(), dss_read_metadata_string(), dss_read_seek(), dss_sp_read_packet(), dss_sp_update_state(), dv_frame_offset(), dv_read_seek(), dwt_plane(), dxv_decompress_cgo(), dyn_buf_seek(), encode_422_bitstream(), encode_block(), encode_frame(), encode_init(), encode_plane(), encode_rgb_frame(), envelope(), envelope16(), envelope_instant(), envelope_instant16(), envelope_peak(), envelope_peak16(), estimate_pitch(), estimate_timings_from_pts(), ff_adx_decode_header(), ff_AMediaCodec_queueInputBuffer(), ff_ass_split_dialog2(), ff_audio_data_add_to_fifo(), ff_av1_filter_obus_buf(), ff_biweight_h264_pixels16_8_msa(), ff_biweight_h264_pixels4_8_msa(), ff_biweight_h264_pixels8_8_msa(), ff_celt_bitalloc(), ff_copy_and_dup(), ff_copy_pce_data(), ff_cos(), ff_dca_exss_parse(), ff_denoise_dct_mmi(), ff_draw_horiz_band(), ff_g723_1_get_residual(), ff_get_muxer_ts_offset(), ff_h264_biweight_pixels16_8_mmi(), ff_h264_biweight_pixels4_8_mmi(), ff_h264_biweight_pixels8_8_mmi(), ff_h264_chroma422_dc_dequant_idct(), ff_h264_decode_init_vlc(), ff_h264_draw_horiz_band(), ff_h264_filter_mb(), ff_h264_luma_dc_dequant_idct(), ff_h264_weight_pixels16_8_mmi(), ff_h264_weight_pixels4_8_mmi(), ff_h264_weight_pixels8_8_mmi(), ff_hevc_hls_residual_coding(), ff_huff_gen_len_table(), ff_init_vlc_from_lengths(), ff_mediacodec_dec_send(), ff_mjpeg_receive_frame(), ff_mov_write_packet(), ff_mpa_synth_filter(), ff_mpeg4_encode_mb(), ff_mspel_motion(), ff_rtmpe_gen_pub_key(), ff_rtp_send_latm(), ff_rv34_decode_frame(), ff_snow_get_buffer(), ff_spdif_probe(), ff_spdif_read_packet(), ff_vk_add_push_constant(), ff_vk_update_push_exec(), ff_weight_h264_pixels16_8_msa(), ff_weight_h264_pixels4_8_msa(), ff_weight_h264_pixels8_8_msa(), ff_wma_run_level_decode(), fft_calc_c(), filter(), filter_edges(), filter_edges_16bit(), filter_frame(), find_body_sid_by_absolute_offset(), find_header(), find_headers_search_validate(), find_tracked_method(), fir_channel(), fir_quantum(), fir_sample(), fixup_vorbis_headers(), flac_fifo_read(), flac_fifo_read_wrap(), flac_read_header(), flv_read_header(), fsb_read_header(), g723_1_encode_frame(), gen_fcb_excitation(), get_buffer_with_edge(), get_intra_count(), get_matching_parameters(), get_opcodes(), get_p_cbp(), get_send_time(), gmc1_motion(), gsm_decode_block(), h263_mv4_search(), h_block_filter(), hashNext(), headphone_convolute(), headphone_fast_convolute(), hevc_biwgt_copy_12w_msa(), hevc_biwgt_copy_16w_msa(), hevc_biwgt_copy_24w_msa(), hevc_biwgt_copy_32w_msa(), hevc_biwgt_copy_48w_msa(), hevc_biwgt_copy_4w_msa(), hevc_biwgt_copy_64w_msa(), hevc_biwgt_copy_6w_msa(), hevc_biwgt_copy_8w_msa(), hevc_hv_biwgt_4t_12w_msa(), hevc_hv_biwgt_4t_4multx8mult_msa(), hevc_hv_biwgt_4t_4x2_msa(), hevc_hv_biwgt_4t_4x4_msa(), hevc_hv_biwgt_4t_6w_msa(), hevc_hv_biwgt_4t_8multx4_msa(), hevc_hv_biwgt_4t_8multx4mult_msa(), hevc_hv_biwgt_4t_8x2_msa(), hevc_hv_biwgt_4t_8x6_msa(), hevc_hv_biwgt_8t_12w_msa(), hevc_hv_biwgt_8t_4w_msa(), hevc_hv_biwgt_8t_8multx2mult_msa(), hevc_hv_uniwgt_4t_12w_msa(), hevc_hv_uniwgt_4t_16w_msa(), hevc_hv_uniwgt_4t_24w_msa(), hevc_hv_uniwgt_4t_32w_msa(), hevc_hv_uniwgt_4t_4multx8mult_msa(), hevc_hv_uniwgt_4t_4w_msa(), hevc_hv_uniwgt_4t_4x2_msa(), hevc_hv_uniwgt_4t_4x4_msa(), hevc_hv_uniwgt_4t_6w_msa(), hevc_hv_uniwgt_4t_8multx4_msa(), hevc_hv_uniwgt_4t_8multx4mult_msa(), hevc_hv_uniwgt_4t_8w_msa(), hevc_hv_uniwgt_4t_8x2_msa(), hevc_hv_uniwgt_4t_8x6_msa(), hevc_hv_uniwgt_8t_12w_msa(), hevc_hv_uniwgt_8t_16w_msa(), hevc_hv_uniwgt_8t_24w_msa(), hevc_hv_uniwgt_8t_32w_msa(), hevc_hv_uniwgt_8t_48w_msa(), hevc_hv_uniwgt_8t_4w_msa(), hevc_hv_uniwgt_8t_64w_msa(), hevc_hv_uniwgt_8t_8multx2mult_msa(), hevc_hv_uniwgt_8t_8w_msa(), hevc_hz_biwgt_4t_12w_msa(), hevc_hz_biwgt_4t_16w_msa(), hevc_hz_biwgt_4t_24w_msa(), hevc_hz_biwgt_4t_32w_msa(), hevc_hz_biwgt_4t_4x2_msa(), hevc_hz_biwgt_4t_4x4_msa(), hevc_hz_biwgt_4t_4x8multiple_msa(), hevc_hz_biwgt_4t_6w_msa(), hevc_hz_biwgt_4t_8x2_msa(), hevc_hz_biwgt_4t_8x4multiple_msa(), hevc_hz_biwgt_4t_8x6_msa(), hevc_hz_biwgt_8t_12w_msa(), hevc_hz_biwgt_8t_16w_msa(), hevc_hz_biwgt_8t_24w_msa(), hevc_hz_biwgt_8t_32w_msa(), hevc_hz_biwgt_8t_48w_msa(), hevc_hz_biwgt_8t_4w_msa(), hevc_hz_biwgt_8t_64w_msa(), hevc_hz_biwgt_8t_8w_msa(), hevc_hz_uniwgt_4t_12w_msa(), hevc_hz_uniwgt_4t_16w_msa(), hevc_hz_uniwgt_4t_24w_msa(), hevc_hz_uniwgt_4t_32w_msa(), hevc_hz_uniwgt_4t_4w_msa(), hevc_hz_uniwgt_4t_4x2_msa(), hevc_hz_uniwgt_4t_4x4_msa(), hevc_hz_uniwgt_4t_4x8multiple_msa(), hevc_hz_uniwgt_4t_6w_msa(), hevc_hz_uniwgt_4t_8w_msa(), hevc_hz_uniwgt_4t_8x2_msa(), hevc_hz_uniwgt_4t_8x4_msa(), hevc_hz_uniwgt_4t_8x6_msa(), hevc_hz_uniwgt_4t_8x8multiple_msa(), hevc_hz_uniwgt_8t_12w_msa(), hevc_hz_uniwgt_8t_16w_msa(), hevc_hz_uniwgt_8t_24w_msa(), hevc_hz_uniwgt_8t_32w_msa(), hevc_hz_uniwgt_8t_48w_msa(), hevc_hz_uniwgt_8t_4w_msa(), hevc_hz_uniwgt_8t_64w_msa(), hevc_hz_uniwgt_8t_8w_msa(), hevc_intra_pred_angular_lower_16width_msa(), hevc_intra_pred_angular_lower_32width_msa(), hevc_intra_pred_angular_lower_4width_msa(), hevc_intra_pred_angular_lower_8width_msa(), hevc_intra_pred_angular_upper_16width_msa(), hevc_intra_pred_angular_upper_32width_msa(), hevc_intra_pred_angular_upper_4width_msa(), hevc_intra_pred_angular_upper_8width_msa(), hevc_sao_band_filter_4width_msa(), hevc_sao_edge_filter_0degree_4width_msa(), hevc_sao_edge_filter_0degree_8width_msa(), hevc_sao_edge_filter_135degree_4width_msa(), hevc_sao_edge_filter_135degree_8width_msa(), hevc_sao_edge_filter_45degree_4width_msa(), hevc_sao_edge_filter_45degree_8width_msa(), hevc_sao_edge_filter_90degree_4width_msa(), hevc_sao_edge_filter_90degree_8width_msa(), hevc_uniwgt_copy_12w_msa(), hevc_uniwgt_copy_16w_msa(), hevc_uniwgt_copy_24w_msa(), hevc_uniwgt_copy_32w_msa(), hevc_uniwgt_copy_48w_msa(), hevc_uniwgt_copy_4w_msa(), hevc_uniwgt_copy_64w_msa(), hevc_uniwgt_copy_6w_msa(), hevc_uniwgt_copy_8w_msa(), hevc_vt_biwgt_4t_12w_msa(), hevc_vt_biwgt_4t_16w_msa(), hevc_vt_biwgt_4t_24w_msa(), hevc_vt_biwgt_4t_32w_msa(), hevc_vt_biwgt_4t_4x2_msa(), hevc_vt_biwgt_4t_4x4_msa(), hevc_vt_biwgt_4t_4x8multiple_msa(), hevc_vt_biwgt_4t_6w_msa(), hevc_vt_biwgt_4t_8x2_msa(), hevc_vt_biwgt_4t_8x4multiple_msa(), hevc_vt_biwgt_4t_8x6_msa(), hevc_vt_biwgt_8t_12w_msa(), hevc_vt_biwgt_8t_16multx2mult_msa(), hevc_vt_biwgt_8t_4w_msa(), hevc_vt_biwgt_8t_8w_msa(), hevc_vt_uniwgt_4t_12w_msa(), hevc_vt_uniwgt_4t_16w_msa(), hevc_vt_uniwgt_4t_24w_msa(), hevc_vt_uniwgt_4t_32w_msa(), hevc_vt_uniwgt_4t_4w_msa(), hevc_vt_uniwgt_4t_4x2_msa(), hevc_vt_uniwgt_4t_4x4_msa(), hevc_vt_uniwgt_4t_4x8multiple_msa(), hevc_vt_uniwgt_4t_6w_msa(), hevc_vt_uniwgt_4t_8w_msa(), hevc_vt_uniwgt_4t_8x2_msa(), hevc_vt_uniwgt_4t_8x4_msa(), hevc_vt_uniwgt_4t_8x6_msa(), hevc_vt_uniwgt_4t_8x8mult_msa(), hevc_vt_uniwgt_8t_12w_msa(), hevc_vt_uniwgt_8t_16multx4mult_msa(), hevc_vt_uniwgt_8t_16w_msa(), hevc_vt_uniwgt_8t_24w_msa(), hevc_vt_uniwgt_8t_32w_msa(), hevc_vt_uniwgt_8t_48w_msa(), hevc_vt_uniwgt_8t_4w_msa(), hevc_vt_uniwgt_8t_64w_msa(), hevc_vt_uniwgt_8t_8w_msa(), hls_slice_data_wpp(), horizontal_fill(), hScale_real(), imc_init_static(), imdct_output(), imm5_decode_frame(), imx_decode_frame(), init(), init_gaussian_filter(), init_ref(), init_segment(), io_seek(), ism_seek(), ivr_read_header(), lag_decode_arith_plane(), libvorbis_encode_init(), load_data(), lrc_probe(), lsp2lpc(), luma_mc_bi(), luma_mc_uni(), lz_copy(), lzss_decompress(), lzss_uncompress(), magy_decode_frame(), main(), mc_dir_part(), mkv_strip_wavpack(), mkv_write_block(), motion_search(), mov_flush_fragment(), mov_flush_fragment_interleaving(), mov_probe(), mov_read_sidx(), mov_read_trun(), mov_try_read_block(), mov_write_sidx_tag(), move_audio(), mp_read_changes_map(), mpc7_init_static(), mpc8_init_static(), mpeg4_init_static(), mpegaudiodec_common_init_static(), mss4_init_vlc(), mss4_init_vlcs(), musx_read_header(), mxf_absolute_bodysid_offset(), mxf_compute_ptses_fake_index(), mxf_get_next_track_edit_unit(), no_codebook_bits(), no_codebook_bits_offset(), nsv_probe(), nvdec_retrieve_data(), ogg_write_vorbiscomment(), oggvorbis_decode_init(), on2avc_decode_subframe(), on2avc_reconstruct_channel(), on2avc_reconstruct_channel_ext(), opus_packet_assembler(), pitch_search(), pop_integer(), postProcess(), premultiply16offset(), premultiply8offset(), premultiplyf32offset(), probe(), process_channels(), process_intra_lower_16x16_msa(), process_intra_upper_16x16_msa(), process_options(), process_sample(), ptx_decode_frame(), put_hevc_epel_bi_h(), put_hevc_epel_bi_hv(), put_hevc_epel_bi_v(), put_hevc_epel_uni_h(), put_hevc_epel_uni_hv(), put_hevc_epel_uni_v(), put_hevc_epel_uni_w_h(), put_hevc_epel_uni_w_hv(), put_hevc_epel_uni_w_v(), put_hevc_pel_bi_pixels(), put_hevc_pel_uni_w_pixels(), put_hevc_qpel_bi_h(), put_hevc_qpel_bi_hv(), put_hevc_qpel_bi_v(), put_hevc_qpel_uni_h(), put_hevc_qpel_uni_hv(), put_hevc_qpel_uni_v(), put_hevc_qpel_uni_w_h(), put_hevc_qpel_uni_w_hv(), put_hevc_qpel_uni_w_v(), qdm2_fft_decode_tones(), qdm2_fft_init_coefficient(), qdm2_fft_tone_synthesizer(), qdm2_init_vlc(), qdmc_init_static_data(), quant_band_template(), quantize_value(), radix_count(), read_frame_data(), read_header(), read_moof_duration(), read_odml_index(), read_packet(), read_table(), read_tfra(), read_ts(), read_uncoded_coeff(), read_uncompressed_sgi(), read_var_block_data(), ref_function(), remove_doubling(), request_frame(), revert_channel_correlation(), rfc4175_handle_packet(), rgtc1_block_internal(), rgtc_block_internal(), ring_drain(), ringbuf_float_at(), rpl_read_header(), rv10_decode_frame(), rv34_gen_vlc(), rv34_init_tables(), rv40_init_table(), rv40_init_tables(), s337m_get_offset_and_codec(), s337m_probe(), s337m_read_packet(), sao_edge_restore_0(), sao_edge_restore_1(), sbc_synthesize_eight(), sbc_synthesize_four(), search_frag_moof_offset(), seek_by_sector(), seek_data(), seg_write_packet(), seq_decode_op3(), set_sar(), sga_decode_frame(), sga_probe(), significant_coeff_flag_decode(), significant_coeff_flag_decode_0(), silk_decode_lpc(), silk_lsf2lpc(), sofalizer_convolute(), sofalizer_fast_convolute(), spdif_get_offset_and_codec(), step_collect_psy_metrics(), sub_qmf32_fixed_c(), sub_qmf32_float_c(), sub_qmf64_fixed_c(), sub_qmf64_float_c(), subband_scale(), svq1_encode_plane(), svq1_static_init(), svq3_decode_init(), svq3_luma_dc_dequant_idct_c(), test_postfilter(), tgv_decode_inter(), track_header(), tscc2_init_vlc(), tscc2_init_vlcs(), unpack(), unpack_intraframe(), unpack_parse_unit(), unpremultiply16offset(), unpremultiply8offset(), unpremultiplyf32offset(), update_frag_index(), v4l2_buffer_swframe_to_buf(), v4l2_bufref_to_buf(), v_block_filter(), vb_decode_framedata(), vble_decode_frame(), vble_restore_plane(), vcr1_decode_frame(), vertical_predict(), vorbis_floor1_decode(), vp3_draw_horiz_band(), vp56_get_vectors_predictors(), vpk_read_header(), weight(), write_mb_info(), write_packet(), write_samples_to_audio_fifo(), write_section_data(), write_sei(), writer_print_data(), writer_print_integers(), wtvfile_seek(), x8_init_vlc(), x8_vlc_init(), xan_decode_chroma(), xcorr_coeff(), xma_decode_packet(), xvag_read_header(), yae_flush(), yuv2NBPS(), yuv2plane1_8_c(), yuv2planeX(), yuv2planeX_8_16(), and yuv2planeX_u().

◆ spp_inputs

const AVFilterPad spp_inputs[]
static
Initial value:
= {
{
.name = "default",
.config_props = config_input,
.filter_frame = filter_frame,
},
{ NULL }
}
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
static int config_input(AVFilterLink *inlink)
Definition: vf_spp.c:348
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
Definition: vf_spp.c:372

Definition at line 505 of file vf_spp.c.

◆ spp_outputs

const AVFilterPad spp_outputs[]
static
Initial value:
= {
{
.name = "default",
},
{ NULL }
}

Definition at line 515 of file vf_spp.c.

◆ ff_vf_spp

AVFilter ff_vf_spp
Initial value:
= {
.name = "spp",
.description = NULL_IF_CONFIG_SMALL("Apply a simple post processing filter."),
.priv_size = sizeof(SPPContext),
.priv_class = &spp_class,
}
static const AVFilterPad inputs[]
Definition: af_acontrast.c:193
static const AVFilterPad outputs[]
Definition: af_acontrast.c:203
#define flags(name, subs,...)
Definition: cbs_av1.c:561
#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL
Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will have its filter_frame() c...
Definition: avfilter.h:134
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:117
static const AVFilterPad spp_outputs[]
Definition: vf_spp.c:515
static int query_formats(AVFilterContext *ctx)
Definition: vf_spp.c:323
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
Definition: vf_spp.c:453
static const AVClass spp_class
Definition: vf_spp.c:82
static av_cold void uninit(AVFilterContext *ctx)
Definition: vf_spp.c:495
static av_cold int init_dict(AVFilterContext *ctx, AVDictionary **opts)
Definition: vf_spp.c:468
static const AVFilterPad spp_inputs[]
Definition: vf_spp.c:505

Definition at line 523 of file vf_spp.c.