290 "eng",
"fra",
"ger",
"ita",
"dut",
"sve",
"spa",
"dan",
"por",
"nor",
291 "heb",
"jpn",
"ara",
"fin",
"gre",
"ice",
"mlt",
"tur",
"hr ",
"chi",
292 "urd",
"hin",
"tha",
"kor",
"lit",
"pol",
"hun",
"est",
"lav",
"",
293 "fo ",
"",
"rus",
"chi",
"",
"iri",
"alb",
"ron",
"ces",
"slk",
294 "slv",
"yid",
"sr ",
"mac",
"bul",
"ukr",
"bel",
"uzb",
"kaz",
"aze",
296 "aze",
"arm",
"geo",
"mol",
"kir",
"tgk",
"tuk",
"mon",
"",
"pus",
297 "kur",
"kas",
"snd",
"tib",
"nep",
"san",
"mar",
"ben",
"asm",
"guj",
298 "pa ",
"ori",
"mal",
"kan",
"tam",
"tel",
"",
"bur",
"khm",
"lao",
300 "vie",
"ind",
"tgl",
"may",
"may",
"amh",
"tir",
"orm",
"som",
"swa",
302 "",
"run",
"",
"mlg",
"epo",
"",
"",
"",
"",
"",
304 "",
"",
"",
"",
"",
"",
"",
"",
"",
"",
305 "",
"",
"",
"",
"",
"",
"",
"",
"",
"",
306 "",
"",
"",
"",
"",
"",
"",
"",
"wel",
"baq",
307 "cat",
"lat",
"que",
"grn",
"aym",
"tat",
"uig",
"dzo",
"jav"
326 for (i = 0; i < 3; i++) {
343 if (code >= 0x400 && code != 0x7fff) {
344 for (i = 2; i >= 0; i--) {
345 to[i] = 0x60 + (code & 0x1f);
365 len = (len << 7) | (c & 0x7f);
377 av_dlog(fc,
"MPEG4 description: tag=0x%02x len=%d\n", *tag, len);
409 int object_type_id =
avio_r8(pb);
416 av_dlog(fc,
"esds object type id 0x%02x\n", object_type_id);
419 av_dlog(fc,
"Specific MPEG4 header len=%d\n", len);
420 if (!len || (uint64_t)len > (1<<30))
439 av_dlog(fc,
"mp4a config channels %d obj %d ext obj %d "
int ff_mov_iso639_to_lang(const char lang[4], int mp4)
static const AVCodecTag mp4_audio_types[]
void * av_mallocz(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id)
const AVCodecTag codec_movaudio_tags[]
#define FF_ARRAY_ELEMS(a)
unsigned int avio_rb16(AVIOContext *s)
mpeg audio layer common tables.
static const char mov_mdhd_language_map[][4]
unsigned int avio_rb32(AVIOContext *s)
const uint16_t avpriv_mpa_freq_tab[3]
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
enum CodecID ff_codec_get_id(const AVCodecTag *tags, unsigned int tag)
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
preferred ID for MPEG-1/2 video decoding
int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext *pb)
void av_free(void *ptr)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc(). ...
int ff_mp4_read_descr_len(AVIOContext *pb)
#define MP4DecSpecificDescrTag
const AVCodecTag ff_mp4_obj_type[]
const AVCodecTag ff_codec_movsubtitle_tags[]
int avio_r8(AVIOContext *s)
AVCodecContext * codec
codec context
unsigned int avio_rb24(AVIOContext *s)
static av_always_inline int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
internal header for RIFF based (de)muxers do NOT include this in end user applications ...
as in Berlin toast format
#define av_dlog(pctx,...)
av_dlog macros Useful to print debug messages that shouldn't get compiled in normally.
FAKE codec to indicate a MPEG-4 Systems stream (only used by libavformat)
int ff_mov_lang_to_iso639(unsigned code, char to[4])
int sample_rate
samples per second
#define FF_INPUT_BUFFER_PADDING_SIZE
Required number of additionally allocated bytes at the end of the input bitstream for decoding...
int ff_mp4_read_descr(AVFormatContext *fc, AVIOContext *pb, int *tag)
int avpriv_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf, int bit_size, int sync_extension)
Parse MPEG-4 systems extradata to retrieve audio configuration.
int channels
number of audio channels
#define MKTAG(a, b, c, d)
const AVCodecTag codec_movvideo_tags[]
preferred ID for decoding MPEG audio layer 1, 2 or 3