34 AVBPrint dummy_buffer = { 0 };
68 unsigned max_src_name = 0, max_dst_name = 0;
69 unsigned max_in_name = 0, max_out_name = 0;
70 unsigned max_in_fmt = 0, max_out_fmt = 0;
72 unsigned lname = strlen(filter->
name);
78 max_src_name =
FFMAX(max_src_name, ln);
85 max_dst_name =
FFMAX(max_dst_name, ln);
89 in_indent = max_src_name + max_in_name + max_in_fmt;
90 in_indent += in_indent ? 4 : 0;
91 width =
FFMAX(lname + 2, ltype + 4);
97 for (j = 0; j <
height; j++) {
98 unsigned in_no = j - (height - filter->
nb_inputs ) / 2;
99 unsigned out_no = j - (height - filter->
nb_outputs) / 2;
102 if (in_no < filter->nb_inputs) {
104 e = buf->len + max_src_name + 2;
107 e = buf->len + max_in_fmt + 2 +
118 if (j == (height - 2) / 2) {
119 x = (width - lname) / 2;
121 }
else if (j == (height - 2) / 2 + 1) {
122 x = (width - ltype - 2) / 2;
124 width - ltype - 2 - x,
"");
131 if (out_no < filter->nb_outputs) {
133 unsigned ln = strlen(l->
dst->
name) + 1 +
135 e = buf->len + max_out_name + 2;
138 e = buf->len + max_out_fmt + 2 +
AVFilterContext ** filters
void av_bprintf(AVBPrint *buf, const char *fmt,...)
Main libavfilter public API header.
int h
agreed upon image height
AVFilterPad * dstpad
input pad on the dest filter
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer.
const char * name
Pad name.
AVFilterLink ** inputs
array of pointers to input links
char * name
name of this filter instance
static void avfilter_graph_dump_to_buf(AVBPrint *buf, AVFilterGraph *graph)
static void * av_x_if_null(const void *p, const void *x)
Return x default pointer in case p is NULL.
A link between two filters.
#define AV_BPRINT_SIZE_COUNT_ONLY
static int print_link_prop(AVBPrint *buf, AVFilterLink *link)
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 sample_rate
samples per second
unsigned nb_outputs
number of output pads
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
const char * av_get_sample_fmt_name(enum AVSampleFormat sample_fmt)
Return the name of sample_fmt, or NULL if sample_fmt is not recognized.
int w
agreed upon image width
audio channel layout utility functions
unsigned nb_inputs
number of input pads
AVFilterContext * src
source filter
int format
agreed upon media format
void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout)
Return a description of a channel layout.
const char * name
Filter name.
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
AVFilterLink ** outputs
array of pointers to output links
enum AVMediaType type
filter media type
const OptionDef options[]
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 channels
Number of channels.
AVFilterContext * dst
dest filter
AVFilterPad * srcpad
output pad on the source filter
const char * av_get_pix_fmt_name(enum AVPixelFormat pix_fmt)
Return the short name for a pixel format, NULL in case pix_fmt is unknown.
const AVFilter * filter
the AVFilter of which this is an instance
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 layout
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.