#include <assert.h>
#include <stdint.h>
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/mem.h"
#include "libavcodec/codec_id.h"
#include "mov_chan.h"
enum { … };
enum { … };
struct MovChannelLayoutMap { … };
#define TAG(_tag, _cnt) …
#define ID(_0) …
#define CHLIST01(_tag, _1) …
#define CHLIST02(_tag, _1, _2) …
#define CHLIST03(_tag, _1, _2, _3) …
#define CHLIST04(_tag, _1, _2, _3, _4) …
#define CHLIST05(_tag, _1, _2, _3, _4, _5) …
#define CHLIST06(_tag, _1, _2, _3, _4, _5, _6) …
#define CHLIST07(_tag, _1, _2, _3, _4, _5, _6, _7) …
#define CHLIST08(_tag, _1, _2, _3, _4, _5, _6, _7, _8) …
#define CHLIST09(_tag, _1, _2, _3, _4, _5, _6, _7, _8, _9) …
#define CHLIST16(_tag, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) …
#define CHLIST21(_tag, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) …
#define CHLIST24(_tag, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) …
#define MOV_CH_LAYOUT_MAP …\
#define CHLIST(_tag, _cnt, ...) …
MOV_CH_LAYOUT_MAP
#undef CHLIST
#define CHLIST(_tag, _cnt, ...) …
static const struct MovChannelLayoutMap mov_ch_layout_map[] = …;
#undef ID
#undef TAG
#define ID(_0) …
#define TAG(_tag, _cnt) …
static const struct MovChannelLayoutMap iso_ch_layout_map[] = …;
static const enum MovChannelLayoutTag mov_ch_layouts_aac[] = …;
static const enum MovChannelLayoutTag mov_ch_layouts_ac3[] = …;
static const enum MovChannelLayoutTag mov_ch_layouts_alac[] = …;
static const enum MovChannelLayoutTag mov_ch_layouts_wav[] = …;
static const struct { … } mov_codec_ch_layouts[] = …;
static const struct MovChannelLayoutMap* find_layout_map(uint32_t tag, const struct MovChannelLayoutMap *map)
{ … }
static int mov_get_channel_layout(AVChannelLayout *ch_layout, uint32_t tag, uint64_t omitted_channel_map, const struct MovChannelLayoutMap *map)
{ … }
static enum AVChannel mov_get_channel_id(uint32_t label)
{ … }
static uint32_t mov_get_channel_label(enum AVChannel channel)
{ … }
static int is_layout_valid_for_tag(const AVChannelLayout *ch_layout, uint32_t tag, const struct MovChannelLayoutMap *map)
{ … }
int ff_mov_get_channel_layout_tag(const AVCodecParameters *par,
uint32_t *layout,
uint32_t *bitmap,
uint32_t **pchannel_desc)
{ … }
int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st,
int64_t size)
{ … }
static const enum AVChannel iso_channel_position[] = …;
int ff_mov_get_channel_config_from_layout(const AVChannelLayout *layout, int *config)
{ … }
int ff_mov_get_channel_layout_from_config(int config, AVChannelLayout *layout, uint64_t omitted_channel_map)
{ … }
int ff_mov_get_channel_positions_from_layout(const AVChannelLayout *layout,
uint8_t *position, int position_num)
{ … }
int ff_mov_read_chnl(AVFormatContext *s, AVIOContext *pb, AVStream *st)
{ … }