00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AVFILTER_FORMATS_H
00020 #define AVFILTER_FORMATS_H
00021
00022 #include "avfilter.h"
00023
00064 struct AVFilterFormats {
00065 unsigned format_count;
00066 int *formats;
00067
00068 unsigned refcount;
00069 struct AVFilterFormats ***refs;
00070 };
00071
00072 typedef struct AVFilterChannelLayouts {
00073 uint64_t *channel_layouts;
00074 int nb_channel_layouts;
00075
00076 unsigned refcount;
00077 struct AVFilterChannelLayouts ***refs;
00078 } AVFilterChannelLayouts;
00079
00088 AVFilterChannelLayouts *ff_merge_channel_layouts(AVFilterChannelLayouts *a,
00089 AVFilterChannelLayouts *b);
00090 AVFilterFormats *ff_merge_samplerates(AVFilterFormats *a,
00091 AVFilterFormats *b);
00092
00097 AVFilterChannelLayouts *ff_all_channel_layouts(void);
00098 AVFilterFormats *ff_all_samplerates(void);
00099
00100 AVFilterChannelLayouts *avfilter_make_format64_list(const int64_t *fmts);
00101
00102
00108 void ff_set_common_channel_layouts(AVFilterContext *ctx,
00109 AVFilterChannelLayouts *layouts);
00110 void ff_set_common_samplerates(AVFilterContext *ctx,
00111 AVFilterFormats *samplerates);
00112
00118 void ff_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats);
00119
00120 int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout);
00121
00125 void ff_channel_layouts_ref(AVFilterChannelLayouts *f,
00126 AVFilterChannelLayouts **ref);
00127
00131 void ff_channel_layouts_unref(AVFilterChannelLayouts **ref);
00132
00133 void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref,
00134 AVFilterChannelLayouts **newref);
00135
00136 int ff_default_query_formats(AVFilterContext *ctx);
00137
00138
00146 AVFilterFormats *ff_make_format_list(const int *fmts);
00147
00156 int ff_add_format(AVFilterFormats **avff, int64_t fmt);
00157
00161 AVFilterFormats *ff_all_formats(enum AVMediaType type);
00162
00166 AVFilterFormats *ff_planar_sample_fmts(void);
00167
00176 AVFilterFormats *ff_merge_formats(AVFilterFormats *a, AVFilterFormats *b);
00177
00190 void ff_formats_ref(AVFilterFormats *formats, AVFilterFormats **ref);
00191
00207 void ff_formats_unref(AVFilterFormats **ref);
00208
00222 void ff_formats_changeref(AVFilterFormats **oldref, AVFilterFormats **newref);
00223
00224 #endif