music-metadata 7.12.2 → 7.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/LICENSE.txt +9 -9
  2. package/README.md +434 -434
  3. package/lib/ParserFactory.d.ts +48 -48
  4. package/lib/ParserFactory.js +252 -252
  5. package/lib/aiff/AiffParser.d.ts +14 -14
  6. package/lib/aiff/AiffParser.js +84 -84
  7. package/lib/aiff/AiffToken.d.ts +22 -22
  8. package/lib/aiff/AiffToken.js +43 -43
  9. package/lib/apev2/APEv2Parser.d.ts +30 -30
  10. package/lib/apev2/APEv2Parser.js +164 -164
  11. package/lib/apev2/APEv2TagMapper.d.ts +4 -4
  12. package/lib/apev2/APEv2TagMapper.js +86 -86
  13. package/lib/apev2/APEv2Token.d.ts +100 -100
  14. package/lib/apev2/APEv2Token.js +126 -126
  15. package/lib/asf/AsfObject.d.ts +319 -319
  16. package/lib/asf/AsfObject.js +381 -381
  17. package/lib/asf/AsfParser.d.ts +17 -17
  18. package/lib/asf/AsfParser.js +135 -135
  19. package/lib/asf/AsfTagMapper.d.ts +7 -7
  20. package/lib/asf/AsfTagMapper.js +95 -95
  21. package/lib/asf/AsfUtil.d.ts +13 -13
  22. package/lib/asf/AsfUtil.js +38 -38
  23. package/lib/asf/GUID.d.ts +84 -84
  24. package/lib/asf/GUID.js +121 -121
  25. package/lib/common/BasicParser.d.ts +17 -17
  26. package/lib/common/BasicParser.js +18 -18
  27. package/lib/common/CaseInsensitiveTagMap.d.ts +10 -10
  28. package/lib/common/CaseInsensitiveTagMap.js +21 -21
  29. package/lib/common/CombinedTagMapper.d.ts +19 -19
  30. package/lib/common/CombinedTagMapper.js +51 -51
  31. package/lib/common/FourCC.d.ts +6 -6
  32. package/lib/common/FourCC.js +28 -28
  33. package/lib/common/GenericTagMapper.d.ts +51 -51
  34. package/lib/common/GenericTagMapper.js +55 -55
  35. package/lib/common/GenericTagTypes.d.ts +33 -33
  36. package/lib/common/GenericTagTypes.js +131 -131
  37. package/lib/common/MetadataCollector.d.ts +76 -76
  38. package/lib/common/MetadataCollector.js +275 -275
  39. package/lib/common/RandomFileReader.d.ts +22 -22
  40. package/lib/common/RandomFileReader.js +34 -34
  41. package/lib/common/RandomUint8ArrayReader.d.ts +18 -18
  42. package/lib/common/RandomUint8ArrayReader.js +25 -25
  43. package/lib/common/Util.d.ts +57 -57
  44. package/lib/common/Util.js +157 -157
  45. package/lib/core.d.ts +48 -48
  46. package/lib/core.js +90 -90
  47. package/lib/dsdiff/DsdiffParser.d.ts +14 -14
  48. package/lib/dsdiff/DsdiffParser.js +143 -143
  49. package/lib/dsdiff/DsdiffToken.d.ts +9 -9
  50. package/lib/dsdiff/DsdiffToken.js +21 -21
  51. package/lib/dsf/DsfChunk.d.ts +86 -86
  52. package/lib/dsf/DsfChunk.js +54 -54
  53. package/lib/dsf/DsfParser.d.ts +9 -9
  54. package/lib/dsf/DsfParser.js +56 -56
  55. package/lib/flac/FlacParser.d.ts +28 -28
  56. package/lib/flac/FlacParser.js +175 -175
  57. package/lib/id3v1/ID3v1Parser.d.ts +13 -13
  58. package/lib/id3v1/ID3v1Parser.js +134 -134
  59. package/lib/id3v1/ID3v1TagMap.d.ts +4 -4
  60. package/lib/id3v1/ID3v1TagMap.js +22 -22
  61. package/lib/id3v2/AbstractID3Parser.d.ts +17 -17
  62. package/lib/id3v2/AbstractID3Parser.js +60 -60
  63. package/lib/id3v2/FrameParser.d.ts +31 -31
  64. package/lib/id3v2/FrameParser.js +329 -329
  65. package/lib/id3v2/ID3v22TagMapper.d.ts +9 -9
  66. package/lib/id3v2/ID3v22TagMapper.js +55 -55
  67. package/lib/id3v2/ID3v24TagMapper.d.ts +14 -14
  68. package/lib/id3v2/ID3v24TagMapper.js +193 -193
  69. package/lib/id3v2/ID3v2Parser.d.ts +28 -28
  70. package/lib/id3v2/ID3v2Parser.js +182 -182
  71. package/lib/id3v2/ID3v2Token.d.ts +73 -73
  72. package/lib/id3v2/ID3v2Token.js +106 -106
  73. package/lib/iff/index.d.ts +33 -33
  74. package/lib/iff/index.js +19 -19
  75. package/lib/index.d.ts +45 -45
  76. package/lib/index.js +74 -74
  77. package/lib/lyrics3/Lyrics3.d.ts +3 -3
  78. package/lib/lyrics3/Lyrics3.js +17 -17
  79. package/lib/matroska/MatroskaDtd.d.ts +8 -8
  80. package/lib/matroska/MatroskaDtd.js +279 -279
  81. package/lib/matroska/MatroskaParser.d.ts +37 -37
  82. package/lib/matroska/MatroskaParser.js +235 -235
  83. package/lib/matroska/MatroskaTagMapper.d.ts +4 -4
  84. package/lib/matroska/MatroskaTagMapper.js +35 -35
  85. package/lib/matroska/types.d.ts +175 -175
  86. package/lib/matroska/types.js +32 -32
  87. package/lib/mp4/Atom.d.ts +16 -16
  88. package/lib/mp4/Atom.js +70 -70
  89. package/lib/mp4/AtomToken.d.ts +395 -395
  90. package/lib/mp4/AtomToken.js +406 -406
  91. package/lib/mp4/MP4Parser.d.ts +30 -30
  92. package/lib/mp4/MP4Parser.js +511 -511
  93. package/lib/mp4/MP4TagMapper.d.ts +5 -5
  94. package/lib/mp4/MP4TagMapper.js +115 -115
  95. package/lib/mpeg/ExtendedLameHeader.d.ts +27 -27
  96. package/lib/mpeg/ExtendedLameHeader.js +31 -31
  97. package/lib/mpeg/MpegParser.d.ts +49 -49
  98. package/lib/mpeg/MpegParser.js +524 -524
  99. package/lib/mpeg/ReplayGainDataFormat.d.ts +55 -55
  100. package/lib/mpeg/ReplayGainDataFormat.js +69 -69
  101. package/lib/mpeg/XingTag.d.ts +45 -45
  102. package/lib/mpeg/XingTag.js +69 -69
  103. package/lib/musepack/index.d.ts +5 -5
  104. package/lib/musepack/index.js +32 -32
  105. package/lib/musepack/sv7/BitReader.d.ts +13 -13
  106. package/lib/musepack/sv7/BitReader.js +54 -54
  107. package/lib/musepack/sv7/MpcSv7Parser.d.ts +8 -8
  108. package/lib/musepack/sv7/MpcSv7Parser.js +46 -46
  109. package/lib/musepack/sv7/StreamVersion7.d.ts +28 -28
  110. package/lib/musepack/sv7/StreamVersion7.js +41 -41
  111. package/lib/musepack/sv8/MpcSv8Parser.d.ts +6 -6
  112. package/lib/musepack/sv8/MpcSv8Parser.js +55 -55
  113. package/lib/musepack/sv8/StreamVersion8.d.ts +40 -40
  114. package/lib/musepack/sv8/StreamVersion8.js +80 -80
  115. package/lib/ogg/Ogg.d.ts +72 -72
  116. package/lib/ogg/Ogg.js +2 -2
  117. package/lib/ogg/OggParser.d.ts +23 -23
  118. package/lib/ogg/OggParser.js +126 -126
  119. package/lib/ogg/opus/Opus.d.ts +48 -48
  120. package/lib/ogg/opus/Opus.js +28 -28
  121. package/lib/ogg/opus/OpusParser.d.ts +25 -25
  122. package/lib/ogg/opus/OpusParser.js +56 -56
  123. package/lib/ogg/speex/Speex.d.ts +36 -36
  124. package/lib/ogg/speex/Speex.js +31 -31
  125. package/lib/ogg/speex/SpeexParser.d.ts +22 -22
  126. package/lib/ogg/speex/SpeexParser.js +35 -35
  127. package/lib/ogg/theora/Theora.d.ts +20 -20
  128. package/lib/ogg/theora/Theora.js +23 -23
  129. package/lib/ogg/theora/TheoraParser.d.ts +28 -28
  130. package/lib/ogg/theora/TheoraParser.js +44 -44
  131. package/lib/ogg/vorbis/Vorbis.d.ts +69 -69
  132. package/lib/ogg/vorbis/Vorbis.js +78 -78
  133. package/lib/ogg/vorbis/VorbisDecoder.d.ts +12 -12
  134. package/lib/ogg/vorbis/VorbisDecoder.js +32 -32
  135. package/lib/ogg/vorbis/VorbisParser.d.ts +36 -36
  136. package/lib/ogg/vorbis/VorbisParser.js +128 -128
  137. package/lib/ogg/vorbis/VorbisTagMapper.d.ts +7 -7
  138. package/lib/ogg/vorbis/VorbisTagMapper.js +132 -132
  139. package/lib/riff/RiffChunk.d.ts +16 -16
  140. package/lib/riff/RiffChunk.js +32 -32
  141. package/lib/riff/RiffInfoTagMap.d.ts +10 -10
  142. package/lib/riff/RiffInfoTagMap.js +37 -37
  143. package/lib/type.d.ts +592 -592
  144. package/lib/type.js +5 -5
  145. package/lib/wav/BwfChunk.d.ts +17 -17
  146. package/lib/wav/BwfChunk.js +29 -28
  147. package/lib/wav/WaveChunk.d.ts +64 -64
  148. package/lib/wav/WaveChunk.js +65 -65
  149. package/lib/wav/WaveParser.d.ts +24 -24
  150. package/lib/wav/WaveParser.js +158 -156
  151. package/lib/wavpack/WavPackParser.d.ts +14 -14
  152. package/lib/wavpack/WavPackParser.js +99 -99
  153. package/lib/wavpack/WavPackToken.d.ts +64 -64
  154. package/lib/wavpack/WavPackToken.js +76 -76
  155. package/package.json +152 -150
@@ -1,279 +1,279 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.elements = void 0;
4
- const types_1 = require("./types");
5
- /**
6
- * Elements of document type description
7
- * Derived from https://github.com/tungol/EBML/blob/master/doctypes/matroska.dtd
8
- * Extended with:
9
- * - https://www.matroska.org/technical/specs/index.html
10
- */
11
- exports.elements = {
12
- 0x1a45dfa3: {
13
- name: 'ebml',
14
- container: {
15
- 0x4286: { name: 'ebmlVersion', value: types_1.DataType.uint },
16
- 0x42f7: { name: 'ebmlReadVersion', value: types_1.DataType.uint },
17
- 0x42f2: { name: 'ebmlMaxIDWidth', value: types_1.DataType.uint },
18
- 0x42f3: { name: 'ebmlMaxSizeWidth', value: types_1.DataType.uint },
19
- 0x4282: { name: 'docType', value: types_1.DataType.string },
20
- 0x4287: { name: 'docTypeVersion', value: types_1.DataType.uint },
21
- 0x4285: { name: 'docTypeReadVersion', value: types_1.DataType.uint } // 5.1.7
22
- }
23
- },
24
- // Matroska segments
25
- 0x18538067: {
26
- name: 'segment',
27
- container: {
28
- // Meta Seek Information
29
- 0x114d9b74: {
30
- name: 'seekHead',
31
- container: {
32
- 0x4dbb: {
33
- name: 'seek',
34
- container: {
35
- 0x53ab: { name: 'seekId', value: types_1.DataType.binary },
36
- 0x53ac: { name: 'seekPosition', value: types_1.DataType.uint }
37
- }
38
- }
39
- }
40
- },
41
- // Segment Information
42
- 0x1549a966: {
43
- name: 'info',
44
- container: {
45
- 0x73a4: { name: 'uid', value: types_1.DataType.uid },
46
- 0x7384: { name: 'filename', value: types_1.DataType.string },
47
- 0x3cb923: { name: 'prevUID', value: types_1.DataType.uid },
48
- 0x3c83ab: { name: 'prevFilename', value: types_1.DataType.string },
49
- 0x3eb923: { name: 'nextUID', value: types_1.DataType.uid },
50
- 0x3e83bb: { name: 'nextFilename', value: types_1.DataType.string },
51
- 0x2ad7b1: { name: 'timecodeScale', value: types_1.DataType.uint },
52
- 0x4489: { name: 'duration', value: types_1.DataType.float },
53
- 0x4461: { name: 'dateUTC', value: types_1.DataType.uint },
54
- 0x7ba9: { name: 'title', value: types_1.DataType.string },
55
- 0x4d80: { name: 'muxingApp', value: types_1.DataType.string },
56
- 0x5741: { name: 'writingApp', value: types_1.DataType.string }
57
- }
58
- },
59
- // Cluster
60
- 0x1f43b675: {
61
- name: 'cluster',
62
- multiple: true,
63
- container: {
64
- 0xe7: { name: 'timecode', value: types_1.DataType.uid },
65
- 0xa3: { name: 'unknown', value: types_1.DataType.binary },
66
- 0xa7: { name: 'position', value: types_1.DataType.uid },
67
- 0xab: { name: 'prevSize', value: types_1.DataType.uid }
68
- }
69
- },
70
- // Track
71
- 0x1654ae6b: {
72
- name: 'tracks',
73
- container: {
74
- 0xae: {
75
- name: 'entries',
76
- multiple: true,
77
- container: {
78
- 0xd7: { name: 'trackNumber', value: types_1.DataType.uint },
79
- 0x73c5: { name: 'uid', value: types_1.DataType.uid },
80
- 0x83: { name: 'trackType', value: types_1.DataType.uint },
81
- 0xb9: { name: 'flagEnabled', value: types_1.DataType.bool },
82
- 0x88: { name: 'flagDefault', value: types_1.DataType.bool },
83
- 0x55aa: { name: 'flagForced', value: types_1.DataType.bool },
84
- 0x9c: { name: 'flagLacing', value: types_1.DataType.bool },
85
- 0x6de7: { name: 'minCache', value: types_1.DataType.uint },
86
- 0x6de8: { name: 'maxCache', value: types_1.DataType.uint },
87
- 0x23e383: { name: 'defaultDuration', value: types_1.DataType.uint },
88
- 0x23314f: { name: 'timecodeScale', value: types_1.DataType.float },
89
- 0x536e: { name: 'name', value: types_1.DataType.string },
90
- 0x22b59c: { name: 'language', value: types_1.DataType.string },
91
- 0x86: { name: 'codecID', value: types_1.DataType.string },
92
- 0x63a2: { name: 'codecPrivate', value: types_1.DataType.binary },
93
- 0x258688: { name: 'codecName', value: types_1.DataType.string },
94
- 0x3a9697: { name: 'codecSettings', value: types_1.DataType.string },
95
- 0x3b4040: { name: 'codecInfoUrl', value: types_1.DataType.string },
96
- 0x26b240: { name: 'codecDownloadUrl', value: types_1.DataType.string },
97
- 0xaa: { name: 'codecDecodeAll', value: types_1.DataType.bool },
98
- 0x6fab: { name: 'trackOverlay', value: types_1.DataType.uint },
99
- // Video
100
- 0xe0: {
101
- name: 'video',
102
- container: {
103
- 0x9a: { name: 'flagInterlaced', value: types_1.DataType.bool },
104
- 0x53b8: { name: 'stereoMode', value: types_1.DataType.uint },
105
- 0xb0: { name: 'pixelWidth', value: types_1.DataType.uint },
106
- 0xba: { name: 'pixelHeight', value: types_1.DataType.uint },
107
- 0x54b0: { name: 'displayWidth', value: types_1.DataType.uint },
108
- 0x54ba: { name: 'displayHeight', value: types_1.DataType.uint },
109
- 0x54b3: { name: 'aspectRatioType', value: types_1.DataType.uint },
110
- 0x2eb524: { name: 'colourSpace', value: types_1.DataType.uint },
111
- 0x2fb523: { name: 'gammaValue', value: types_1.DataType.float }
112
- }
113
- },
114
- // Audio
115
- 0xe1: {
116
- name: 'audio',
117
- container: {
118
- 0xb5: { name: 'samplingFrequency', value: types_1.DataType.float },
119
- 0x78b5: { name: 'outputSamplingFrequency', value: types_1.DataType.float },
120
- 0x9f: { name: 'channels', value: types_1.DataType.uint },
121
- 0x94: { name: 'channels', value: types_1.DataType.uint },
122
- 0x7d7b: { name: 'channelPositions', value: types_1.DataType.binary },
123
- 0x6264: { name: 'bitDepth', value: types_1.DataType.uint }
124
- }
125
- },
126
- // Content Encoding
127
- 0x6d80: {
128
- name: 'contentEncodings',
129
- container: {
130
- 0x6240: {
131
- name: 'contentEncoding',
132
- container: {
133
- 0x5031: { name: 'order', value: types_1.DataType.uint },
134
- 0x5032: { name: 'scope', value: types_1.DataType.bool },
135
- 0x5033: { name: 'type', value: types_1.DataType.uint },
136
- 0x5034: {
137
- name: 'contentEncoding',
138
- container: {
139
- 0x4254: { name: 'contentCompAlgo', value: types_1.DataType.uint },
140
- 0x4255: { name: 'contentCompSettings', value: types_1.DataType.binary }
141
- }
142
- },
143
- 0x5035: {
144
- name: 'contentEncoding',
145
- container: {
146
- 0x47e1: { name: 'contentEncAlgo', value: types_1.DataType.uint },
147
- 0x47e2: { name: 'contentEncKeyID', value: types_1.DataType.binary },
148
- 0x47e3: { name: 'contentSignature ', value: types_1.DataType.binary },
149
- 0x47e4: { name: 'ContentSigKeyID ', value: types_1.DataType.binary },
150
- 0x47e5: { name: 'contentSigAlgo ', value: types_1.DataType.uint },
151
- 0x47e6: { name: 'contentSigHashAlgo ', value: types_1.DataType.uint }
152
- }
153
- },
154
- 0x6264: { name: 'bitDepth', value: types_1.DataType.uint }
155
- }
156
- }
157
- }
158
- }
159
- }
160
- }
161
- }
162
- },
163
- // Cueing Data
164
- 0x1c53bb6b: {
165
- name: 'cues',
166
- container: {
167
- 0xbb: {
168
- name: 'cuePoint',
169
- container: {
170
- 0xb3: { name: 'cueTime', value: types_1.DataType.uid },
171
- 0xb7: {
172
- name: 'positions',
173
- container: {
174
- 0xf7: { name: 'track', value: types_1.DataType.uint },
175
- 0xf1: { name: 'clusterPosition', value: types_1.DataType.uint },
176
- 0x5378: { name: 'blockNumber', value: types_1.DataType.uint },
177
- 0xea: { name: 'codecState', value: types_1.DataType.uint },
178
- 0xdb: {
179
- name: 'reference', container: {
180
- 0x96: { name: 'time', value: types_1.DataType.uint },
181
- 0x97: { name: 'cluster', value: types_1.DataType.uint },
182
- 0x535f: { name: 'number', value: types_1.DataType.uint },
183
- 0xeb: { name: 'codecState', value: types_1.DataType.uint }
184
- }
185
- },
186
- 0xf0: { name: 'relativePosition', value: types_1.DataType.uint } // extended
187
- }
188
- }
189
- }
190
- }
191
- }
192
- },
193
- // Attachment
194
- 0x1941a469: {
195
- name: 'attachments',
196
- container: {
197
- 0x61a7: {
198
- name: 'attachedFiles',
199
- multiple: true,
200
- container: {
201
- 0x467e: { name: 'description', value: types_1.DataType.string },
202
- 0x466e: { name: 'name', value: types_1.DataType.string },
203
- 0x4660: { name: 'mimeType', value: types_1.DataType.string },
204
- 0x465c: { name: 'data', value: types_1.DataType.binary },
205
- 0x46ae: { name: 'uid', value: types_1.DataType.uid }
206
- }
207
- }
208
- }
209
- },
210
- // Chapters
211
- 0x1043a770: {
212
- name: 'chapters',
213
- container: {
214
- 0x45b9: {
215
- name: 'editionEntry',
216
- container: {
217
- 0xb6: {
218
- name: 'chapterAtom',
219
- container: {
220
- 0x73c4: { name: 'uid', value: types_1.DataType.uid },
221
- 0x91: { name: 'timeStart', value: types_1.DataType.uint },
222
- 0x92: { name: 'timeEnd', value: types_1.DataType.uid },
223
- 0x98: { name: 'hidden', value: types_1.DataType.bool },
224
- 0x4598: { name: 'enabled', value: types_1.DataType.uid },
225
- 0x8f: { name: 'track', container: {
226
- 0x89: { name: 'trackNumber', value: types_1.DataType.uid },
227
- 0x80: {
228
- name: 'display', container: {
229
- 0x85: { name: 'string', value: types_1.DataType.string },
230
- 0x437c: { name: 'language ', value: types_1.DataType.string },
231
- 0x437e: { name: 'country ', value: types_1.DataType.string }
232
- }
233
- }
234
- }
235
- }
236
- }
237
- }
238
- }
239
- }
240
- }
241
- },
242
- // Tagging
243
- 0x1254c367: {
244
- name: 'tags',
245
- container: {
246
- 0x7373: {
247
- name: 'tag',
248
- multiple: true,
249
- container: {
250
- 0x63c0: {
251
- name: 'target',
252
- container: {
253
- 0x63c5: { name: 'tagTrackUID', value: types_1.DataType.uid },
254
- 0x63c4: { name: 'tagChapterUID', value: types_1.DataType.uint },
255
- 0x63c6: { name: 'tagAttachmentUID', value: types_1.DataType.uid },
256
- 0x63ca: { name: 'targetType', value: types_1.DataType.string },
257
- 0x68ca: { name: 'targetTypeValue', value: types_1.DataType.uint },
258
- 0x63c9: { name: 'tagEditionUID', value: types_1.DataType.uid } // extended
259
- }
260
- },
261
- 0x67c8: {
262
- name: 'simpleTags',
263
- multiple: true,
264
- container: {
265
- 0x45a3: { name: 'name', value: types_1.DataType.string },
266
- 0x4487: { name: 'string', value: types_1.DataType.string },
267
- 0x4485: { name: 'binary', value: types_1.DataType.binary },
268
- 0x447a: { name: 'language', value: types_1.DataType.string },
269
- 0x447b: { name: 'languageIETF', value: types_1.DataType.string },
270
- 0x4484: { name: 'default', value: types_1.DataType.bool } // extended
271
- }
272
- }
273
- }
274
- }
275
- }
276
- }
277
- }
278
- }
279
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.elements = void 0;
4
+ const types_1 = require("./types");
5
+ /**
6
+ * Elements of document type description
7
+ * Derived from https://github.com/tungol/EBML/blob/master/doctypes/matroska.dtd
8
+ * Extended with:
9
+ * - https://www.matroska.org/technical/specs/index.html
10
+ */
11
+ exports.elements = {
12
+ 0x1a45dfa3: {
13
+ name: 'ebml',
14
+ container: {
15
+ 0x4286: { name: 'ebmlVersion', value: types_1.DataType.uint },
16
+ 0x42f7: { name: 'ebmlReadVersion', value: types_1.DataType.uint },
17
+ 0x42f2: { name: 'ebmlMaxIDWidth', value: types_1.DataType.uint },
18
+ 0x42f3: { name: 'ebmlMaxSizeWidth', value: types_1.DataType.uint },
19
+ 0x4282: { name: 'docType', value: types_1.DataType.string },
20
+ 0x4287: { name: 'docTypeVersion', value: types_1.DataType.uint },
21
+ 0x4285: { name: 'docTypeReadVersion', value: types_1.DataType.uint } // 5.1.7
22
+ }
23
+ },
24
+ // Matroska segments
25
+ 0x18538067: {
26
+ name: 'segment',
27
+ container: {
28
+ // Meta Seek Information
29
+ 0x114d9b74: {
30
+ name: 'seekHead',
31
+ container: {
32
+ 0x4dbb: {
33
+ name: 'seek',
34
+ container: {
35
+ 0x53ab: { name: 'seekId', value: types_1.DataType.binary },
36
+ 0x53ac: { name: 'seekPosition', value: types_1.DataType.uint }
37
+ }
38
+ }
39
+ }
40
+ },
41
+ // Segment Information
42
+ 0x1549a966: {
43
+ name: 'info',
44
+ container: {
45
+ 0x73a4: { name: 'uid', value: types_1.DataType.uid },
46
+ 0x7384: { name: 'filename', value: types_1.DataType.string },
47
+ 0x3cb923: { name: 'prevUID', value: types_1.DataType.uid },
48
+ 0x3c83ab: { name: 'prevFilename', value: types_1.DataType.string },
49
+ 0x3eb923: { name: 'nextUID', value: types_1.DataType.uid },
50
+ 0x3e83bb: { name: 'nextFilename', value: types_1.DataType.string },
51
+ 0x2ad7b1: { name: 'timecodeScale', value: types_1.DataType.uint },
52
+ 0x4489: { name: 'duration', value: types_1.DataType.float },
53
+ 0x4461: { name: 'dateUTC', value: types_1.DataType.uint },
54
+ 0x7ba9: { name: 'title', value: types_1.DataType.string },
55
+ 0x4d80: { name: 'muxingApp', value: types_1.DataType.string },
56
+ 0x5741: { name: 'writingApp', value: types_1.DataType.string }
57
+ }
58
+ },
59
+ // Cluster
60
+ 0x1f43b675: {
61
+ name: 'cluster',
62
+ multiple: true,
63
+ container: {
64
+ 0xe7: { name: 'timecode', value: types_1.DataType.uid },
65
+ 0xa3: { name: 'unknown', value: types_1.DataType.binary },
66
+ 0xa7: { name: 'position', value: types_1.DataType.uid },
67
+ 0xab: { name: 'prevSize', value: types_1.DataType.uid }
68
+ }
69
+ },
70
+ // Track
71
+ 0x1654ae6b: {
72
+ name: 'tracks',
73
+ container: {
74
+ 0xae: {
75
+ name: 'entries',
76
+ multiple: true,
77
+ container: {
78
+ 0xd7: { name: 'trackNumber', value: types_1.DataType.uint },
79
+ 0x73c5: { name: 'uid', value: types_1.DataType.uid },
80
+ 0x83: { name: 'trackType', value: types_1.DataType.uint },
81
+ 0xb9: { name: 'flagEnabled', value: types_1.DataType.bool },
82
+ 0x88: { name: 'flagDefault', value: types_1.DataType.bool },
83
+ 0x55aa: { name: 'flagForced', value: types_1.DataType.bool },
84
+ 0x9c: { name: 'flagLacing', value: types_1.DataType.bool },
85
+ 0x6de7: { name: 'minCache', value: types_1.DataType.uint },
86
+ 0x6de8: { name: 'maxCache', value: types_1.DataType.uint },
87
+ 0x23e383: { name: 'defaultDuration', value: types_1.DataType.uint },
88
+ 0x23314f: { name: 'timecodeScale', value: types_1.DataType.float },
89
+ 0x536e: { name: 'name', value: types_1.DataType.string },
90
+ 0x22b59c: { name: 'language', value: types_1.DataType.string },
91
+ 0x86: { name: 'codecID', value: types_1.DataType.string },
92
+ 0x63a2: { name: 'codecPrivate', value: types_1.DataType.binary },
93
+ 0x258688: { name: 'codecName', value: types_1.DataType.string },
94
+ 0x3a9697: { name: 'codecSettings', value: types_1.DataType.string },
95
+ 0x3b4040: { name: 'codecInfoUrl', value: types_1.DataType.string },
96
+ 0x26b240: { name: 'codecDownloadUrl', value: types_1.DataType.string },
97
+ 0xaa: { name: 'codecDecodeAll', value: types_1.DataType.bool },
98
+ 0x6fab: { name: 'trackOverlay', value: types_1.DataType.uint },
99
+ // Video
100
+ 0xe0: {
101
+ name: 'video',
102
+ container: {
103
+ 0x9a: { name: 'flagInterlaced', value: types_1.DataType.bool },
104
+ 0x53b8: { name: 'stereoMode', value: types_1.DataType.uint },
105
+ 0xb0: { name: 'pixelWidth', value: types_1.DataType.uint },
106
+ 0xba: { name: 'pixelHeight', value: types_1.DataType.uint },
107
+ 0x54b0: { name: 'displayWidth', value: types_1.DataType.uint },
108
+ 0x54ba: { name: 'displayHeight', value: types_1.DataType.uint },
109
+ 0x54b3: { name: 'aspectRatioType', value: types_1.DataType.uint },
110
+ 0x2eb524: { name: 'colourSpace', value: types_1.DataType.uint },
111
+ 0x2fb523: { name: 'gammaValue', value: types_1.DataType.float }
112
+ }
113
+ },
114
+ // Audio
115
+ 0xe1: {
116
+ name: 'audio',
117
+ container: {
118
+ 0xb5: { name: 'samplingFrequency', value: types_1.DataType.float },
119
+ 0x78b5: { name: 'outputSamplingFrequency', value: types_1.DataType.float },
120
+ 0x9f: { name: 'channels', value: types_1.DataType.uint },
121
+ 0x94: { name: 'channels', value: types_1.DataType.uint },
122
+ 0x7d7b: { name: 'channelPositions', value: types_1.DataType.binary },
123
+ 0x6264: { name: 'bitDepth', value: types_1.DataType.uint }
124
+ }
125
+ },
126
+ // Content Encoding
127
+ 0x6d80: {
128
+ name: 'contentEncodings',
129
+ container: {
130
+ 0x6240: {
131
+ name: 'contentEncoding',
132
+ container: {
133
+ 0x5031: { name: 'order', value: types_1.DataType.uint },
134
+ 0x5032: { name: 'scope', value: types_1.DataType.bool },
135
+ 0x5033: { name: 'type', value: types_1.DataType.uint },
136
+ 0x5034: {
137
+ name: 'contentEncoding',
138
+ container: {
139
+ 0x4254: { name: 'contentCompAlgo', value: types_1.DataType.uint },
140
+ 0x4255: { name: 'contentCompSettings', value: types_1.DataType.binary }
141
+ }
142
+ },
143
+ 0x5035: {
144
+ name: 'contentEncoding',
145
+ container: {
146
+ 0x47e1: { name: 'contentEncAlgo', value: types_1.DataType.uint },
147
+ 0x47e2: { name: 'contentEncKeyID', value: types_1.DataType.binary },
148
+ 0x47e3: { name: 'contentSignature ', value: types_1.DataType.binary },
149
+ 0x47e4: { name: 'ContentSigKeyID ', value: types_1.DataType.binary },
150
+ 0x47e5: { name: 'contentSigAlgo ', value: types_1.DataType.uint },
151
+ 0x47e6: { name: 'contentSigHashAlgo ', value: types_1.DataType.uint }
152
+ }
153
+ },
154
+ 0x6264: { name: 'bitDepth', value: types_1.DataType.uint }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ },
163
+ // Cueing Data
164
+ 0x1c53bb6b: {
165
+ name: 'cues',
166
+ container: {
167
+ 0xbb: {
168
+ name: 'cuePoint',
169
+ container: {
170
+ 0xb3: { name: 'cueTime', value: types_1.DataType.uid },
171
+ 0xb7: {
172
+ name: 'positions',
173
+ container: {
174
+ 0xf7: { name: 'track', value: types_1.DataType.uint },
175
+ 0xf1: { name: 'clusterPosition', value: types_1.DataType.uint },
176
+ 0x5378: { name: 'blockNumber', value: types_1.DataType.uint },
177
+ 0xea: { name: 'codecState', value: types_1.DataType.uint },
178
+ 0xdb: {
179
+ name: 'reference', container: {
180
+ 0x96: { name: 'time', value: types_1.DataType.uint },
181
+ 0x97: { name: 'cluster', value: types_1.DataType.uint },
182
+ 0x535f: { name: 'number', value: types_1.DataType.uint },
183
+ 0xeb: { name: 'codecState', value: types_1.DataType.uint }
184
+ }
185
+ },
186
+ 0xf0: { name: 'relativePosition', value: types_1.DataType.uint } // extended
187
+ }
188
+ }
189
+ }
190
+ }
191
+ }
192
+ },
193
+ // Attachment
194
+ 0x1941a469: {
195
+ name: 'attachments',
196
+ container: {
197
+ 0x61a7: {
198
+ name: 'attachedFiles',
199
+ multiple: true,
200
+ container: {
201
+ 0x467e: { name: 'description', value: types_1.DataType.string },
202
+ 0x466e: { name: 'name', value: types_1.DataType.string },
203
+ 0x4660: { name: 'mimeType', value: types_1.DataType.string },
204
+ 0x465c: { name: 'data', value: types_1.DataType.binary },
205
+ 0x46ae: { name: 'uid', value: types_1.DataType.uid }
206
+ }
207
+ }
208
+ }
209
+ },
210
+ // Chapters
211
+ 0x1043a770: {
212
+ name: 'chapters',
213
+ container: {
214
+ 0x45b9: {
215
+ name: 'editionEntry',
216
+ container: {
217
+ 0xb6: {
218
+ name: 'chapterAtom',
219
+ container: {
220
+ 0x73c4: { name: 'uid', value: types_1.DataType.uid },
221
+ 0x91: { name: 'timeStart', value: types_1.DataType.uint },
222
+ 0x92: { name: 'timeEnd', value: types_1.DataType.uid },
223
+ 0x98: { name: 'hidden', value: types_1.DataType.bool },
224
+ 0x4598: { name: 'enabled', value: types_1.DataType.uid },
225
+ 0x8f: { name: 'track', container: {
226
+ 0x89: { name: 'trackNumber', value: types_1.DataType.uid },
227
+ 0x80: {
228
+ name: 'display', container: {
229
+ 0x85: { name: 'string', value: types_1.DataType.string },
230
+ 0x437c: { name: 'language ', value: types_1.DataType.string },
231
+ 0x437e: { name: 'country ', value: types_1.DataType.string }
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ },
242
+ // Tagging
243
+ 0x1254c367: {
244
+ name: 'tags',
245
+ container: {
246
+ 0x7373: {
247
+ name: 'tag',
248
+ multiple: true,
249
+ container: {
250
+ 0x63c0: {
251
+ name: 'target',
252
+ container: {
253
+ 0x63c5: { name: 'tagTrackUID', value: types_1.DataType.uid },
254
+ 0x63c4: { name: 'tagChapterUID', value: types_1.DataType.uint },
255
+ 0x63c6: { name: 'tagAttachmentUID', value: types_1.DataType.uid },
256
+ 0x63ca: { name: 'targetType', value: types_1.DataType.string },
257
+ 0x68ca: { name: 'targetTypeValue', value: types_1.DataType.uint },
258
+ 0x63c9: { name: 'tagEditionUID', value: types_1.DataType.uid } // extended
259
+ }
260
+ },
261
+ 0x67c8: {
262
+ name: 'simpleTags',
263
+ multiple: true,
264
+ container: {
265
+ 0x45a3: { name: 'name', value: types_1.DataType.string },
266
+ 0x4487: { name: 'string', value: types_1.DataType.string },
267
+ 0x4485: { name: 'binary', value: types_1.DataType.binary },
268
+ 0x447a: { name: 'language', value: types_1.DataType.string },
269
+ 0x447b: { name: 'languageIETF', value: types_1.DataType.string },
270
+ 0x4484: { name: 'default', value: types_1.DataType.bool } // extended
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ }
277
+ }
278
+ }
279
+ };
@@ -1,37 +1,37 @@
1
- import { ITokenizer } from 'strtok3/lib/core';
2
- import { INativeMetadataCollector } from '../common/MetadataCollector';
3
- import { IOptions } from '../type';
4
- import { ITokenParser } from '../ParserFactory';
5
- import { BasicParser } from '../common/BasicParser';
6
- /**
7
- * Extensible Binary Meta Language (EBML) parser
8
- * https://en.wikipedia.org/wiki/Extensible_Binary_Meta_Language
9
- * http://matroska.sourceforge.net/technical/specs/rfc/index.html
10
- *
11
- * WEBM VP8 AUDIO FILE
12
- */
13
- export declare class MatroskaParser extends BasicParser {
14
- private padding;
15
- private parserMap;
16
- private ebmlMaxIDLength;
17
- private ebmlMaxSizeLength;
18
- constructor();
19
- /**
20
- * Initialize parser with output (metadata), input (tokenizer) & parsing options (options).
21
- * @param {INativeMetadataCollector} metadata Output
22
- * @param {ITokenizer} tokenizer Input
23
- * @param {IOptions} options Parsing options
24
- */
25
- init(metadata: INativeMetadataCollector, tokenizer: ITokenizer, options: IOptions): ITokenParser;
26
- parse(): Promise<void>;
27
- private parseContainer;
28
- private readVintData;
29
- private readElement;
30
- private isMaxValue;
31
- private readFloat;
32
- private readFlag;
33
- private readUint;
34
- private readString;
35
- private readBuffer;
36
- private addTag;
37
- }
1
+ import { ITokenizer } from 'strtok3/lib/core';
2
+ import { INativeMetadataCollector } from '../common/MetadataCollector';
3
+ import { IOptions } from '../type';
4
+ import { ITokenParser } from '../ParserFactory';
5
+ import { BasicParser } from '../common/BasicParser';
6
+ /**
7
+ * Extensible Binary Meta Language (EBML) parser
8
+ * https://en.wikipedia.org/wiki/Extensible_Binary_Meta_Language
9
+ * http://matroska.sourceforge.net/technical/specs/rfc/index.html
10
+ *
11
+ * WEBM VP8 AUDIO FILE
12
+ */
13
+ export declare class MatroskaParser extends BasicParser {
14
+ private padding;
15
+ private parserMap;
16
+ private ebmlMaxIDLength;
17
+ private ebmlMaxSizeLength;
18
+ constructor();
19
+ /**
20
+ * Initialize parser with output (metadata), input (tokenizer) & parsing options (options).
21
+ * @param {INativeMetadataCollector} metadata Output
22
+ * @param {ITokenizer} tokenizer Input
23
+ * @param {IOptions} options Parsing options
24
+ */
25
+ init(metadata: INativeMetadataCollector, tokenizer: ITokenizer, options: IOptions): ITokenParser;
26
+ parse(): Promise<void>;
27
+ private parseContainer;
28
+ private readVintData;
29
+ private readElement;
30
+ private isMaxValue;
31
+ private readFloat;
32
+ private readFlag;
33
+ private readUint;
34
+ private readString;
35
+ private readBuffer;
36
+ private addTag;
37
+ }