431 static const struct {
464 return bitmap < 0x40000 ? bitmap : 0;
467 channels = tag & 0xFFFF;
470 layout_map = mov_ch_layout_map[channels];
473 for (i = 0; layout_map[i].
tag != 0; i++) {
474 if (layout_map[i].tag == tag)
477 return layout_map[i].
layout;
485 return 1
U << (label - 1);
494 uint64_t channel_layout,
517 layout_map = mov_ch_layout_map[channels];
520 for (i = 0; layouts[i] != 0; i++) {
521 if ((layouts[i] & 0xFFFF) != channels)
523 for (j = 0; layout_map[j].
tag != 0; j++) {
524 if (layout_map[j].tag == layouts[i] &&
525 layout_map[j].
layout == channel_layout)
528 if (layout_map[j].tag)
535 if (tag == 0 && channel_layout > 0 && channel_layout < 0x40000) {
537 *bitmap = (uint32_t)channel_layout;
549 uint32_t layout_tag, bitmap, num_descr, label_mask;
559 av_dlog(s,
"chan: layout=%u bitmap=%u num_descr=%u\n",
560 layout_tag, bitmap, num_descr);
562 if (size < 12ULL + num_descr * 20ULL)
566 for (i = 0; i < num_descr; i++) {
573 if (layout_tag == 0) {
575 if (mask_incr == 0) {
579 label_mask |= mask_incr;
582 if (layout_tag == 0) {
static const struct MovChannelLayoutMap mov_ch_layout_map_8ch[]
#define AV_CH_LAYOUT_7POINT1
#define AV_CH_LAYOUT_4POINT1
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define AV_CH_TOP_FRONT_RIGHT
#define AV_CH_LAYOUT_6POINT1
#define AV_CH_LAYOUT_6POINT0
#define AV_CH_LAYOUT_SURROUND
MovChannelLayoutTag
mov 'chan' tag reading/writing.
#define AV_CH_TOP_FRONT_LEFT
#define AV_CH_TOP_FRONT_CENTER
static const struct MovChannelLayoutMap mov_ch_layout_map_2ch[]
static const struct MovChannelLayoutMap mov_ch_layout_map_6ch[]
#define AV_CH_LAYOUT_7POINT0_FRONT
uint64_t ff_mov_get_channel_layout(uint32_t tag, uint32_t bitmap)
mov 'chan' tag reading/writing.
#define AV_CH_LAYOUT_4POINT0
#define AV_CH_LAYOUT_7POINT0
static const struct @109 mov_codec_ch_layouts[]
av_dlog(ac->avr,"%d samples - audio_convert: %s to %s (%s)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt), use_generic?ac->func_descr_generic:ac->func_descr)
#define AV_CH_SURROUND_DIRECT_RIGHT
#define AV_CH_LAYOUT_STEREO
#define AV_CH_LAYOUT_5POINT0
static const struct MovChannelLayoutMap * mov_ch_layout_map[]
unsigned int avio_rb32(AVIOContext *s)
#define AV_CH_TOP_BACK_LEFT
#define AV_CH_LAYOUT_HEXAGONAL
#define AV_CH_LOW_FREQUENCY
static enum MovChannelLayoutTag mov_ch_layouts_wav[]
static const struct MovChannelLayoutMap mov_ch_layout_map_9ch[]
#define AV_CH_LAYOUT_5POINT1
AVCodecID
Identify the syntax and semantics of the bitstream.
unsigned int avio_rl32(AVIOContext *s)
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
Return the number of channels in the channel layout.
#define AV_CH_LAYOUT_QUAD
static const struct MovChannelLayoutMap mov_ch_layout_map_3ch[]
uint64_t channel_layout
Audio channel layout.
AVCodecContext * codec
Codec context associated with this stream.
#define AV_CH_LAYOUT_6POINT0_FRONT
#define AV_CH_STEREO_RIGHT
See AV_CH_STEREO_LEFT.
audio channel layout utility functions
#define AV_CH_LAYOUT_STEREO_DOWNMIX
#define AV_CH_LAYOUT_3POINT1
static enum MovChannelLayoutTag mov_ch_layouts_alac[]
#define AV_CH_FRONT_LEFT_OF_CENTER
#define AV_CH_LAYOUT_5POINT1_BACK
static enum MovChannelLayoutTag mov_ch_layouts_ac3[]
int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, int64_t size)
Read 'chan' tag from the input stream.
#define AV_CH_LAYOUT_6POINT1_BACK
#define AV_CH_FRONT_RIGHT_OF_CENTER
static const struct MovChannelLayoutMap mov_ch_layout_map_4ch[]
Libavcodec external API header.
static const struct MovChannelLayoutMap mov_ch_layout_map_1ch[]
static enum MovChannelLayoutTag mov_ch_layouts_aac[]
static uint32_t mov_get_channel_label(uint32_t label)
#define AV_CH_TOP_BACK_RIGHT
static const struct MovChannelLayoutMap mov_ch_layout_map_misc[]
#define AV_CH_LAYOUT_5POINT0_BACK
#define AV_CH_LAYOUT_OCTAGONAL
enum MovChannelLayoutTag * layouts
#define AV_CH_BACK_CENTER
#define AV_CH_LAYOUT_7POINT1_WIDE
static const struct MovChannelLayoutMap mov_ch_layout_map_7ch[]
#define AV_CH_LAYOUT_2POINT1
static const struct MovChannelLayoutMap mov_ch_layout_map_5ch[]
#define AV_CH_SURROUND_DIRECT_LEFT
#define AV_CH_LAYOUT_6POINT1_FRONT
uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, uint64_t channel_layout, uint32_t *bitmap)
Get the channel layout tag for the specified codec id and channel layout.
#define AV_CH_LAYOUT_MONO
#define AV_CH_STEREO_LEFT
Stereo downmix.