FFmpeg
|
internal API functions More...
#include "libavutil/internal.h"
#include "avfilter.h"
#include "avfiltergraph.h"
#include "formats.h"
#include "thread.h"
#include "version.h"
#include "video.h"
#include "libavcodec/avcodec.h"
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 | ff_tlog(pctx,...) do { if (0) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) |
#define | FF_TPRINTF_START(ctx, func) ff_tlog(NULL, "%-16s: ", #func) |
#define | AVFILTER_DEFINE_CLASS(fname) |
#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)) |
Enumerations | |
enum | { FF_LINK_FLAG_REQUEST_LOOP = 1 } |
Flags for AVFilterLink.flags. More... | |
Functions | |
void | ff_avfilter_graph_update_heap (AVFilterGraph *graph, AVFilterLink *link) |
Update the position of a link in the age heap. More... | |
int | ff_fmt_is_in (int fmt, const int *fmts) |
Tell is a format is contained in the provided list terminated by -1. More... | |
int | ff_parse_pixel_format (enum AVPixelFormat *ret, const char *arg, void *log_ctx) |
Parse a pixel format. More... | |
int | ff_parse_sample_rate (int *ret, const char *arg, void *log_ctx) |
Parse a sample rate. More... | |
int | ff_parse_time_base (AVRational *ret, const char *arg, void *log_ctx) |
Parse a time base. More... | |
int | ff_parse_sample_format (int *ret, const char *arg, void *log_ctx) |
Parse a sample format name or a corresponding integer representation. More... | |
int | ff_parse_channel_layout (int64_t *ret, int *nret, const char *arg, void *log_ctx) |
Parse a channel layout or a corresponding integer representation. More... | |
void | ff_update_link_current_pts (AVFilterLink *link, int64_t pts) |
void | ff_command_queue_pop (AVFilterContext *filter) |
char * | ff_get_ref_perms_string (char *buf, size_t buf_size, int perms) |
void | ff_tlog_ref (void *ctx, AVFrame *ref, int end) |
void | ff_tlog_link (void *ctx, AVFilterLink *link, int end) |
int | ff_insert_pad (unsigned idx, unsigned *count, size_t padidx_off, AVFilterPad **pads, AVFilterLink ***links, AVFilterPad *newpad) |
Insert a new pad. More... | |
static int | ff_insert_inpad (AVFilterContext *f, unsigned index, AVFilterPad *p) |
Insert a new input pad for the filter. More... | |
static int | ff_insert_outpad (AVFilterContext *f, unsigned index, AVFilterPad *p) |
Insert a new output pad for the filter. More... | |
int | ff_poll_frame (AVFilterLink *link) |
Poll a frame from the filter chain. More... | |
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... | |
void | ff_filter_graph_remove_filter (AVFilterGraph *graph, AVFilterContext *filter) |
Remove a filter from a graph;. More... | |
static int | ff_norm_qscale (int qscale, int type) |
Normalize the qscale factor FIXME the H264 qscale is a log based scale, mpeg1/2 is not, the code below cannot be optimal. More... | |
internal API functions
Definition in file internal.h.
#define ff_tlog | ( | pctx, | |
... | |||
) | do { if (0) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) |
Definition at line 241 of file internal.h.
Definition at line 244 of file internal.h.
Referenced by ff_filter_frame(), ff_get_video_buffer(), and ff_request_frame().
#define AVFILTER_DEFINE_CLASS | ( | fname | ) |
Definition at line 334 of file internal.h.
#define FF_INLINK_IDX | ( | link | ) | ((int)((link)->dstpad - (link)->dst->input_pads)) |
Find the index of a link.
I.e. find i such that link == ctx->(in|out)puts[i]
Definition at line 348 of file internal.h.
Referenced by ff_framesync_filter_frame(), filter_frame(), get_audio_buffer(), get_video_buffer(), and process_frame().
#define FF_OUTLINK_IDX | ( | link | ) | ((int)((link)->srcpad - (link)->src->output_pads)) |
Definition at line 349 of file internal.h.
Referenced by config_output(), movie_config_output_props(), movie_request_frame(), and request_frame().
anonymous enum |
Flags for AVFilterLink.flags.
Enumerator | |
---|---|
FF_LINK_FLAG_REQUEST_LOOP |
Frame requests may need to loop in order to be fulfilled. A filter must set this flags on an output link if it may return 0 in request_frame() without filtering a frame. |
Definition at line 367 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 1368 of file avfiltergraph.c.
Referenced by ff_update_link_current_pts().
int ff_fmt_is_in | ( | int | fmt, |
const int * | fmts | ||
) |
Tell is a format is contained in the provided list terminated by -1.
Definition at line 254 of file formats.c.
Referenced by config_input(), config_input_main(), config_input_overlay(), config_out_props(), and config_props().
int ff_parse_pixel_format | ( | enum AVPixelFormat * | ret, |
const char * | arg, | ||
void * | log_ctx | ||
) |
int ff_parse_sample_rate | ( | int * | ret, |
const char * | arg, | ||
void * | log_ctx | ||
) |
int ff_parse_time_base | ( | AVRational * | ret, |
const char * | arg, | ||
void * | log_ctx | ||
) |
Parse a time base.
ret | unsigned AVRational pointer to where the value should be written |
arg | string to parse |
log_ctx | log context |
int ff_parse_sample_format | ( | int * | ret, |
const char * | arg, | ||
void * | log_ctx | ||
) |
int ff_parse_channel_layout | ( | int64_t * | 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 |
Definition at line 636 of file formats.c.
Referenced by init().
void ff_update_link_current_pts | ( | AVFilterLink * | link, |
int64_t | pts | ||
) |
Definition at line 450 of file avfilter.c.
Referenced by ff_filter_frame_framed().
void ff_command_queue_pop | ( | AVFilterContext * | filter | ) |
Definition at line 90 of file avfilter.c.
Referenced by avfilter_free(), and ff_filter_frame_framed().
char* ff_get_ref_perms_string | ( | char * | buf, |
size_t | buf_size, | ||
int | perms | ||
) |
Definition at line 45 of file avfilter.c.
Referenced by ff_filter_frame().
void ff_tlog_link | ( | void * | ctx, |
AVFilterLink * | link, | ||
int | end | ||
) |
Definition at line 319 of file avfilter.c.
Referenced by ff_filter_frame(), ff_get_video_buffer(), and ff_request_frame().
int ff_insert_pad | ( | unsigned | idx, |
unsigned * | count, | ||
size_t | padidx_off, | ||
AVFilterPad ** | pads, | ||
AVFilterLink *** | links, | ||
AVFilterPad * | newpad | ||
) |
Insert a new pad.
idx | Insertion point. Pad is inserted at the end if this point is beyond the end of the list of pads. |
count | Pointer to the number of pads in the list |
padidx_off | Offset within an AVFilterLink structure to the element to increment when inserting a new pad causes link numbering to change |
pads | Pointer to the pointer to the beginning of the list of pads |
links | Pointer to the pointer to the beginning of the list of links |
newpad | The new pad to add. A copy is made when adding. |
Definition at line 99 of file avfilter.c.
Referenced by ff_insert_inpad(), and ff_insert_outpad().
|
inlinestatic |
Insert a new input pad for the filter.
Definition at line 271 of file internal.h.
Referenced by decimate_init(), fieldmatch_init(), init(), and join_init().
|
inlinestatic |
Insert a new output pad for the filter.
Definition at line 285 of file internal.h.
Referenced by init(), movie_common_init(), and split_init().
int ff_poll_frame | ( | AVFilterLink * | link | ) |
Poll a frame from the filter chain.
link | the input link |
Definition at line 374 of file avfilter.c.
Referenced by ff_poll_frame().
int ff_request_frame | ( | AVFilterLink * | link | ) |
Request an input frame from the filter at the other end of the link.
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 the filter_frame() function will be called at least once before ff_request_frame() returns
link | the input link |
Definition at line 343 of file avfilter.c.
Referenced by av_buffersink_get_frame_flags(), avfilter_graph_request_oldest(), ff_framesync_request_frame(), ff_request_frame(), join_request_frame(), request_frame(), request_frame_ref(), request_inlink(), request_samples(), and return_audio_frame().
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 1158 of file avfilter.c.
Referenced by channelmap_filter_frame(), compand_delay(), compand_nodelay(), default_filter_frame(), end_last_frame(), filter(), filter_frame(), filter_frame_ref(), flush(), geq_filter_frame(), join_request_frame(), movie_push_frame(), output_frame(), plot_cqt(), plot_freqs(), plot_spectrum_column(), pp_filter_frame(), process_frame(), process_work_frame(), push_frame(), push_samples(), request_frame(), return_audio_frame(), return_frame(), send_out(), send_silence(), and shuffleplanes_filter_frame().
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 622 of file avfilter.c.
Referenced by avfilter_graph_alloc_filter().
void ff_filter_graph_remove_filter | ( | AVFilterGraph * | graph, |
AVFilterContext * | filter | ||
) |
Remove a filter from a graph;.
Definition at line 94 of file avfiltergraph.c.
Referenced by avfilter_free().
|
inlinestatic |
Normalize the qscale factor FIXME the H264 qscale is a log based scale, mpeg1/2 is not, the code below cannot be optimal.
Definition at line 398 of file internal.h.
Referenced by filter().