annotate matroska.h @ 6435:67433b0c29d5 libavformat

move h264 demuxer to its own file
author aurel
date Sun, 29 Aug 2010 21:28:51 +0000
parents 6f9d084d5888
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
1 /*
2142
3aa1f0f698de split some common code from the mkv demuxer that will be useful to the muxer
aurel
parents: 2023
diff changeset
2 * Matroska constants
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
3 * Copyright (c) 2003-2004 The ffmpeg Project
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
15 * Lesser General Public License for more details.
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
16 *
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
896
edbe5c3717f9 Update licensing information: The FSF changed postal address.
diego
parents: 887
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
20 */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
21
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3717
diff changeset
22 #ifndef AVFORMAT_MATROSKA_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3717
diff changeset
23 #define AVFORMAT_MATROSKA_H
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
24
3286
6f61c3b36632 Use full path for #includes from another directory.
diego
parents: 3279
diff changeset
25 #include "libavcodec/avcodec.h"
4618
5b9eddbee9c4 Add some basic metadata conversion tables for matroska and asf.
aurel
parents: 4496
diff changeset
26 #include "metadata.h"
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
27
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
28 /* EBML version supported */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
29 #define EBML_VERSION 1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
30
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
31 /* top-level master-IDs */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
32 #define EBML_ID_HEADER 0x1A45DFA3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
33
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
34 /* IDs in the HEADER master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
35 #define EBML_ID_EBMLVERSION 0x4286
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
36 #define EBML_ID_EBMLREADVERSION 0x42F7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
37 #define EBML_ID_EBMLMAXIDLENGTH 0x42F2
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
38 #define EBML_ID_EBMLMAXSIZELENGTH 0x42F3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
39 #define EBML_ID_DOCTYPE 0x4282
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
40 #define EBML_ID_DOCTYPEVERSION 0x4287
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
41 #define EBML_ID_DOCTYPEREADVERSION 0x4285
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
42
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
43 /* general EBML types */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
44 #define EBML_ID_VOID 0xEC
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
45 #define EBML_ID_CRC32 0xBF
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
46
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
47 /*
3694
191f342eb840 Fix small typo.
diego
parents: 3692
diff changeset
48 * Matroska element IDs, max. 32 bits
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
49 */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
50
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
51 /* toplevel segment */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
52 #define MATROSKA_ID_SEGMENT 0x18538067
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
53
3692
e8f67b6063c3 misc spelling/grammar fixes
diego
parents: 3687
diff changeset
54 /* Matroska top-level master IDs */
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
55 #define MATROSKA_ID_INFO 0x1549A966
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
56 #define MATROSKA_ID_TRACKS 0x1654AE6B
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
57 #define MATROSKA_ID_CUES 0x1C53BB6B
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
58 #define MATROSKA_ID_TAGS 0x1254C367
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
59 #define MATROSKA_ID_SEEKHEAD 0x114D9B74
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
60 #define MATROSKA_ID_ATTACHMENTS 0x1941A469
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
61 #define MATROSKA_ID_CLUSTER 0x1F43B675
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
62 #define MATROSKA_ID_CHAPTERS 0x1043A770
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
63
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
64 /* IDs in the info master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
65 #define MATROSKA_ID_TIMECODESCALE 0x2AD7B1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
66 #define MATROSKA_ID_DURATION 0x4489
1459
571b1b1c7984 Allow reading matroska title.
aurel
parents: 1458
diff changeset
67 #define MATROSKA_ID_TITLE 0x7BA9
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
68 #define MATROSKA_ID_WRITINGAPP 0x5741
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
69 #define MATROSKA_ID_MUXINGAPP 0x4D80
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
70 #define MATROSKA_ID_DATEUTC 0x4461
2288
1fdb025071d8 Add EBML ID for Segment UID
conrad
parents: 2142
diff changeset
71 #define MATROSKA_ID_SEGMENTUID 0x73A4
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
72
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
73 /* ID in the tracks master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
74 #define MATROSKA_ID_TRACKENTRY 0xAE
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
75
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
76 /* IDs in the trackentry master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
77 #define MATROSKA_ID_TRACKNUMBER 0xD7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
78 #define MATROSKA_ID_TRACKUID 0x73C5
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
79 #define MATROSKA_ID_TRACKTYPE 0x83
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
80 #define MATROSKA_ID_TRACKAUDIO 0xE1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
81 #define MATROSKA_ID_TRACKVIDEO 0xE0
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
82 #define MATROSKA_ID_CODECID 0x86
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
83 #define MATROSKA_ID_CODECPRIVATE 0x63A2
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
84 #define MATROSKA_ID_CODECNAME 0x258688
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
85 #define MATROSKA_ID_CODECINFOURL 0x3B4040
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
86 #define MATROSKA_ID_CODECDOWNLOADURL 0x26B240
3407
ffd297928ed8 matroskadec: silently discard some element ID that we don't care about
aurel
parents: 3315
diff changeset
87 #define MATROSKA_ID_CODECDECODEALL 0xAA
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
88 #define MATROSKA_ID_TRACKNAME 0x536E
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
89 #define MATROSKA_ID_TRACKLANGUAGE 0x22B59C
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
90 #define MATROSKA_ID_TRACKFLAGENABLED 0xB9
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
91 #define MATROSKA_ID_TRACKFLAGDEFAULT 0x88
3407
ffd297928ed8 matroskadec: silently discard some element ID that we don't care about
aurel
parents: 3315
diff changeset
92 #define MATROSKA_ID_TRACKFLAGFORCED 0x55AA
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
93 #define MATROSKA_ID_TRACKFLAGLACING 0x9C
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
94 #define MATROSKA_ID_TRACKMINCACHE 0x6DE7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
95 #define MATROSKA_ID_TRACKMAXCACHE 0x6DF8
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
96 #define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
97 #define MATROSKA_ID_TRACKCONTENTENCODINGS 0x6D80
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
98 #define MATROSKA_ID_TRACKCONTENTENCODING 0x6240
3408
da09478c97ce matroskadec: read TrackTimecodeScale and set timebase accordingly
aurel
parents: 3407
diff changeset
99 #define MATROSKA_ID_TRACKTIMECODESCALE 0x23314F
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
100 #define MATROSKA_ID_TRACKMAXBLKADDID 0x55EE
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
101
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
102 /* IDs in the trackvideo master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
103 #define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
104 #define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
105 #define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
106 #define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
107 #define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
108 #define MATROSKA_ID_VIDEOPIXELCROPB 0x54AA
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
109 #define MATROSKA_ID_VIDEOPIXELCROPT 0x54BB
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
110 #define MATROSKA_ID_VIDEOPIXELCROPL 0x54CC
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
111 #define MATROSKA_ID_VIDEOPIXELCROPR 0x54DD
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
112 #define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
113 #define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
114 #define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
115 #define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3
2805
888d5439eac6 colour --> color in variable names
diego
parents: 2793
diff changeset
116 #define MATROSKA_ID_VIDEOCOLORSPACE 0x2EB524
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
117
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
118 /* IDs in the trackaudio master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
119 #define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5
1467
24c082e20a6a add audio output sampling freqency reading in matroska
aurel
parents: 1465
diff changeset
120 #define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ 0x78B5
24c082e20a6a add audio output sampling freqency reading in matroska
aurel
parents: 1465
diff changeset
121
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
122 #define MATROSKA_ID_AUDIOBITDEPTH 0x6264
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
123 #define MATROSKA_ID_AUDIOCHANNELS 0x9F
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
124
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
125 /* IDs in the content encoding master */
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
126 #define MATROSKA_ID_ENCODINGORDER 0x5031
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
127 #define MATROSKA_ID_ENCODINGSCOPE 0x5032
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
128 #define MATROSKA_ID_ENCODINGTYPE 0x5033
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
129 #define MATROSKA_ID_ENCODINGCOMPRESSION 0x5034
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
130 #define MATROSKA_ID_ENCODINGCOMPALGO 0x4254
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
131 #define MATROSKA_ID_ENCODINGCOMPSETTINGS 0x4255
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
132
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
133 /* ID in the cues master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
134 #define MATROSKA_ID_POINTENTRY 0xBB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
135
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
136 /* IDs in the pointentry master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
137 #define MATROSKA_ID_CUETIME 0xB3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
138 #define MATROSKA_ID_CUETRACKPOSITION 0xB7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
139
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
140 /* IDs in the cuetrackposition master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
141 #define MATROSKA_ID_CUETRACK 0xF7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
142 #define MATROSKA_ID_CUECLUSTERPOSITION 0xF1
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
143 #define MATROSKA_ID_CUEBLOCKNUMBER 0x5378
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
144
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
145 /* IDs in the tags master */
3702
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
146 #define MATROSKA_ID_TAG 0x7373
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
147 #define MATROSKA_ID_SIMPLETAG 0x67C8
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
148 #define MATROSKA_ID_TAGNAME 0x45A3
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
149 #define MATROSKA_ID_TAGSTRING 0x4487
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
150 #define MATROSKA_ID_TAGLANG 0x447A
6113
6f9d084d5888 Fix the MATROSKA_ID_TAGDEFAULT to match the specification (instead of
reimar
parents: 4618
diff changeset
151 #define MATROSKA_ID_TAGDEFAULT 0x4484
6f9d084d5888 Fix the MATROSKA_ID_TAGDEFAULT to match the specification (instead of
reimar
parents: 4618
diff changeset
152 #define MATROSKA_ID_TAGDEFAULT_BUG 0x44B4
3702
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
153 #define MATROSKA_ID_TAGTARGETS 0x63C0
4496
4b63fdf6ecc3 matroskadec: add needed definitions forgotten in r17331
aurel
parents: 3852
diff changeset
154 #define MATROSKA_ID_TAGTARGETS_TYPE 0x63CA
4b63fdf6ecc3 matroskadec: add needed definitions forgotten in r17331
aurel
parents: 3852
diff changeset
155 #define MATROSKA_ID_TAGTARGETS_TYPEVALUE 0x68CA
4b63fdf6ecc3 matroskadec: add needed definitions forgotten in r17331
aurel
parents: 3852
diff changeset
156 #define MATROSKA_ID_TAGTARGETS_TRACKUID 0x63C5
4b63fdf6ecc3 matroskadec: add needed definitions forgotten in r17331
aurel
parents: 3852
diff changeset
157 #define MATROSKA_ID_TAGTARGETS_CHAPTERUID 0x63C4
4b63fdf6ecc3 matroskadec: add needed definitions forgotten in r17331
aurel
parents: 3852
diff changeset
158 #define MATROSKA_ID_TAGTARGETS_ATTACHUID 0x63C6
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
159
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
160 /* IDs in the seekhead master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
161 #define MATROSKA_ID_SEEKENTRY 0x4DBB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
162
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
163 /* IDs in the seekpoint master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
164 #define MATROSKA_ID_SEEKID 0x53AB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
165 #define MATROSKA_ID_SEEKPOSITION 0x53AC
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
166
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
167 /* IDs in the cluster master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
168 #define MATROSKA_ID_CLUSTERTIMECODE 0xE7
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
169 #define MATROSKA_ID_CLUSTERPOSITION 0xA7
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
170 #define MATROSKA_ID_CLUSTERPREVSIZE 0xAB
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
171 #define MATROSKA_ID_BLOCKGROUP 0xA0
1831
bdca904db5e5 add support for simple blocks (ie. matroska v2)
aurel
parents: 1830
diff changeset
172 #define MATROSKA_ID_SIMPLEBLOCK 0xA3
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
173
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
174 /* IDs in the blockgroup master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
175 #define MATROSKA_ID_BLOCK 0xA1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
176 #define MATROSKA_ID_BLOCKDURATION 0x9B
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
177 #define MATROSKA_ID_BLOCKREFERENCE 0xFB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
178
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
179 /* IDs in the attachments master */
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
180 #define MATROSKA_ID_ATTACHEDFILE 0x61A7
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
181 #define MATROSKA_ID_FILEDESC 0x467E
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
182 #define MATROSKA_ID_FILENAME 0x466E
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
183 #define MATROSKA_ID_FILEMIMETYPE 0x4660
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
184 #define MATROSKA_ID_FILEDATA 0x465C
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
185 #define MATROSKA_ID_FILEUID 0x46AE
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
186
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
187 /* IDs in the chapters master */
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
188 #define MATROSKA_ID_EDITIONENTRY 0x45B9
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
189 #define MATROSKA_ID_CHAPTERATOM 0xB6
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
190 #define MATROSKA_ID_CHAPTERTIMESTART 0x91
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
191 #define MATROSKA_ID_CHAPTERTIMEEND 0x92
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
192 #define MATROSKA_ID_CHAPTERDISPLAY 0x80
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
193 #define MATROSKA_ID_CHAPSTRING 0x85
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
194 #define MATROSKA_ID_CHAPLANG 0x437C
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
195 #define MATROSKA_ID_EDITIONUID 0x45BC
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
196 #define MATROSKA_ID_EDITIONFLAGHIDDEN 0x45BD
3407
ffd297928ed8 matroskadec: silently discard some element ID that we don't care about
aurel
parents: 3315
diff changeset
197 #define MATROSKA_ID_EDITIONFLAGDEFAULT 0x45DB
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
198 #define MATROSKA_ID_EDITIONFLAGORDERED 0x45DD
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
199 #define MATROSKA_ID_CHAPTERUID 0x73C4
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
200 #define MATROSKA_ID_CHAPTERFLAGHIDDEN 0x98
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
201 #define MATROSKA_ID_CHAPTERFLAGENABLED 0x4598
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
202 #define MATROSKA_ID_CHAPTERPHYSEQUIV 0x63C3
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
203
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
204 typedef enum {
3290
fa502e142b44 Add MATROSKA_TRACK_TYPE_NONE.
cehoyos
parents: 3286
diff changeset
205 MATROSKA_TRACK_TYPE_NONE = 0x0,
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
206 MATROSKA_TRACK_TYPE_VIDEO = 0x1,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
207 MATROSKA_TRACK_TYPE_AUDIO = 0x2,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
208 MATROSKA_TRACK_TYPE_COMPLEX = 0x3,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
209 MATROSKA_TRACK_TYPE_LOGO = 0x10,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
210 MATROSKA_TRACK_TYPE_SUBTITLE = 0x11,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
211 MATROSKA_TRACK_TYPE_CONTROL = 0x20,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
212 } MatroskaTrackType;
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
213
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
214 typedef enum {
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
215 MATROSKA_TRACK_ENCODING_COMP_ZLIB = 0,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
216 MATROSKA_TRACK_ENCODING_COMP_BZLIB = 1,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
217 MATROSKA_TRACK_ENCODING_COMP_LZO = 2,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
218 MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP = 3,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
219 } MatroskaTrackEncodingCompAlgo;
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
220
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
221 /*
3692
e8f67b6063c3 misc spelling/grammar fixes
diego
parents: 3687
diff changeset
222 * Matroska Codec IDs, strings
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
223 */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
224
1024
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
225 typedef struct CodecTags{
3602
70edc1aeaf68 matroska: add support for A_QUICKTIME/QDM2 codec
aurel
parents: 3477
diff changeset
226 char str[20];
1024
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
227 enum CodecID id;
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
228 }CodecTags;
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
229
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
230 typedef struct CodecMime{
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
231 char str[32];
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
232 enum CodecID id;
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
233 }CodecMime;
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
234
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
235 /* max. depth in the EBML tree structure */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
236 #define EBML_MAX_DEPTH 16
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
237
2793
d5842afe8539 Make ff_mkv_codec_tags array const, it is never written.
reimar
parents: 2654
diff changeset
238 extern const CodecTags ff_mkv_codec_tags[];
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
239 extern const CodecMime ff_mkv_mime_tags[];
4618
5b9eddbee9c4 Add some basic metadata conversion tables for matroska and asf.
aurel
parents: 4496
diff changeset
240 extern const AVMetadataConv ff_mkv_metadata_conv[];
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
241
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3717
diff changeset
242 #endif /* AVFORMAT_MATROSKA_H */