46 #define OFFSET(x) offsetof(ChannelSplitContext, x)
47 #define A AV_OPT_FLAG_AUDIO_PARAM
48 #define F AV_OPT_FLAG_FILTERING_PARAM
50 {
"channel_layout",
"Input channel layout.",
OFFSET(channel_layout_str),
AV_OPT_TYPE_STRING, { .str =
"stereo" }, .flags =
A|
F },
60 uint64_t channel_layout;
62 int all = 0, ret = 0, i;
172 .
name =
"channelsplit",
175 .priv_class = &channelsplit_class,
178 .
inputs = avfilter_af_channelsplit_inputs,
This structure describes decoded (raw) audio or video data.
Main libavfilter public API header.
enum AVMediaType type
AVFilterPad type.
struct AVFilterChannelLayouts * in_channel_layouts
Macro definitions for various function/variable attributes.
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
Return the number of channels in the channel layout.
const char * name
Pad name.
uint64_t av_get_channel_layout(const char *name)
Return a channel layout id that matches name, or 0 if no match is found.
AVFilterLink ** inputs
array of pointers to input links
int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
Send a frame of data to the next filter.
#define AVFILTER_FLAG_DYNAMIC_OUTPUTS
The number of the filter outputs is not determined just by AVFilter.outputs.
A filter pad used for either input or output.
AVFILTER_DEFINE_CLASS(channelsplit)
A link between two filters.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
unsigned nb_outputs
number of output pads
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
void * priv
private data for use by the filter
static const AVFilterPad avfilter_af_channelsplit_inputs[]
struct AVFilterChannelLayouts * out_channel_layouts
uint64_t channel_layout
Channel layout of the audio data.
common internal API header
int channels
number of audio channels, only used for audio.
audio channel layout utility functions
static const AVFilterPad inputs[]
AVFrame * av_frame_clone(const AVFrame *src)
Create a new frame that references the same data as src.
static const AVFilterPad outputs[]
A list of supported channel layouts.
static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
char * channel_layout_str
static const AVOption channelsplit_options[]
Describe the class of an AVClass context structure.
const char * name
Filter name.
static av_cold int init(AVFilterContext *ctx)
AVFilterLink ** outputs
array of pointers to output links
int av_get_channel_layout_channel_index(uint64_t channel_layout, uint64_t channel)
Get the index of a channel in channel_layout.
#define flags(name, subs,...)
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index)
Get the channel with the given index in channel_layout.
channel
Use these values when setting the channel map with ebur128_set_channel().
const char * av_get_channel_name(uint64_t channel)
Get the name of a given channel.
AVFilterContext * dst
dest filter
static int query_formats(AVFilterContext *ctx)
AVFilter ff_af_channelsplit
uint8_t ** extended_data
pointers to the data planes/channels.
static int ff_insert_outpad(AVFilterContext *f, unsigned index, AVFilterPad *p)
Insert a new output pad for the filter.
int av_get_extended_channel_layout(const char *name, uint64_t *channel_layout, int *nb_channels)
Return a channel layout and the number of channels based on the specified name.