FFmpeg
|
Go to the source code of this file.
Data Structures | |
struct | AVFilterCommand |
struct | AVFilterPad |
A filter pad used for either input or output. More... | |
struct | AVFilterGraphInternal |
struct | AVFilterInternal |
Macros | |
#define | AVFILTERPAD_FLAG_NEEDS_WRITABLE (1 << 0) |
The filter expects writable frames from its input link, duplicating data buffers if needed. More... | |
#define | AVFILTERPAD_FLAG_FREE_NAME (1 << 1) |
The pad's name is allocated and should be freed generically. More... | |
#define | FILTER_QUERY_FUNC(func) |
#define | FILTER_PIXFMTS_ARRAY(array) |
#define | FILTER_SAMPLEFMTS_ARRAY(array) |
#define | FILTER_PIXFMTS(...) FILTER_PIXFMTS_ARRAY(((const enum AVPixelFormat []) { __VA_ARGS__, AV_PIX_FMT_NONE })) |
#define | FILTER_SAMPLEFMTS(...) FILTER_SAMPLEFMTS_ARRAY(((const enum AVSampleFormat[]) { __VA_ARGS__, AV_SAMPLE_FMT_NONE })) |
#define | FILTER_SINGLE_PIXFMT(pix_fmt_) |
#define | FILTER_SINGLE_SAMPLEFMT(sample_fmt_) |
#define | FILTER_INOUTPADS(inout, array) |
#define | FILTER_INPUTS(array) FILTER_INOUTPADS(inputs, (array)) |
#define | FILTER_OUTPUTS(array) FILTER_INOUTPADS(outputs, (array)) |
#define | D2TS(d) (isnan(d) ? AV_NOPTS_VALUE : (int64_t)(d)) |
#define | TS2D(ts) ((ts) == AV_NOPTS_VALUE ? NAN : (double)(ts)) |
#define | TS2T(ts, tb) ((ts) == AV_NOPTS_VALUE ? NAN : (double)(ts) * av_q2d(tb)) |
#define | FF_TPRINTF_START(ctx, func) ff_tlog(NULL, "%-16s: ", #func) |
#define | ff_tlog_link(ctx, link, end) do { } while(0) |
#define | AVFILTER_DEFINE_CLASS_EXT(name, desc, options) |
#define | AVFILTER_DEFINE_CLASS(fname) AVFILTER_DEFINE_CLASS_EXT(fname, #fname, fname##_options) |
#define | FF_INLINK_IDX(link) ((int)((link)->dstpad - (link)->dst->input_pads)) |
Find the index of a link. More... | |
#define | FF_OUTLINK_IDX(link) ((int)((link)->srcpad - (link)->src->output_pads)) |
#define | FF_FILTER_FLAG_HWFRAME_AWARE (1 << 0) |
The filter is aware of hardware frames, and any hardware frame context should not be automatically propagated through it. More... | |
Functions | |
void | ff_avfilter_graph_update_heap (AVFilterGraph *graph, AVFilterLink *link) |
Update the position of a link in the age heap. More... | |
static av_always_inline int | ff_filter_execute (AVFilterContext *ctx, avfilter_action_func *func, void *arg, int *ret, int nb_jobs) |
int | ff_fmt_is_in (int fmt, const int *fmts) |
Tell if an integer is contained in the provided -1-terminated list of integers. More... | |
av_warn_unused_result int | ff_parse_pixel_format (enum AVPixelFormat *ret, const char *arg, void *log_ctx) |
Parse a pixel format. More... | |
av_warn_unused_result int | ff_parse_sample_rate (int *ret, const char *arg, void *log_ctx) |
Parse a sample rate. More... | |
av_warn_unused_result int | ff_parse_channel_layout (AVChannelLayout *ret, int *nret, const char *arg, void *log_ctx) |
Parse a channel layout or a corresponding integer representation. More... | |
void | ff_avfilter_link_set_in_status (AVFilterLink *link, int status, int64_t pts) |
Set the status field of a link from the source filter. More... | |
int | ff_append_inpad (AVFilterContext *f, AVFilterPad *p) |
Append a new input/output pad to the filter's list of such pads. More... | |
int | ff_append_outpad (AVFilterContext *f, AVFilterPad *p) |
int | ff_append_inpad_free_name (AVFilterContext *f, AVFilterPad *p) |
int | ff_append_outpad_free_name (AVFilterContext *f, AVFilterPad *p) |
int | ff_request_frame (AVFilterLink *link) |
Request an input frame from the filter at the other end of the link. More... | |
int | ff_filter_frame (AVFilterLink *link, AVFrame *frame) |
Send a frame of data to the next filter. More... | |
AVFilterContext * | ff_filter_alloc (const AVFilter *filter, const char *inst_name) |
Allocate a new filter context and return it. More... | |
int | ff_filter_activate (AVFilterContext *filter) |
void | ff_filter_graph_remove_filter (AVFilterGraph *graph, AVFilterContext *filter) |
Remove a filter from a graph;. More... | |
int | ff_filter_graph_run_once (AVFilterGraph *graph) |
Run one round of processing on a filter graph. More... | |
int | ff_filter_get_nb_threads (AVFilterContext *ctx) av_pure |
Get number of threads for current filter instance. More... | |
int | ff_filter_process_command (AVFilterContext *ctx, const char *cmd, const char *arg, char *res, int res_len, int flags) |
Generic processing of user supplied commands that are set in the same way as the filter options. More... | |
int | ff_filter_init_hw_frames (AVFilterContext *avctx, AVFilterLink *link, int default_pool_size) |
Perform any additional setup required for hardware frames. More... | |
int | ff_filter_opt_parse (void *logctx, const AVClass *priv_class, AVDictionary **options, const char *args) |
Parse filter options into a dictionary. More... | |
internal API functions
Definition in file internal.h.
#define AVFILTERPAD_FLAG_NEEDS_WRITABLE (1 << 0) |
The filter expects writable frames from its input link, duplicating data buffers if needed.
input pads only.
Definition at line 66 of file internal.h.
#define AVFILTERPAD_FLAG_FREE_NAME (1 << 1) |
The pad's name is allocated and should be freed generically.
Definition at line 71 of file internal.h.
#define FILTER_QUERY_FUNC | ( | func | ) |
Definition at line 169 of file internal.h.
#define FILTER_PIXFMTS_ARRAY | ( | array | ) |
Definition at line 172 of file internal.h.
#define FILTER_SAMPLEFMTS_ARRAY | ( | array | ) |
Definition at line 175 of file internal.h.
#define FILTER_PIXFMTS | ( | ... | ) | FILTER_PIXFMTS_ARRAY(((const enum AVPixelFormat []) { __VA_ARGS__, AV_PIX_FMT_NONE })) |
Definition at line 178 of file internal.h.
#define FILTER_SAMPLEFMTS | ( | ... | ) | FILTER_SAMPLEFMTS_ARRAY(((const enum AVSampleFormat[]) { __VA_ARGS__, AV_SAMPLE_FMT_NONE })) |
Definition at line 180 of file internal.h.
#define FILTER_SINGLE_PIXFMT | ( | pix_fmt_ | ) |
Definition at line 182 of file internal.h.
#define FILTER_SINGLE_SAMPLEFMT | ( | sample_fmt_ | ) |
Definition at line 185 of file internal.h.
#define FILTER_INOUTPADS | ( | inout, | |
array | |||
) |
Definition at line 189 of file internal.h.
#define FILTER_INPUTS | ( | array | ) | FILTER_INOUTPADS(inputs, (array)) |
Definition at line 192 of file internal.h.
#define FILTER_OUTPUTS | ( | array | ) | FILTER_INOUTPADS(outputs, (array)) |
Definition at line 193 of file internal.h.
#define D2TS | ( | d | ) | (isnan(d) ? AV_NOPTS_VALUE : (int64_t)(d)) |
Definition at line 253 of file internal.h.
#define TS2D | ( | ts | ) | ((ts) == AV_NOPTS_VALUE ? NAN : (double)(ts)) |
Definition at line 254 of file internal.h.
Definition at line 255 of file internal.h.
Definition at line 259 of file internal.h.
Definition at line 264 of file internal.h.
Definition at line 311 of file internal.h.
#define AVFILTER_DEFINE_CLASS | ( | fname | ) | AVFILTER_DEFINE_CLASS_EXT(fname, #fname, fname##_options) |
Definition at line 319 of file internal.h.
Find the index of a link.
I.e. find i such that link == ctx->(in|out)puts[i]
Definition at line 327 of file internal.h.
Definition at line 328 of file internal.h.
#define FF_FILTER_FLAG_HWFRAME_AWARE (1 << 0) |
The filter is aware of hardware frames, and any hardware frame context should not be automatically propagated through it.
Definition at line 364 of file internal.h.
enum FilterFormatsState |
Definition at line 150 of file internal.h.
void ff_avfilter_graph_update_heap | ( | AVFilterGraph * | graph, |
AVFilterLink * | link | ||
) |
Update the position of a link in the age heap.
Definition at line 1291 of file avfiltergraph.c.
Referenced by update_link_current_pts().
|
static |
Definition at line 144 of file internal.h.
Referenced by activate(), analyze_frame(), apply_lut(), apply_unsharp_c(), blend_frame(), blend_frames(), blur_frame(), chromatic_adaptation(), compute_vif2(), config_output(), convert_frame(), do_blend(), do_convolve(), do_identity(), do_morpho(), do_psnr(), do_ssim(), draw_sierpinski(), filter(), filter_frame(), filter_frame16(), filter_frame8(), filter_grey_edge(), fir_frame(), gaussianiir2d(), geq_filter_frame(), get_deriv(), get_frame(), headphone_frame(), nlmeans_plane(), output_frame(), plot_spectrum_column(), prepare_impulse(), prepare_secondary(), process_frame(), scroll(), spatial_activate(), and xfade_frame().
Tell if an integer is contained in the provided -1-terminated list of integers.
This is useful for determining (for instance) if an AVPixelFormat is in an array of supported formats.
fmt | provided format |
fmts | -1-terminated list of formats |
Definition at line 372 of file formats.c.
Referenced by config_input(), config_input_main(), config_input_overlay(), config_out_props(), config_props(), and filter_frame().
av_warn_unused_result int ff_parse_pixel_format | ( | enum AVPixelFormat * | ret, |
const char * | arg, | ||
void * | log_ctx | ||
) |
av_warn_unused_result int ff_parse_sample_rate | ( | int * | ret, |
const char * | arg, | ||
void * | log_ctx | ||
) |
av_warn_unused_result int ff_parse_channel_layout | ( | AVChannelLayout * | ret, |
int * | nret, | ||
const char * | arg, | ||
void * | log_ctx | ||
) |
Parse a channel layout or a corresponding integer representation.
ret | 64bit integer pointer to where the value should be written. |
nret | integer pointer to the number of channels; if not NULL, then unknown channel layouts are accepted |
arg | string to parse |
log_ctx | log context |
void ff_avfilter_link_set_in_status | ( | AVFilterLink * | link, |
int | status, | ||
int64_t | pts | ||
) |
Set the status field of a link from the source filter.
The pts should reflect the timestamp of the status change, in link time base and relative to the frames timeline. In particular, for AVERROR_EOF, it should reflect the end time of the last frame.
Definition at line 234 of file avfilter.c.
Referenced by av_buffersrc_close(), ff_outlink_set_status(), and ff_request_frame_to_filter().
int ff_append_inpad | ( | AVFilterContext * | f, |
AVFilterPad * | p | ||
) |
Append a new input/output pad to the filter's list of such pads.
The *_free_name versions will set the AVFILTERPAD_FLAG_FREE_NAME flag ensuring that the name will be freed generically (even on insertion error).
Definition at line 127 of file avfilter.c.
Referenced by decimate_init(), ff_append_inpad_free_name(), fieldmatch_init(), and init().
int ff_append_outpad | ( | AVFilterContext * | f, |
AVFilterPad * | p | ||
) |
Definition at line 138 of file avfilter.c.
Referenced by ff_append_outpad_free_name(), and init().
int ff_append_inpad_free_name | ( | AVFilterContext * | f, |
AVFilterPad * | p | ||
) |
Definition at line 132 of file avfilter.c.
Referenced by init(), join_init(), libplacebo_init(), parse_definition(), program_opencl_init(), and stack_init().
int ff_append_outpad_free_name | ( | AVFilterContext * | f, |
AVFilterPad * | p | ||
) |
Definition at line 143 of file avfilter.c.
Referenced by init(), movie_common_init(), parse_definition(), and split_init().
int ff_request_frame | ( | AVFilterLink * | link | ) |
Request an input frame from the filter at the other end of the link.
This function must not be used by filters using the activate callback, use ff_link_set_frame_wanted() instead.
The input filter may pass the request on to its inputs, fulfill the request from an internal buffer or any other means specific to its function.
When the end of a stream is reached AVERROR_EOF is returned and no further frames are returned after that.
When a filter is unable to output a frame for example due to its sources being unable to do so or because it depends on external means pushing data into it then AVERROR(EAGAIN) is returned. It is important that a AVERROR(EAGAIN) return is returned all the way to the caller (generally eventually a user application) as this step may (but does not have to be) necessary to provide the input with the next frame.
If a request is successful then some progress has been made towards providing a frame on the link (through ff_filter_frame()). A filter that needs several frames to produce one is allowed to return success if one more frame has been processed but no output has been produced yet. A filter is also allowed to simply forward a success return value.
link | the input link |
Definition at line 431 of file avfilter.c.
Referenced by avfilter_graph_request_oldest(), deint_vaapi_request_frame(), ff_request_frame_to_filter(), ff_yadif_request_frame(), request_frame(), and request_frame_ref().
int ff_filter_frame | ( | AVFilterLink * | link, |
AVFrame * | frame | ||
) |
Send a frame of data to the next filter.
link | the output link over which the data is being sent |
frame | a reference to the buffer of data being sent. The receiving filter will free this reference when it no longer needs it or pass it on to the next filter. |
Definition at line 978 of file avfilter.c.
Referenced by activate(), addroi_filter_frame(), apply_filter(), audio_frame(), av_buffersrc_add_frame_flags(), avgblur_opencl_filter_frame(), avgblur_vulkan_filter_frame(), blend_frame(), blend_frame_for_dualinput(), blockdetect_filter_frame(), blur_frame(), blurdetect_filter_frame(), channelmap_filter_frame(), chromaber_vulkan_filter_frame(), compand_delay(), compand_drain(), compand_nodelay(), convolution_opencl_filter_frame(), create_frame(), cuda_bilateral_filter_frame(), cudachromakey_filter_frame(), cudacolorspace_filter_frame(), cudascale_filter_frame(), cudaupload_filter_frame(), ddagrab_request_frame(), decode_packet(), default_filter_frame(), deint_vaapi_filter_frame(), dnn_classify_activate(), dnn_classify_flush_frame(), dnn_detect_activate(), dnn_detect_flush_frame(), do_alphamerge(), do_blend(), do_convolve(), do_corr(), do_identity(), do_morpho(), do_psnr(), do_ssim(), do_ssim360(), do_vmaf(), draw_spatial(), end_last_frame(), extract_plane(), ff_qsvvpp_init(), ff_yadif_filter_frame(), filter(), filter_callback(), filter_frame(), filter_frame16(), filter_frame8(), filter_frame_ref(), fir_frame(), flip_bayer(), flush_frame(), forward_frame(), gblur_vulkan_filter_frame(), geq_filter_frame(), get_frame(), headphone_frame(), hwdownload_filter_frame(), hwmap_filter_frame(), hwupload_filter_frame(), iccdetect_filter_frame(), iccgen_filter_frame(), load_apply_palette(), misc_vaapi_filter_frame(), neighbor_opencl_filter_frame(), nlmeans_opencl_filter_frame(), nppscale_filter_frame(), nppscale_filter_frame_ref(), nppsharpen_filter_frame(), npptranspose_filter_frame(), oscilloscope_filter_frame(), output_frame(), output_single_frame(), overlay_cuda_blend(), overlay_opencl_blend(), overlay_vaapi_blend(), overlay_vulkan_blend(), pixscope_filter_frame(), plot_freqs(), plot_spectrum_column(), pp_filter_frame(), procamp_vaapi_filter_frame(), process_frame(), program_opencl_run(), push_frame(), push_samples(), remap_opencl_process_frame(), request_frame(), return_frame(), scale_vaapi_filter_frame(), scale_vt_filter_frame(), scale_vulkan_filter_frame(), send_silence(), shuffleplanes_filter_frame(), sierpinski_request_frame(), source_request_frame(), testsrc_vulkan_activate(), tonemap_opencl_filter_frame(), tonemap_vaapi_filter_frame(), transpose_opencl_filter_frame(), transpose_vaapi_filter_frame(), transpose_vt_filter_frame(), try_push_frame(), unsharp_opencl_filter_frame(), varblur_frame(), video_frame(), write_frame(), xfade_activate(), xfade_frame(), and xfade_opencl_activate().
AVFilterContext* ff_filter_alloc | ( | const AVFilter * | filter, |
const char * | inst_name | ||
) |
Allocate a new filter context and return it.
filter | what filter to create an instance of |
inst_name | name to give to the new filter context |
Definition at line 645 of file avfilter.c.
Referenced by avfilter_graph_alloc_filter().
int ff_filter_activate | ( | AVFilterContext * | filter | ) |
Definition at line 1322 of file avfilter.c.
Referenced by ff_filter_graph_run_once().
void ff_filter_graph_remove_filter | ( | AVFilterGraph * | graph, |
AVFilterContext * | filter | ||
) |
Remove a filter from a graph;.
Definition at line 101 of file avfiltergraph.c.
Referenced by avfilter_free().
int ff_filter_graph_run_once | ( | AVFilterGraph * | graph | ) |
Run one round of processing on a filter graph.
Definition at line 1341 of file avfiltergraph.c.
Referenced by avfilter_graph_request_oldest(), get_frame_internal(), and push_frame().
int ff_filter_get_nb_threads | ( | AVFilterContext * | ctx | ) |
Get number of threads for current filter instance.
This number is always same or less than graph->nb_threads.
Definition at line 786 of file avfilter.c.
Referenced by activate(), analyze_frame(), apply_lut(), blend_frame(), blend_frames(), blur_frame(), config_input(), config_input_ref(), config_output(), config_props(), convert_frame(), do_blend(), do_convolve(), do_morpho(), draw_sierpinski(), filter(), filter_frame(), filter_frame16(), filter_frame8(), fir_frame(), gaussianiir2d(), geq_filter_frame(), init(), nlmeans_plane(), open_stream(), output_frame(), param_init(), prepare_impulse(), prepare_secondary(), process_frame(), scroll(), and xfade_frame().
int ff_filter_process_command | ( | AVFilterContext * | ctx, |
const char * | cmd, | ||
const char * | arg, | ||
char * | res, | ||
int | res_len, | ||
int | flags | ||
) |
Generic processing of user supplied commands that are set in the same way as the filter options.
NOTE: 'enable' option is handled separately, and not by this function.
Definition at line 851 of file avfilter.c.
Referenced by libplacebo_process_command(), oscilloscope_process_command(), pixscope_process_command(), and process_command().
int ff_filter_init_hw_frames | ( | AVFilterContext * | avctx, |
AVFilterLink * | link, | ||
int | default_pool_size | ||
) |
Perform any additional setup required for hardware frames.
link->hw_frames_ctx must be set before calling this function. Inside link->hw_frames_ctx, the fields format, sw_format, width and height must be set. If dynamically allocated pools are not supported, then initial_pool_size must also be set, to the minimum hardware frame pool size necessary for the filter to work (taking into account any frames which need to stored for use in operations as appropriate). If default_pool_size is nonzero, then it will be used as the pool size if no other modification takes place (this can be used to preserve compatibility).
Definition at line 1547 of file avfilter.c.
Referenced by config_output(), ff_vaapi_vpp_config_output(), scale_vt_config_output(), and transpose_vt_recreate_hw_ctx().
int ff_filter_opt_parse | ( | void * | logctx, |
const AVClass * | priv_class, | ||
AVDictionary ** | options, | ||
const char * | args | ||
) |
Parse filter options into a dictionary.
logctx | context for logging |
priv_class | a filter's private class for shorthand options or NULL |
options | dictionary to store parsed options in |
args | options string to parse |
Definition at line 793 of file avfilter.c.
Referenced by avfilter_init_str(), and filter_parse().