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

Go to the source code of this file.

Data Structures

struct  AVFilterFormats
 A list of supported formats for one end of a filter link. More...
 
struct  AVFilterChannelLayouts
 A list of supported channel layouts. More...
 

Macros

#define FF_COUNT2LAYOUT(c)   (0x8000000000000000ULL | (c))
 Encode a channel count as a channel layout. More...
 
#define FF_LAYOUT2COUNT(l)
 Decode a channel count encoded as a channel layout. More...
 

Functions

AVFilterChannelLayoutsff_merge_channel_layouts (AVFilterChannelLayouts *a, AVFilterChannelLayouts *b)
 Return a channel layouts/samplerates list which contains the intersection of the layouts/samplerates of a and b. More...
 
AVFilterFormatsff_merge_samplerates (AVFilterFormats *a, AVFilterFormats *b)
 
av_warn_unused_result
AVFilterChannelLayouts
ff_all_channel_layouts (void)
 Construct an empty AVFilterChannelLayouts/AVFilterFormats struct – representing any channel layout (with known disposition)/sample rate. More...
 
av_warn_unused_result
AVFilterFormats
ff_all_samplerates (void)
 
av_warn_unused_result
AVFilterChannelLayouts
ff_all_channel_counts (void)
 Construct an AVFilterChannelLayouts coding for any channel layout, with known or unknown disposition. More...
 
av_warn_unused_result
AVFilterChannelLayouts
avfilter_make_format64_list (const int64_t *fmts)
 
av_warn_unused_result
AVFilterChannelLayouts
ff_make_formatu64_list (const uint64_t *fmts)
 
av_warn_unused_result int ff_set_common_channel_layouts (AVFilterContext *ctx, AVFilterChannelLayouts *layouts)
 A helper for query_formats() which sets all links to the same list of channel layouts/sample rates. More...
 
av_warn_unused_result int ff_set_common_samplerates (AVFilterContext *ctx, AVFilterFormats *samplerates)
 
av_warn_unused_result int ff_set_common_formats (AVFilterContext *ctx, AVFilterFormats *formats)
 A helper for query_formats() which sets all links to the same list of formats. More...
 
av_warn_unused_result int ff_add_channel_layout (AVFilterChannelLayouts **l, uint64_t channel_layout)
 
av_warn_unused_result int ff_channel_layouts_ref (AVFilterChannelLayouts *f, AVFilterChannelLayouts **ref)
 Add *ref as a new reference to f. More...
 
void ff_channel_layouts_unref (AVFilterChannelLayouts **ref)
 Remove a reference to a channel layouts list. More...
 
void ff_channel_layouts_changeref (AVFilterChannelLayouts **oldref, AVFilterChannelLayouts **newref)
 
av_warn_unused_result int ff_default_query_formats (AVFilterContext *ctx)
 
av_warn_unused_result int ff_query_formats_all_layouts (AVFilterContext *ctx)
 Set the formats list to all known channel layouts. More...
 
av_warn_unused_result
AVFilterFormats
ff_make_format_list (const int *fmts)
 Create a list of supported formats. More...
 
av_warn_unused_result int ff_add_format (AVFilterFormats **avff, int64_t fmt)
 Add fmt to the list of media formats contained in *avff. More...
 
av_warn_unused_result
AVFilterFormats
ff_all_formats (enum AVMediaType type)
 Return a list of all formats supported by FFmpeg for the given media type. More...
 
av_warn_unused_result
AVFilterFormats
ff_planar_sample_fmts (void)
 Construct a formats list containing all planar sample formats. More...
 
AVFilterFormatsff_merge_formats (AVFilterFormats *a, AVFilterFormats *b, enum AVMediaType type)
 Return a format list which contains the intersection of the formats of a and b. More...
 
av_warn_unused_result int ff_formats_ref (AVFilterFormats *formats, AVFilterFormats **ref)
 Add *ref as a new reference to formats. More...
 
void ff_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. More...
 
void ff_formats_changeref (AVFilterFormats **oldref, AVFilterFormats **newref)
 
   Before                                 After

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

 

Macro Definition Documentation

#define FF_COUNT2LAYOUT (   c)    (0x8000000000000000ULL | (c))

Encode a channel count as a channel layout.

FF_COUNT2LAYOUT(c) means any channel layout with c channels, with a known or unknown disposition. The result is only valid inside AVFilterChannelLayouts and immediately related functions.

Definition at line 102 of file formats.h.

Referenced by aeval_query_formats(), asink_query_formats(), ff_merge_channel_layouts(), and query_formats().

#define FF_LAYOUT2COUNT (   l)
Value:
(((l) & 0x8000000000000000ULL) ? \
(int)((l) & 0x7FFFFFFF) : 0)
int

Decode a channel count encoded as a channel layout.

Return 0 if the channel layout was a real one.

Definition at line 108 of file formats.h.

Referenced by pick_format(), query_formats(), reduce_formats_on_filter(), and swap_channel_layouts_on_filter().

Function Documentation

AVFilterChannelLayouts* ff_merge_channel_layouts ( AVFilterChannelLayouts a,
AVFilterChannelLayouts b 
)

Return a channel layouts/samplerates list which contains the intersection of the layouts/samplerates 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 elements, neither is modified, and NULL is returned.

Definition at line 166 of file formats.c.

Referenced by query_formats().

AVFilterFormats* ff_merge_samplerates ( AVFilterFormats a,
AVFilterFormats b 
)

Definition at line 139 of file formats.c.

Referenced by can_merge_formats(), and query_formats().

av_warn_unused_result AVFilterChannelLayouts* ff_all_channel_layouts ( void  )

Construct an empty AVFilterChannelLayouts/AVFilterFormats struct – representing any channel layout (with known disposition)/sample rate.

Definition at line 401 of file formats.c.

Referenced by ff_query_formats_all_layouts(), filter_query_formats(), join_query_formats(), and query_formats().

av_warn_unused_result AVFilterFormats* ff_all_samplerates ( void  )
av_warn_unused_result AVFilterChannelLayouts* ff_all_channel_counts ( void  )

Construct an AVFilterChannelLayouts coding for any channel layout, with known or unknown disposition.

Definition at line 410 of file formats.c.

Referenced by aeval_query_formats(), asink_query_formats(), channelmap_query_formats(), ff_default_query_formats(), and query_formats().

av_warn_unused_result AVFilterChannelLayouts* avfilter_make_format64_list ( const int64_t *  fmts)

Definition at line 303 of file formats.c.

Referenced by movie_query_formats(), and query_formats().

av_warn_unused_result AVFilterChannelLayouts* ff_make_formatu64_list ( const uint64_t *  fmts)

Definition at line 292 of file formats.c.

av_warn_unused_result int ff_set_common_channel_layouts ( AVFilterContext ctx,
AVFilterChannelLayouts layouts 
)

A helper for query_formats() which sets all links to the same list of channel layouts/sample rates.

If there are no links hooked to this filter, the list is freed.

Definition at line 549 of file formats.c.

Referenced by aeval_query_formats(), asink_query_formats(), default_query_formats_common(), filter_query_formats(), and query_formats().

av_warn_unused_result int ff_set_common_samplerates ( AVFilterContext ctx,
AVFilterFormats samplerates 
)
av_warn_unused_result int ff_set_common_formats ( AVFilterContext ctx,
AVFilterFormats formats 
)
av_warn_unused_result int ff_add_channel_layout ( AVFilterChannelLayouts **  l,
uint64_t  channel_layout 
)
av_warn_unused_result int ff_channel_layouts_ref ( AVFilterChannelLayouts f,
AVFilterChannelLayouts **  ref 
)
void ff_channel_layouts_unref ( AVFilterChannelLayouts **  ref)

Remove a reference to a channel layouts list.

Definition at line 481 of file formats.c.

Referenced by ff_add_channel_layout(), ff_channel_layouts_ref(), ff_set_common_channel_layouts(), free_link(), init(), and pick_format().

void ff_channel_layouts_changeref ( AVFilterChannelLayouts **  oldref,
AVFilterChannelLayouts **  newref 
)

Definition at line 499 of file formats.c.

Referenced by avfilter_insert_filter().

av_warn_unused_result int ff_default_query_formats ( AVFilterContext ctx)

Definition at line 597 of file formats.c.

Referenced by main(), query_formats(), and vsink_query_formats().

av_warn_unused_result int ff_query_formats_all_layouts ( AVFilterContext ctx)

Set the formats list to all known channel layouts.

This function behaves like ff_default_query_formats(), except it only accepts known channel layouts. It should only be used with audio filters.

Definition at line 602 of file formats.c.

av_warn_unused_result AVFilterFormats* ff_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 283 of file formats.c.

Referenced by aeval_query_formats(), cudascale_query_formats(), cudaupload_query_formats(), deint_vaapi_query_formats(), geq_query_formats(), hwupload_query_formats(), movie_query_formats(), nppscale_query_formats(), overlay_qsv_query_formats(), pp_query_formats(), qsvdeint_query_formats(), qsvscale_query_formats(), query_formats(), query_formats_src(), and scale_vaapi_query_formats().

av_warn_unused_result int ff_add_format ( AVFilterFormats **  avff,
int64_t  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 337 of file formats.c.

Referenced by asink_query_formats(), ff_all_formats(), ff_draw_supported_pixel_formats(), ff_planar_sample_fmts(), hwdownload_query_formats(), hwupload_query_formats(), init(), query_formats(), reduce_formats_on_filter(), and vsink_query_formats().

av_warn_unused_result AVFilterFormats* ff_all_formats ( enum AVMediaType  type)

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

Definition at line 350 of file formats.c.

Referenced by default_query_formats_common(), filter_query_formats(), hwmap_query_formats(), and query_formats().

av_warn_unused_result AVFilterFormats* ff_planar_sample_fmts ( void  )

Construct a formats list containing all planar sample formats.

Definition at line 382 of file formats.c.

Referenced by channelmap_query_formats(), join_query_formats(), and query_formats().

AVFilterFormats* ff_merge_formats ( AVFilterFormats a,
AVFilterFormats b,
enum AVMediaType  type 
)

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

Referenced by can_merge_formats(), and query_formats().

av_warn_unused_result int ff_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 440 of file formats.c.

Referenced by cudaupload_query_formats(), deint_vaapi_query_formats(), ff_set_common_formats(), ff_set_common_samplerates(), hwdownload_query_formats(), hwmap_query_formats(), hwupload_query_formats(), movie_query_formats(), overlay_qsv_query_formats(), query_formats(), query_formats_src(), and scale_vaapi_query_formats().

void ff_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 476 of file formats.c.

Referenced by ff_add_format(), ff_formats_ref(), ff_set_common_formats(), ff_set_common_samplerates(), free_link(), hwdownload_query_formats(), init(), pick_format(), and reduce_formats_on_filter().

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

   Before                                 After

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

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

Definition at line 505 of file formats.c.

Referenced by avfilter_insert_filter().