22 #ifndef AVFILTER_AVFILTER_H 23 #define AVFILTER_AVFILTER_H 106 #define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) 112 #define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) 117 #define AVFILTER_FLAG_SLICE_THREADS (1 << 2) 126 #define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16) 134 #define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17) 139 #define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL) 336 #define AVFILTER_THREAD_SLICE (1 << 0) 613 #ifndef FF_INTERNAL_FIELDS 620 char reserved[0xF000];
634 int frame_blocked_in;
646 int64_t status_in_pts;
676 #if FF_API_FILTER_GET_SET 684 #if FF_API_FILTER_LINK_SET_CLOSED 701 #define AVFILTER_CMD_FLAG_ONE 1 702 #define AVFILTER_CMD_FLAG_FAST 2
724 void avfilter_register_all(
void);
810 unsigned filt_srcpad_idx,
unsigned filt_dstpad_idx);
848 void *
arg,
int *
ret,
int nb_jobs);
971 const char *
name,
const char *args,
void *opaque,
AVFilterContext ** filters
void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags)
Enable or disable automatic format conversion inside the graph.
double * var_values
variable values for the enable expression
int frame_wanted_out
True if a frame is currently wanted on the output of this filter.
This structure describes decoded (raw) audio or video data.
int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts)
Queue a command for one or more filter instances.
int thread_type
Type of multithreading allowed for filters in this graph.
void avfilter_free(AVFilterContext *filter)
Free a filter context.
AVFilterGraph * avfilter_graph_alloc(void)
Allocate a filter graph.
int max_samples
Maximum number of samples to filter at once.
int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)
Check validity and configure all the links and formats in the graph.
void avfilter_inout_free(AVFilterInOut **inout)
Free the supplied list of AVFilterInOut and set *inout to NULL.
struct AVFilterInOut * next
next input/input in the list, NULL if this is the last
Queue of AVFrame pointers.
int h
agreed upon image height
enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx)
Get the type of an AVFilterPad.
the definition of that something depends on the semantic of the filter The callback must examine the status of the filter s links and proceed accordingly The status of output links is stored in the status_in and status_out fields and tested by the then the processing requires a frame on this link and the filter is expected to make efforts in that direction The status of input links is stored by the status_in
Libavfilter version macros.
void avfilter_graph_free(AVFilterGraph **graph)
Free a graph, destroy its links, and set *graph to NULL.
AVBufferRef * hw_device_ctx
For filters which will create hardware frames, sets the device the filter should create them in...
Convenience header that includes libavutil's core.
int(* activate)(AVFilterContext *ctx)
Filter activation function.
AVFilterFormatsConfig outcfg
Lists of supported formats / etc.
AVFilterPad * dstpad
input pad on the dest filter
int thread_type
Type of multithreading being allowed/used.
void(* uninit)(AVFilterContext *ctx)
Filter uninitialization function.
int is_disabled
the enabled state from the last expression evaluation
Macro definitions for various function/variable attributes.
int nb_threads
Max number of threads allowed in this filter instance.
char * scale_sws_opts
sws options to use for the auto-inserted scale filters
struct AVFilterGraph * graph
filtergraph this filter belongs to
int(* init_dict)(AVFilterContext *ctx, AVDictionary **options)
Should be set instead of init by the filters that want to pass a dictionary of AVOptions to nested co...
int priv_size
size of private data to allocate for the filter
AVFilterLink ** inputs
array of pointers to input links
char * name
name of this filter instance
avfilter_execute_func * execute
This callback may be set by the caller immediately after allocating the graph and before adding any f...
int avfilter_link(AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad)
Link two filters together.
AVFilterPad * output_pads
array of output pads
const char * avfilter_license(void)
Return the libavfilter license.
unsigned ready
Ready status of the filter.
int( avfilter_execute_func)(AVFilterContext *ctx, avfilter_action_func *func, void *arg, int *ret, int nb_jobs)
A function executing multiple jobs, possibly in parallel.
int flags
A combination of AVFILTER_FLAG_*.
int avfilter_graph_create_filter(AVFilterContext **filt_ctx, const AVFilter *filt, const char *name, const char *args, void *opaque, AVFilterGraph *graph_ctx)
Create and add a filter instance into an existing graph.
int nb_threads
Maximum number of threads used by filters in this graph.
int avfilter_config_links(AVFilterContext *filter)
Negotiate the media format, dimensions, etc of all inputs to a filter.
AVFilterContext * avfilter_graph_get_filter(AVFilterGraph *graph, const char *name)
Get a filter instance identified by instance name from graph.
int(* preinit)(AVFilterContext *ctx)
Filter pre-initialization function.
int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs)
Add a graph described by a string to a graph.
int extra_hw_frames
Sets the number of extra hardware frames which the filter will allocate on its output links for use i...
A filter pad used for either input or output.
A link between two filters.
AVFilterPad * input_pads
array of input pads
ist filters[ist->nb_filters-1]
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
int min_samples
Minimum number of samples to filter at once.
AVRational frame_rate
Frame rate of the stream on the link, or 1/0 if unknown or variable; if left to 0/0, will be automatically copied from the first input of the source filter if it exists.
int sample_rate
samples per second
unsigned nb_outputs
number of output pads
unsigned avfilter_version(void)
Return the LIBAVFILTER_VERSION_INT constant.
int64_t current_pts_us
Current timestamp of the link, as defined by the most recent frame(s), in AV_TIME_BASE units...
void * priv
private data for use by the filter
char * enable_str
enable expression string
AVRational time_base
Define the time base used by the PTS of the frames/samples which will pass through this link...
AVFilterLink ** sink_links
Private fields.
reference-counted frame API
int w
agreed upon image width
const AVFilter * avfilter_get_by_name(const char *name)
Get a filter definition matching the given name.
AVBufferRef * hw_frames_ctx
For hwaccel pixel formats, this should be a reference to the AVHWFramesContext describing the frames...
unsigned nb_inputs
number of input pads
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
int(* init)(AVFilterContext *ctx)
Filter initialization function.
int flags_internal
Additional flags for avfilter internal use only.
AVFilterContext * src
source filter
int partial_buf_size
Size of the partial buffer to allocate.
int age_index
Index in the age array.
AVFrame * partial_buf
Buffer partially filled with samples to achieve a fixed/minimum size.
AVFilterContext * filter_ctx
filter context associated to this input/output
int format
agreed upon media format
int( avfilter_action_func)(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
A function pointer passed to the AVFilterGraph::execute callback to be executed multiple times...
A list of supported channel layouts.
int avfilter_init_str(AVFilterContext *ctx, const char *args)
Initialize a filter with the supplied parameters.
const AVFilterPad * inputs
List of inputs, terminated by a zeroed element.
const AVClass * avfilter_get_class(void)
A linked-list of the inputs/outputs of the filter chain.
int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, unsigned filt_srcpad_idx, unsigned filt_dstpad_idx)
Insert a filter in the middle of an existing link.
const AVClass * priv_class
A class for the private data, used to declare filter private AVOptions.
int(* process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags)
Make the filter instance process a command.
int avfilter_graph_request_oldest(AVFilterGraph *graph)
Request a frame on the oldest sink link.
int avfilter_process_command(AVFilterContext *filter, const char *cmd, const char *arg, char *res, int res_len, int flags)
Make the filter instance process a command.
int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, AVFilterInOut *inputs, AVFilterInOut *outputs, void *log_ctx)
Add a graph described by a string to a graph.
int(* func)(AVBPrint *dst, const char *in, const char *arg)
Describe the class of an AVClass context structure.
int pad_idx
index of the filt_ctx pad to use for linking
Rational number (pair of numerator and denominator).
const AVFilter * av_filter_iterate(void **opaque)
Iterate over all registered filters.
int(* query_formats)(AVFilterContext *)
Query formats supported by the filter on its inputs and outputs.
refcounted data buffer API
const char * name
Filter name.
const char * avfilter_configuration(void)
Return the libavfilter build-time configuration.
AVRational sample_aspect_ratio
agreed upon sample aspect ratio
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 link
const char * avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx)
Get the name of an AVFilterPad.
AVFilterLink ** outputs
array of pointers to output links
void * frame_pool
A pointer to a FFFramePool struct.
int avfilter_link_get_channels(AVFilterLink *link)
char * name
unique name for this input/output in the list
all automatic conversions disabled
int(* init_opaque)(AVFilterContext *ctx, void *opaque)
Filter initialization function, alternative to the init() callback.
#define attribute_deprecated
int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options)
Initialize a filter with the supplied dictionary of options.
struct AVFilterGraph * graph
Graph the filter belongs to.
A reference to a data buffer.
void * opaque
Opaque user data.
const OptionDef options[]
AVFilterInOut * avfilter_inout_alloc(void)
Allocate a single AVFilterInOut entry.
static const int8_t filt[NUMTAPS *2]
Utilties for rational number calculation.
struct AVFilterCommand * command_queue
char * avfilter_graph_dump(AVFilterGraph *graph, const char *options)
Dump a graph into a human-readable string representation.
uint64_t channel_layout
channel layout of current buffer (see libavutil/channel_layout.h)
int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags)
Send a command to one or more filter instances.
int channels
Number of channels.
AVFilterFormatsConfig incfg
Lists of supported formats / etc.
char * aresample_swr_opts
swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions ...
const char * description
A description of the filter.
all automatic conversions enabled
AVFilterContext * avfilter_graph_alloc_filter(AVFilterGraph *graph, const AVFilter *filter, const char *name)
Create a new filter instance in a filter graph.
AVFilterContext * dst
dest filter
void * enable
parsed expression (AVExpr*)
const AVClass * av_class
needed for av_log() and filters common options
int avfilter_graph_parse_ptr(AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs, void *log_ctx)
Add a graph described by a string to a graph.
int avfilter_pad_count(const AVFilterPad *pads)
Get the number of elements in a NULL-terminated array of AVFilterPads (e.g.
AVFilterPad * srcpad
output pad on the source filter
const AVFilterPad * outputs
List of outputs, terminated by a zeroed element.
void avfilter_link_set_closed(AVFilterLink *link, int closed)
void avfilter_link_free(AVFilterLink **link)
Free the link in *link, and set its pointer to NULL.
const AVFilter * filter
the AVFilter of which this is an instance
int64_t current_pts
Current timestamp of the link, as defined by the most recent frame(s), in link time_base units...
unsigned disable_auto_convert