FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
filters.h File Reference
#include "avfilter.h"

Go to the source code of this file.

Functions

void ff_filter_set_ready (AVFilterContext *filter, unsigned priority)
 Filters implementation helper functions. More...
 
int ff_inlink_process_commands (AVFilterLink *link, const AVFrame *frame)
 Process the commands queued in the link up to the time of the frame. More...
 
int ff_inlink_evaluate_timeline_at_frame (AVFilterLink *link, const AVFrame *frame)
 Evaluate the timeline expression of the link for the time and properties of the frame. More...
 
int ff_inlink_check_available_frame (AVFilterLink *link)
 Test if a frame is available on the link. More...
 
int ff_inlink_check_available_samples (AVFilterLink *link, unsigned min)
 Test if enough samples are available on the link. More...
 
int ff_inlink_consume_frame (AVFilterLink *link, AVFrame **rframe)
 Take a frame from the link's FIFO and update the link's stats. More...
 
int ff_inlink_consume_samples (AVFilterLink *link, unsigned min, unsigned max, AVFrame **rframe)
 Take samples from the link's FIFO and update the link's stats. More...
 
int ff_inlink_make_frame_writable (AVFilterLink *link, AVFrame **rframe)
 Make sure a frame is writable. More...
 
int ff_inlink_acknowledge_status (AVFilterLink *link, int *rstatus, int64_t *rpts)
 Test and acknowledge the change of status on the link. More...
 
void ff_inlink_request_frame (AVFilterLink *link)
 Mark that a frame is wanted on the link. More...
 

Function Documentation

void ff_filter_set_ready ( AVFilterContext filter,
unsigned  priority 
)

Filters implementation helper functions.

Mark a filter ready and schedule it for activation.

This is automatically done when something happens to the filter (queued frame, status change, request on output). Filters implementing the activate callback can call it directly to perform one more round of processing later. It is also useful for filters reacting to external or asynchronous events.

Definition at line 191 of file avfilter.c.

Referenced by ff_avfilter_link_set_in_status(), ff_avfilter_link_set_out_status(), ff_filter_frame(), ff_filter_frame_to_filter(), ff_inlink_request_frame(), ff_request_frame(), and forward_status_change().

int ff_inlink_process_commands ( AVFilterLink link,
const AVFrame frame 
)

Process the commands queued in the link up to the time of the frame.

Commands will trigger the process_command() callback.

Returns
>= 0 or AVERROR code.

Definition at line 1606 of file avfilter.c.

Referenced by consume_update(), and ff_filter_frame_framed().

int ff_inlink_evaluate_timeline_at_frame ( AVFilterLink link,
const AVFrame frame 
)

Evaluate the timeline expression of the link for the time and properties of the frame.

Returns
>0 if enabled, 0 if disabled
Note
It does not update link->dst->is_disabled.

Definition at line 1621 of file avfilter.c.

Referenced by consume_update(), and ff_filter_frame_framed().

int ff_inlink_check_available_frame ( AVFilterLink link)

Test if a frame is available on the link.

Returns
>0 if a frame is available

Definition at line 1498 of file avfilter.c.

Referenced by ff_inlink_consume_frame().

int ff_inlink_check_available_samples ( AVFilterLink link,
unsigned  min 
)

Test if enough samples are available on the link.

Returns
>0 if enough samples are available
Note
on EOF and error, min becomes 1

Definition at line 1503 of file avfilter.c.

Referenced by ff_inlink_consume_samples().

int ff_inlink_consume_frame ( AVFilterLink link,
AVFrame **  rframe 
)

Take a frame from the link's FIFO and update the link's stats.

If ff_inlink_check_available_frame() was previously called, the preferred way of expressing it is "av_assert1(ret);" immediately after ff_inlink_consume_frame(). Negative error codes must still be checked.

Note
May trigger process_command() and/or update is_disabled.
Returns
>0 if a frame is available, 0 and set rframe to NULL if no frame available, or AVERROR code

Definition at line 1518 of file avfilter.c.

Referenced by ff_filter_frame_to_filter(), and get_frame_internal().

int ff_inlink_consume_samples ( AVFilterLink link,
unsigned  min,
unsigned  max,
AVFrame **  rframe 
)

Take samples from the link's FIFO and update the link's stats.

If ff_inlink_check_available_samples() was previously called, the preferred way of expressing it is "av_assert1(ret);" immediately after ff_inlink_consume_samples(). Negative error codes must still be checked.

Note
May trigger process_command() and/or update is_disabled.
Returns
>0 if a frame is available, 0 and set rframe to NULL if no frame available, or AVERROR code

Definition at line 1537 of file avfilter.c.

Referenced by ff_filter_frame_to_filter(), ff_inlink_consume_frame(), and get_frame_internal().

int ff_inlink_make_frame_writable ( AVFilterLink link,
AVFrame **  rframe 
)

Make sure a frame is writable.

This is similar to av_frame_make_writable() except it uses the link's buffer allocation callback, and therefore allows direct rendering.

Definition at line 1557 of file avfilter.c.

Referenced by ff_filter_frame_framed().

int ff_inlink_acknowledge_status ( AVFilterLink link,
int rstatus,
int64_t *  rpts 
)

Test and acknowledge the change of status on the link.

Status means EOF or an error condition; a change from the normal (0) status to a non-zero status can be queued in a filter's input link, it becomes relevant after the frames queued in the link's FIFO are processed. This function tests if frames are still queued and if a queued status change has not yet been processed. In that case it performs basic treatment (updating the link's timestamp) and returns a positive value to let the filter do its own treatments (flushing...).

Filters implementing the activate callback should call this function when they think it might succeed (usually after checking unsuccessfully for a queued frame). Filters implementing the filter_frame and request_frame callbacks do not need to call that since the same treatment happens in ff_filter_frame().

Parameters
[out]rstatusnew or current status
[out]rptscurrent timestamp of the link in link time base
Returns
>0 if status changed, <0 if status already acked, 0 otherwise

Definition at line 1483 of file avfilter.c.

Referenced by get_frame_internal().

void ff_inlink_request_frame ( AVFilterLink link)

Mark that a frame is wanted on the link.

Unlike ff_filter_frame(), it must not be called when the link has a non-zero status, and thus does not acknowledge it. Also it cannot fail.

Definition at line 1639 of file avfilter.c.

Referenced by get_frame_internal().