Go to the documentation of this file.
48 #define MOV_CH_LAYOUT_UNKNOWN 0xFFFF0000
432 static const struct {
472 return bitmap < 0x40000 ? bitmap : 0;
481 for (
i = 0; layout_map[
i].
tag != 0;
i++) {
493 return 1
U << (label - 1);
502 uint64_t channel_layout,
531 for (j = 0; layout_map[j].
tag != 0; j++) {
533 layout_map[j].
layout == channel_layout)
536 if (layout_map[j].
tag)
543 if (
tag == 0 && channel_layout > 0 && channel_layout < 0x40000) {
545 *bitmap = (uint32_t)channel_layout;
557 uint32_t layout_tag, bitmap, num_descr, label_mask;
568 "bitmap=%"PRIu32
" num_descr=%"PRIu32
"\n",
569 layout_tag, bitmap, num_descr);
571 if (
size < 12ULL + num_descr * 20ULL)
575 for (
i = 0;
i < num_descr;
i++) {
579 "reached EOF while reading channel layout\n");
588 if (layout_tag == 0) {
590 if (mask_incr == 0) {
594 label_mask |= mask_incr;
597 if (layout_tag == 0) {
@ MOV_CH_LAYOUT_MPEG_4_0_B
#define AV_CH_LAYOUT_7POINT0
#define AV_CH_LAYOUT_6POINT1
@ MOV_CH_LAYOUT_AAC_OCTAGONAL
@ MOV_CH_LAYOUT_MPEG_5_0_D
#define AV_CH_LAYOUT_5POINT0_BACK
@ MOV_CH_LAYOUT_MPEG_7_1_B
@ MOV_CH_LAYOUT_MPEG_3_0_B
#define AV_CH_TOP_FRONT_CENTER
@ MOV_CH_LAYOUT_MPEG_5_0_B
enum MovChannelLayoutTag * layouts
@ MOV_CH_LAYOUT_DTS_6_1_A
#define AV_CH_LAYOUT_MONO
@ MOV_CH_LAYOUT_AC3_2_1_1
#define AV_CH_TOP_FRONT_RIGHT
@ MOV_CH_LAYOUT_DTS_6_0_B
#define AV_CH_LAYOUT_HEXAGONAL
@ MOV_CH_LAYOUT_DISCRETEINORDER
#define AV_CH_LAYOUT_6POINT0_FRONT
#define AV_CH_LAYOUT_6POINT1_FRONT
#define AV_CH_TOP_FRONT_LEFT
@ MOV_CH_LAYOUT_EAC3_7_1_H
#define AV_CH_SURROUND_DIRECT_RIGHT
#define AV_CH_TOP_BACK_LEFT
MovChannelLayoutTag
mov 'chan' tag reading/writing.
#define AV_CH_LAYOUT_6POINT0
@ MOV_CH_LAYOUT_TMH_10_2_FULL
@ MOV_CH_LAYOUT_STEREOHEADPHONES
@ MOV_CH_LAYOUT_MPEG_7_1_A
static uint64_t mov_get_channel_layout(uint32_t tag, uint32_t bitmap)
Get the channel layout for the specified channel layout tag.
static enum MovChannelLayoutTag mov_ch_layouts_alac[]
@ MOV_CH_LAYOUT_MPEG_4_0_A
#define AV_CH_LAYOUT_STEREO
#define AV_CH_LAYOUT_QUAD
@ MOV_CH_LAYOUT_MPEG_7_1_C
@ MOV_CH_LAYOUT_EAC3_7_1_B
unsigned int avio_rb32(AVIOContext *s)
#define AV_LOG_TRACE
Extremely verbose debugging, useful for libav* development.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define AV_CH_LOW_FREQUENCY
@ MOV_CH_LAYOUT_DTS_8_0_A
@ MOV_CH_LAYOUT_DTS_6_1_B
static const struct MovChannelLayoutMap mov_ch_layout_map_7ch[]
@ MOV_CH_LAYOUT_EAC3_7_1_D
#define AV_CH_LAYOUT_7POINT0_FRONT
#define AV_CH_LAYOUT_STEREO_DOWNMIX
@ MOV_CH_LAYOUT_MPEG_5_0_A
#define AV_CH_STEREO_RIGHT
See AV_CH_STEREO_LEFT.
AVCodecParameters * codecpar
Codec parameters associated with this stream.
@ MOV_CH_LAYOUT_EAC3_6_1_B
@ MOV_CH_LAYOUT_USE_BITMAP
static const struct MovChannelLayoutMap mov_ch_layout_map_1ch[]
@ MOV_CH_LAYOUT_MPEG_6_1_A
@ MOV_CH_LAYOUT_OCTAGONAL
static const struct @266 mov_codec_ch_layouts[]
#define AV_CH_LAYOUT_5POINT1
#define AV_CH_FRONT_LEFT_OF_CENTER
#define MOV_CH_LAYOUT_UNKNOWN
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
Return the number of channels in the channel layout.
AVCodecID
Identify the syntax and semantics of the bitstream.
unsigned int avio_rl32(AVIOContext *s)
@ MOV_CH_LAYOUT_EAC3_7_1_A
@ MOV_CH_LAYOUT_DTS_8_1_B
@ MOV_CH_LAYOUT_DTS_6_0_A
@ MOV_CH_LAYOUT_MATRIXSTEREO
@ MOV_CH_LAYOUT_PENTAGONAL
@ MOV_CH_LAYOUT_EAC3_7_0_A
@ MOV_CH_LAYOUT_HEXAGONAL
@ MOV_CH_LAYOUT_EAC3_7_1_F
@ MOV_CH_LAYOUT_AMBISONIC_B_FORMAT
@ MOV_CH_LAYOUT_EAC3_7_1_E
static uint32_t mov_get_channel_label(uint32_t label)
uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, uint64_t channel_layout, uint32_t *bitmap)
mov 'chan' tag reading/writing.
#define AV_CH_LAYOUT_5POINT1_BACK
#define AV_CH_TOP_BACK_RIGHT
#define AV_CH_FRONT_RIGHT_OF_CENTER
@ MOV_CH_LAYOUT_QUADRAPHONIC
@ MOV_CH_LAYOUT_DTS_6_1_C
#define AV_CH_LAYOUT_3POINT1
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel layout
static const struct MovChannelLayoutMap mov_ch_layout_map_5ch[]
#define AV_CH_LAYOUT_OCTAGONAL
#define AV_CH_LAYOUT_5POINT0
@ MOV_CH_LAYOUT_EAC3_7_1_G
static const struct MovChannelLayoutMap mov_ch_layout_map_9ch[]
@ MOV_CH_LAYOUT_AC3_1_0_1
static const struct MovChannelLayoutMap mov_ch_layout_map_8ch[]
#define i(width, name, range_min, range_max)
@ MOV_CH_LAYOUT_MPEG_5_1_C
#define AV_CH_LAYOUT_2POINT1
@ MOV_CH_LAYOUT_MPEG_5_1_A
@ MOV_CH_LAYOUT_EAC3_7_1_C
@ MOV_CH_LAYOUT_DTS_6_0_C
@ MOV_CH_LAYOUT_EAC3_6_1_C
#define AV_CH_LAYOUT_7POINT1
#define AV_CH_LAYOUT_4POINT1
#define AV_CH_BACK_CENTER
@ MOV_CH_LAYOUT_EAC3_6_1_A
#define AV_CH_LAYOUT_7POINT1_WIDE
@ MOV_CH_LAYOUT_AC3_3_1_1
static const struct MovChannelLayoutMap *const mov_ch_layout_map[]
@ MOV_CH_LAYOUT_AUDIOUNIT_7_0_FRONT
#define AV_CH_LAYOUT_SURROUND
@ MOV_CH_LAYOUT_MPEG_5_1_B
@ MOV_CH_LAYOUT_TMH_10_2_STD
static const struct MovChannelLayoutMap mov_ch_layout_map_6ch[]
@ MOV_CH_LAYOUT_MPEG_5_1_D
@ MOV_CH_LAYOUT_DTS_8_1_A
@ MOV_CH_LAYOUT_USE_DESCRIPTIONS
int eof_reached
true if was unable to read due to error or eof
#define AV_CH_SURROUND_DIRECT_LEFT
int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
static enum MovChannelLayoutTag mov_ch_layouts_aac[]
@ MOV_CH_LAYOUT_AC3_3_0_1
@ MOV_CH_LAYOUT_DTS_8_0_B
static const struct MovChannelLayoutMap mov_ch_layout_map_2ch[]
@ MOV_CH_LAYOUT_AUDIOUNIT_6_0
@ MOV_CH_LAYOUT_MPEG_3_0_A
uint64_t channel_layout
Audio only.
@ MOV_CH_LAYOUT_DTS_6_1_D
#define AV_CH_LAYOUT_4POINT0
@ MOV_CH_LAYOUT_MPEG_5_0_C
#define AV_CH_LAYOUT_6POINT1_BACK
static const struct MovChannelLayoutMap mov_ch_layout_map_3ch[]
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
@ MOV_CH_LAYOUT_EMAGIC_DEFAULT_7_1
@ MOV_CH_LAYOUT_EAC3_6_0_A
static const struct MovChannelLayoutMap mov_ch_layout_map_misc[]
#define AV_CH_STEREO_LEFT
Stereo downmix.
@ MOV_CH_LAYOUT_AUDIOUNIT_7_0
static enum MovChannelLayoutTag mov_ch_layouts_wav[]
static enum MovChannelLayoutTag mov_ch_layouts_ac3[]
@ MOV_CH_LAYOUT_SMPTE_DTV
static const struct MovChannelLayoutMap mov_ch_layout_map_4ch[]
int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, int64_t size)
Read 'chan' tag from the input stream.