formats.c File Reference
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "internal.h"

Go to the source code of this file.

Functions

static void merge_ref (AVFilterFormats *ret, AVFilterFormats *a)
 Add all refs from a to ret and destroy a.
AVFilterFormatsavfilter_merge_formats (AVFilterFormats *a, AVFilterFormats *b)
 Return a format list which contains the intersection of the formats of a and b.
int ff_fmt_is_in (int fmt, const int *fmts)
 Tell is a format is contained in the provided list terminated by -1.
AVFilterFormatsavfilter_make_format_list (const int *fmts)
 Create a list of supported formats.
int avfilter_add_format (AVFilterFormats **avff, int fmt)
 Add fmt to the list of media formats contained in *avff.
AVFilterFormatsavfilter_all_formats (enum AVMediaType type)
 Return a list of all formats supported by Libav for the given media type.
void avfilter_formats_ref (AVFilterFormats *f, AVFilterFormats **ref)
 Add *ref as a new reference to formats.
static int find_ref_index (AVFilterFormats **ref)
void avfilter_formats_unref (AVFilterFormats **ref)
 If *ref is non-NULL, remove *ref as a reference to the format list it currently points to, deallocates that list if this was the last reference, and sets *ref to NULL.
void avfilter_formats_changeref (AVFilterFormats **oldref, AVFilterFormats **newref)
 
   Before                                 After

|formats |<------—.

Function Documentation

int avfilter_add_format ( AVFilterFormats **  avff,
int  fmt 
)

Add fmt to the list of media formats contained in *avff.

If *avff is NULL the function allocates the filter formats struct and puts its pointer in *avff.

Returns
a non negative value in case of success, or a negative value corresponding to an AVERROR code in case of error

Definition at line 107 of file formats.c.

Referenced by avfilter_all_formats(), and query_formats().

AVFilterFormats* avfilter_all_formats ( enum AVMediaType  type)

Return a list of all formats supported by Libav for the given media type.

Definition at line 124 of file formats.c.

Referenced by avfilter_default_query_formats().

void avfilter_formats_changeref ( AVFilterFormats **  oldref,
AVFilterFormats **  newref 
)

   Before                                 After

|formats |<------—.

        |formats |<---------.

| ____ | ___|___ | ____ | ___|___ | |refs| | | | | | |refs| | | | | NULL | |* *------—>|*oldref| | |* *------—>|*newref| ^ | |* * | | |_______| | |* * | | |_______| ___|___ | |____| | | |____| | | | | |________| |________| |*oldref| |_______|

Definition at line 176 of file formats.c.

Referenced by avfilter_insert_filter().

void avfilter_formats_ref ( AVFilterFormats formats,
AVFilterFormats **  ref 
)

Add *ref as a new reference to formats.

That is the pointers will point like in the ascii art below:


|formats |<-----—. | ____ | ____|___________________ | |refs| | | __|_ | |* * | | | | | | AVFilterLink | |* *------—>|*ref| | |____| | | |____| |________| |________________________

Definition at line 139 of file formats.c.

Referenced by avfilter_set_common_formats(), and query_formats().

void avfilter_formats_unref ( AVFilterFormats **  ref)

If *ref is non-NULL, remove *ref as a reference to the format list it currently points to, deallocates that list if this was the last reference, and sets *ref to NULL.

   Before                                 After

________ ________ NULL |formats |<-----—. |formats | ^ | ____ | ____|________________ | ____ | ____|________________ | |refs| | | __|_ | |refs| | | __|_ | |* * | | | | | | AVFilterLink | |* * | | | | | | AVFilterLink | |* *------—>|*ref| | |* | | | |*ref| | |____| | | |____| | |____| | | |____| |________| |_____________________ |________| |_____________________

Definition at line 155 of file formats.c.

Referenced by avfilter_free(), pick_format(), and query_formats().

AVFilterFormats* avfilter_make_format_list ( const int *  fmts)

Create a list of supported formats.

This is intended for use in AVFilter->query_formats().

Parameters
fmtslist of media formats, terminated by -1
Returns
the format list, with no existing references

Definition at line 90 of file formats.c.

Referenced by query_formats().

AVFilterFormats* avfilter_merge_formats ( AVFilterFormats a,
AVFilterFormats b 
)

Return a format list which contains the intersection of the formats of a and b.

Also, all the references of a, all the references of b, and a and b themselves will be deallocated.

If a and b do not share any common formats, neither is modified, and NULL is returned.

Definition at line 43 of file formats.c.

Referenced by query_formats().

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 79 of file formats.c.

Referenced by config_props().

static int find_ref_index ( AVFilterFormats **  ref)
static

Definition at line 146 of file formats.c.

Referenced by avfilter_formats_changeref(), and avfilter_formats_unref().

static void merge_ref ( AVFilterFormats ret,
AVFilterFormats a 
)
static

Add all refs from a to ret and destroy a.

Definition at line 29 of file formats.c.

Referenced by avfilter_merge_formats().