64     int i, j, *fmts, 
count = 0;
 
   66     for (i = 0; i < 
n; i++) {
 
   72     if (!(fmts = 
av_malloc((count+1) * 
sizeof(
int))))
 
   74     for (j = 0, i = 0; i < 
n; i++) {
 
  102     int stream_idx, sink_idx;
 
  104     for (stream_idx = 0; stream_idx < lavfi->
nb_sinks; stream_idx++) {
 
  123     const AVFilter *buffersink, *abuffersink;
 
  128 #define FAIL(ERR) { ret = ERR; goto end; } 
  138                "Only one of the graph or graph_file options must be specified\n");
 
  143         AVBPrint graph_file_pb;
 
  174                                     &input_links, &output_links, avctx)) < 0)
 
  179                "Open inputs in the filtergraph are not acceptable\n");
 
  184     for (n = 0, inout = output_links; inout; n++, inout = inout->next);
 
  196     for (i = 0; i < 
n; i++)
 
  201     for (i = 0, inout = output_links; inout; i++, inout = inout->next) {
 
  202         int stream_idx = 0, 
suffix = 0, use_subcc = 0;
 
  203         sscanf(inout->name, 
"out%n%d%n", &
suffix, &stream_idx, &
suffix);
 
  206                    "Invalid outpad name '%s'\n", inout->name);
 
  209         if (inout->name[
suffix]) {
 
  210             if (!strcmp(inout->name + 
suffix, 
"+subcc")) {
 
  214                        "Invalid outpad suffix '%s'\n", inout->name);
 
  219         if ((
unsigned)stream_idx >= n) {
 
  221                    "Invalid index was specified in output '%s', " 
  222                    "must be a non-negative value < %d\n",
 
  229                    "An output with stream index %d was already specified\n",
 
  239     for (i = 0, inout = output_links; inout; i++, inout = inout->next) {
 
  251     for (i = 0, inout = output_links; inout; i++, inout = inout->next) {
 
  290                    "Output '%s' is not a video or audio output, not yet supported\n", inout->name);
 
  294         lavfi->
sinks[i] = sink;
 
  295         if ((ret = 
avfilter_link(inout->filter_ctx, inout->pad_idx, sink, 0)) < 0)
 
  311     for (i = 0; i < lavfi->
nb_sinks; i++) {
 
  336                        "Could not find PCM codec for sample format %s.\n",
 
  361     int stream_idx, i, ret;
 
  383     double min_pts = DBL_MAX;
 
  384     int stream_idx, min_pts_sink_idx = 0;
 
  400     for (i = 0; i < lavfi->
nb_sinks; i++) {
 
  411             ff_dlog(avctx, 
"EOF sink_idx:%d\n", i);
 
  417         ff_dlog(avctx, 
"sink_idx:%d time:%f\n", i, d);
 
  422             min_pts_sink_idx = i;
 
  425     if (min_pts == DBL_MAX)
 
  428     ff_dlog(avctx, 
"min_pts_sink_idx:%i\n", min_pts_sink_idx);
 
  445         memcpy(pkt->
data, frame->
data[0], size);
 
  449     if (frame_metadata) {
 
  467         memcpy(metadata, meta_buf.str, meta_buf.len);
 
  485 #define OFFSET(x) offsetof(LavfiContext, x) 
  487 #define DEC AV_OPT_FLAG_DECODING_PARAM 
  512     .priv_class     = &lavfi_class,
 
int64_t probesize
Maximum size of the data read from input for determining the input container format. 
 
void av_bprintf(AVBPrint *buf, const char *fmt,...)
 
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
 
This structure describes decoded (raw) audio or video data. 
 
AVIOInterruptCB interrupt_callback
Custom interrupt callbacks for the I/O layer. 
 
int av_image_copy_to_buffer(uint8_t *dst, int dst_size, const uint8_t *const src_data[4], const int src_linesize[4], enum AVPixelFormat pix_fmt, int width, int height, int align)
Copy image data from an image into a buffer. 
 
int64_t pkt_pos
reordered pos from the last AVPacket that has been input into the decoder 
 
AVFilterGraph * avfilter_graph_alloc(void)
Allocate a filter graph. 
 
#define LIBAVUTIL_VERSION_INT
 
Main libavfilter public API header. 
 
Memory handling functions. 
 
int64_t pos
byte position in stream, -1 if unknown 
 
static av_cold int lavfi_read_close(AVFormatContext *avctx)
 
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. 
 
AVRational sample_aspect_ratio
Video only. 
 
#define av_opt_set_int_list(obj, name, val, term, flags)
Set a binary option to an integer list. 
 
int avio_read_to_bprint(AVIOContext *h, struct AVBPrint *pb, size_t max_size)
Read contents of h into print buffer, up to max_size bytes, or up to EOF. 
 
enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx)
Get the type of an AVFilterPad. 
 
enum AVCodecID codec_id
Specific type of the encoded data (the codec used). 
 
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown) 
 
const char * av_default_item_name(void *ptr)
Return the context name. 
 
#define AVIO_FLAG_READ
read-only 
 
void avfilter_graph_free(AVFilterGraph **graph)
Free a graph, destroy its links, and set *graph to NULL. 
 
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
 
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer. 
 
memory buffer sink API for audio and video 
 
AVInputFormat ff_lavfi_demuxer
 
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
 
int av_buffersink_get_sample_rate(const AVFilterContext *ctx)
 
int avfilter_link(AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad)
Link two filters together. 
 
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values. 
 
static av_cold int end(AVCodecContext *avctx)
 
int id
Format-specific stream ID. 
 
static const AVClass lavfi_class
 
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user). 
 
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file. 
 
AVStream ** streams
A list of all streams in the file. 
 
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. 
 
Structure to hold side data for an AVFrame. 
 
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key. 
 
char * protocol_whitelist
',' separated list of allowed protocols. 
 
#define AVERROR_EOF
End of file. 
 
static av_cold int read_close(AVFormatContext *ctx)
 
AVDictionary * metadata
metadata. 
 
int av_buffersink_get_h(const AVFilterContext *ctx)
 
int av_buffersink_get_format(const AVFilterContext *ctx)
 
AVFrameSideData ** side_data
 
uint64_t channel_layout
Audio only. 
 
Main libavdevice API header. 
 
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values. 
 
int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, int width, int height, int align)
Return the size in bytes of the amount of data required to store an image with the given parameters...
 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
 
#define AV_BPRINT_SIZE_UNLIMITED
 
static int create_subcc_streams(AVFormatContext *avctx)
 
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g. 
 
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
 
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
 
char * url
input or output URL. 
 
int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel for the pixel format described by pixdesc, including any padding ...
 
ATSC A53 Part 4 Closed Captions. 
 
enum AVMediaType codec_type
General type of the encoded data. 
 
int av_opt_set_int(void *obj, const char *name, int64_t val, int search_flags)
 
Round to nearest and halfway cases away from zero. 
 
#define AV_PIX_FMT_FLAG_HWACCEL
Pixel format is an HW accelerated format. 
 
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 attribute_align_arg av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags)
Get a frame with filtered data from sink and put it in frame. 
 
const AVFilter * avfilter_get_by_name(const char *name)
Get a filter definition matching the given name. 
 
common internal API header 
 
uint64_t flags
Combination of AV_PIX_FMT_FLAG_... 
 
static av_cold int lavfi_read_header(AVFormatContext *avctx)
 
unsigned int nb_streams
Number of elements in AVFormatContext.streams. 
 
int channels
number of audio channels, only used for audio. 
 
audio channel layout utility functions 
 
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first. 
 
static int av_bprint_is_complete(const AVBPrint *buf)
Test if the print buffer is complete (not truncated). 
 
static int read_header(FFV1Context *f)
 
A linked-list of the inputs/outputs of the filter chain. 
 
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
 
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames...
 
AVRational av_buffersink_get_sample_aspect_ratio(const AVFilterContext *ctx)
 
char * av_strdup(const char *s)
Duplicate a string. 
 
A list of zero terminated key/value strings. 
 
AVSampleFormat
Audio sample formats. 
 
enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be)
Return the PCM codec associated with a sample format. 
 
#define AV_TIME_BASE_Q
Internal time base represented as fractional value. 
 
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line. 
 
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
 
uint64_t av_buffersink_get_channel_layout(const AVFilterContext *ctx)
 
void av_packet_unref(AVPacket *pkt)
Wipe the packet. 
 
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry. 
 
Describe the class of an AVClass context structure. 
 
enum AVMediaType av_buffersink_get_type(const AVFilterContext *ctx)
 
Rational number (pair of numerator and denominator). 
 
static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt)
 
int avio_open2(AVIOContext **s, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options)
Create and initialize a AVIOContext for accessing the resource indicated by url. 
 
const char * name
Filter name. 
 
int av_buffersink_get_w(const AVFilterContext *ctx)
 
static enum AVPixelFormat pix_fmts[]
 
void av_frame_unref(AVFrame *frame)
Unreference all the buffers referenced by frame and reset the frame fields. 
 
enum AVFrameSideDataType type
 
#define flags(name, subs,...)
 
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes. 
 
#define AVERROR_FILTER_NOT_FOUND
Filter not found. 
 
int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt)
Return number of bytes per sample. 
 
int sample_rate
Audio only. 
 
static int create_subcc_packet(AVFormatContext *avctx, AVFrame *frame, int sink_idx)
 
char * avfilter_graph_dump(AVFilterGraph *graph, const char *options)
Dump a graph into a human-readable string representation. 
 
void av_init_packet(AVPacket *pkt)
Initialize optional fields of a packet with default values. 
 
static const AVOption options[]
 
Flag telling rescaling functions to pass INT64_MIN/MAX through unchanged, avoiding special cases for ...
 
#define AV_BUFFERSINK_FLAG_PEEK
Tell av_buffersink_get_buffer_ref() to read video/samples buffer reference, but not remove it from th...
 
int av_buffersink_get_channels(const AVFilterContext *ctx)
 
void * priv_data
Format private data. 
 
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. 
 
number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of...
 
static enum AVSampleFormat sample_fmts[]
 
#define AV_DICT_IGNORE_SUFFIX
Return first entry in a dictionary whose first part corresponds to the search key, ignoring the suffix of the found key string. 
 
AVCodecParameters * codecpar
Codec parameters associated with this stream. 
 
#define av_malloc_array(a, b)
 
int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq, enum AVRounding rnd)
Rescale a 64-bit integer by 2 rational numbers with specified rounding. 
 
static int * create_all_formats(int n)
 
uint8_t * av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type, int size)
Allocate new information of a packet. 
 
int * sink_stream_subcc_map
 
This structure stores compressed data. 
 
int avio_closep(AVIOContext **s)
Close the resource accessed by the AVIOContext *s, free it and set the pointer pointing to it to NULL...
 
AVRational av_buffersink_get_time_base(const AVFilterContext *ctx)
 
int nb_samples
number of audio samples (per channel) described by this frame 
 
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
 
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.