Go to the documentation of this file.
25 #ifndef AVFILTER_AVFILTER_INTERNAL_H
26 #define AVFILTER_AVFILTER_INTERNAL_H
205 #define FF_TPRINTF_START(ctx, func) ff_tlog(NULL, "%-16s: ", #func)
210 #define ff_tlog_link(ctx, link, end) do { } while(0)
int ff_filter_graph_run_once(AVFilterGraph *graph)
Run one round of processing on a filter graph.
static FilterLinkInternal * ff_link_internal(AVFilterLink *link)
struct AVExpr * enable
variable values for the enable expression
@ AVLINK_STARTINIT
started, but incomplete
int ff_filter_opt_parse(void *logctx, const AVClass *priv_class, AVDictionary **options, const char *args)
Parse filter options into a dictionary.
This structure describes decoded (raw) audio or video data.
struct FilterLinkInternal ** sink_links
void(* filter)(uint8_t *src, int stride, int qscale)
A link between two filters.
Link properties exposed to filter code, but not external callers.
AVFilterContext p
The public AVFilterContext.
@ AVLINK_UNINIT
not started
avfilter_execute_func * thread_execute
Structure to hold global options and statistics for frame queues.
int ff_filter_config_links(AVFilterContext *filter)
Negotiate the media format, dimensions, etc of all inputs to a filter.
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
void ff_avfilter_graph_update_heap(AVFilterGraph *graph, struct FilterLinkInternal *li)
Update the position of a link in the age heap.
Describe the class of an AVClass context structure.
static FFFilterGraph * fffiltergraph(AVFilterGraph *graph)
AVFilterContext * ff_filter_alloc(const AVFilter *filter, const char *inst_name)
Allocate a new filter context and return it.
enum FilterLinkInternal::@308 init_state
stage of the initialization of the link properties (dimensions, etc)
int status_out
Link output status.
int ff_filter_activate(AVFilterContext *filter)
struct AVFilterCommand * command_queue
Queue of AVFrame pointers.
const OptionDef options[]
int age_index
Index in the age array.
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.
struct AVFilterCommand * next
int ff_inlink_process_commands(AVFilterLink *link, const AVFrame *frame)
Process the commands queued in the link up to the time of the frame.
FFFrameQueueGlobal frame_queues
int frame_blocked_in
If set, the source filter can not generate a frame as is.
#define ff_tlog_link(ctx, link, end)
unsigned disable_auto_convert
static FFFilterContext * fffilterctx(AVFilterContext *ctx)
int status_in
Link input status.
int frame_wanted_out
True if a frame is currently wanted on the output of this filter.
unsigned ready
Ready status of the filter.
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter)
Remove a filter from a graph;.
avfilter_execute_func * execute
char * arg
optional argument for the command
AVFilterGraph p
The public AVFilterGraph.
void ff_graph_thread_free(FFFilterGraph *graph)
int ff_graph_thread_init(FFFilterGraph *graph)
struct FFFramePool * frame_pool
FFFrameQueue fifo
Queue of frames waiting to be filtered.
int64_t status_in_pts
Timestamp of the input status change.
double time
time expressed in seconds