mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
d0ad91c258
* qatar/master: os_support: Define SHUT_RD, SHUT_WR and SHUT_RDWR on OS/2 http: Add support for reading http POST reply headers http: Add http_shutdown() for ending writing of posts tcp: Allow signalling end of reading/writing avio: Add a function for signalling end of reading/writing lavfi: fix comment, audio is supported now. lavfi: fix incorrect comment. lavfi: remove avfilter_null_* from public API on next bump. lavfi: remove avfilter_default_* from public API on next bump. lavfi: deprecate default config_props() callback and refactor avfilter_config_links() avfiltergraph: smarter sample format selection. avconv: rename transcode_audio/video to decode_audio/video. asyncts: reset delta to 0 when it's not used. x86: lavc: use %if HAVE_AVX guards around AVX functions in yasm code. dwt: return errors from ff_slice_buffer_init() Conflicts: ffmpeg.c libavfilter/avfilter.c libavfilter/avfilter.h libavfilter/formats.c libavfilter/version.h libavfilter/vf_blackframe.c libavfilter/vf_drawtext.c libavfilter/vf_fade.c libavfilter/vf_format.c libavfilter/vf_showinfo.c libavfilter/video.c libavfilter/video.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
84 lines
3.0 KiB
C
84 lines
3.0 KiB
C
/*
|
|
* This file is part of FFMpeg.
|
|
*
|
|
* FFmpeg is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* FFmpeg is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with FFmpeg; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef AVFILTER_FORMATS_H
|
|
#define AVFILTER_FORMATS_H
|
|
|
|
#include "avfilter.h"
|
|
|
|
typedef struct AVFilterChannelLayouts {
|
|
uint64_t *channel_layouts; ///< list of channel layouts
|
|
int nb_channel_layouts; ///< number of channel layouts
|
|
|
|
unsigned refcount; ///< number of references to this list
|
|
struct AVFilterChannelLayouts ***refs; ///< references to this list
|
|
} AVFilterChannelLayouts;
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
AVFilterChannelLayouts *ff_merge_channel_layouts(AVFilterChannelLayouts *a,
|
|
AVFilterChannelLayouts *b);
|
|
AVFilterFormats *ff_merge_samplerates(AVFilterFormats *a,
|
|
AVFilterFormats *b);
|
|
|
|
/**
|
|
* Construct an empty AVFilterChannelLayouts/AVFilterFormats struct --
|
|
* representing any channel layout/sample rate.
|
|
*/
|
|
AVFilterChannelLayouts *ff_all_channel_layouts(void);
|
|
AVFilterFormats *ff_all_samplerates(void);
|
|
|
|
AVFilterChannelLayouts *avfilter_make_format64_list(const int64_t *fmts);
|
|
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
void ff_set_common_channel_layouts(AVFilterContext *ctx,
|
|
AVFilterChannelLayouts *layouts);
|
|
void ff_set_common_samplerates(AVFilterContext *ctx,
|
|
AVFilterFormats *samplerates);
|
|
|
|
int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout);
|
|
|
|
/**
|
|
* Add *ref as a new reference to f.
|
|
*/
|
|
void ff_channel_layouts_ref(AVFilterChannelLayouts *f,
|
|
AVFilterChannelLayouts **ref);
|
|
|
|
/**
|
|
* Remove a reference to a channel layouts list.
|
|
*/
|
|
void ff_channel_layouts_unref(AVFilterChannelLayouts **ref);
|
|
|
|
void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref,
|
|
AVFilterChannelLayouts **newref);
|
|
|
|
int ff_default_query_formats(AVFilterContext *ctx);
|
|
|
|
#endif // AVFILTER_FORMATS_H
|