@remotion/media-parser 4.0.209 → 4.0.211

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 (290) hide show
  1. package/buffer.js +2 -0
  2. package/dist/boxes/iso-base-media/get-sample-positions-from-track.js +1 -1
  3. package/dist/boxes/iso-base-media/make-track.js +14 -2
  4. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +13 -4
  5. package/dist/boxes/iso-base-media/mdat/mdat.js +20 -5
  6. package/dist/boxes/iso-base-media/moov/moov.d.ts +2 -1
  7. package/dist/boxes/iso-base-media/moov/moov.js +2 -1
  8. package/dist/boxes/iso-base-media/process-box.d.ts +6 -3
  9. package/dist/boxes/iso-base-media/process-box.js +66 -12
  10. package/dist/boxes/iso-base-media/stsd/avcc.d.ts +1 -1
  11. package/dist/boxes/iso-base-media/stsd/avcc.js +2 -2
  12. package/dist/boxes/iso-base-media/stsd/ctts.js +2 -5
  13. package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +1 -1
  14. package/dist/boxes/iso-base-media/stsd/hvcc.js +2 -2
  15. package/dist/boxes/iso-base-media/stsd/mebx.d.ts +2 -1
  16. package/dist/boxes/iso-base-media/stsd/mebx.js +2 -1
  17. package/dist/boxes/iso-base-media/stsd/samples.d.ts +4 -2
  18. package/dist/boxes/iso-base-media/stsd/samples.js +69 -11
  19. package/dist/boxes/iso-base-media/stsd/stsd.d.ts +2 -1
  20. package/dist/boxes/iso-base-media/stsd/stsd.js +2 -1
  21. package/dist/boxes/iso-base-media/trak/trak.d.ts +2 -1
  22. package/dist/boxes/iso-base-media/trak/trak.js +2 -1
  23. package/dist/boxes/iso-base-media/traversal.d.ts +39 -0
  24. package/dist/boxes/iso-base-media/traversal.js +201 -0
  25. package/dist/boxes/webm/color.d.ts +4 -0
  26. package/dist/boxes/webm/color.js +127 -0
  27. package/dist/boxes/webm/description.js +1 -1
  28. package/dist/boxes/webm/ebml.d.ts +1 -1
  29. package/dist/boxes/webm/get-ready-tracks.js +3 -3
  30. package/dist/boxes/webm/get-sample-from-block.js +1 -1
  31. package/dist/boxes/webm/make-track.d.ts +9 -0
  32. package/dist/boxes/webm/make-track.js +260 -0
  33. package/dist/boxes/webm/parse-ebml.js +2 -2
  34. package/dist/boxes/webm/segments/all-segments.d.ts +36 -3
  35. package/dist/boxes/webm/segments/all-segments.js +34 -6
  36. package/dist/boxes/webm/segments/parse-children.js +6 -0
  37. package/dist/boxes/webm/traversal.d.ts +26 -1
  38. package/dist/boxes/webm/traversal.js +214 -1
  39. package/dist/buffer-iterator.d.ts +4 -1
  40. package/dist/buffer-iterator.js +31 -5
  41. package/dist/create/cluster-segment.js +0 -2
  42. package/dist/create/cluster.d.ts +16 -2
  43. package/dist/create/cluster.js +17 -10
  44. package/dist/create/create-media.d.ts +4 -2
  45. package/dist/create/create-media.js +101 -22
  46. package/dist/create/make-duration-with-padding.d.ts +1 -1
  47. package/dist/create/make-duration-with-padding.js +3 -3
  48. package/dist/create/matroska-cues.d.ts +6 -0
  49. package/dist/create/matroska-cues.js +49 -0
  50. package/dist/create/matroska-info.js +1 -1
  51. package/dist/create/matroska-seek.d.ts +6 -0
  52. package/dist/create/matroska-seek.js +32 -0
  53. package/dist/create/matroska-segment.d.ts +1 -0
  54. package/dist/create/matroska-segment.js +3 -2
  55. package/dist/create/matroska-trackentry.d.ts +9 -14
  56. package/dist/create/matroska-trackentry.js +79 -102
  57. package/dist/emit-available-info.d.ts +12 -0
  58. package/dist/emit-available-info.js +133 -0
  59. package/dist/esm/buffer.mjs +57 -0
  60. package/dist/esm/from-fetch.mjs +107 -0
  61. package/dist/esm/from-node.mjs +49 -0
  62. package/dist/esm/from-web-file.mjs +49 -0
  63. package/dist/esm/index.mjs +6822 -0
  64. package/dist/esm/web-fs.mjs +67 -0
  65. package/dist/get-audio-codec.d.ts +5 -5
  66. package/dist/get-audio-codec.js +44 -57
  67. package/dist/get-container.d.ts +4 -0
  68. package/dist/get-container.js +26 -0
  69. package/dist/get-duration.js +1 -1
  70. package/dist/get-fps.js +1 -1
  71. package/dist/get-sample-aspect-ratio.d.ts +1 -1
  72. package/dist/get-sample-aspect-ratio.js +19 -19
  73. package/dist/get-tracks.d.ts +13 -0
  74. package/dist/get-tracks.js +8 -8
  75. package/dist/get-video-codec.d.ts +5 -2
  76. package/dist/get-video-codec.js +111 -21
  77. package/dist/has-all-info.d.ts +2 -2
  78. package/dist/has-all-info.js +23 -9
  79. package/dist/index.d.ts +4 -1
  80. package/dist/options.d.ts +97 -30
  81. package/dist/parse-media.js +59 -69
  82. package/dist/parse-video.d.ts +2 -1
  83. package/dist/parse-video.js +3 -1
  84. package/dist/parser-context.d.ts +1 -0
  85. package/dist/parser-state.js +1 -2
  86. package/dist/readers/from-fetch.d.ts +12 -0
  87. package/dist/readers/from-fetch.js +83 -17
  88. package/dist/readers/from-node.js +14 -3
  89. package/dist/readers/from-web-file.js +15 -2
  90. package/dist/readers/reader.d.ts +7 -1
  91. package/dist/samples-from-moof.js +1 -1
  92. package/dist/truthy.d.ts +3 -0
  93. package/dist/truthy.js +7 -0
  94. package/dist/writers/buffer.d.ts +2 -0
  95. package/dist/writers/buffer.js +58 -0
  96. package/dist/writers/web-fs.d.ts +1 -0
  97. package/dist/writers/web-fs.js +42 -18
  98. package/dist/writers/writer.d.ts +4 -2
  99. package/fetch.js +2 -0
  100. package/node.js +2 -0
  101. package/package.json +43 -8
  102. package/web-file.js +2 -0
  103. package/web-fs.js +2 -0
  104. package/.eslintrc +0 -8
  105. package/dist/av1-codec-string.d.ts +0 -3
  106. package/dist/av1-codec-string.js +0 -91
  107. package/dist/boxes/iso-base-media/ftype.d.ts +0 -9
  108. package/dist/boxes/iso-base-media/ftype.js +0 -31
  109. package/dist/boxes/iso-base-media/stsd/avcc-hvcc.d.ts +0 -20
  110. package/dist/boxes/iso-base-media/stsd/avcc-hvcc.js +0 -73
  111. package/dist/boxes/iso-base-media/stts/stts.d.ts +0 -15
  112. package/dist/boxes/iso-base-media/stts/stts.js +0 -35
  113. package/dist/boxes/webm/bitstream/av1/bitstream-frame-header.d.ts +0 -14
  114. package/dist/boxes/webm/bitstream/av1/bitstream-frame-header.js +0 -67
  115. package/dist/boxes/webm/bitstream/av1/bitstream-frame.d.ts +0 -11
  116. package/dist/boxes/webm/bitstream/av1/bitstream-frame.js +0 -14
  117. package/dist/boxes/webm/bitstream/av1/chroma-sample-position.d.ts +0 -6
  118. package/dist/boxes/webm/bitstream/av1/chroma-sample-position.js +0 -9
  119. package/dist/boxes/webm/bitstream/av1/color-config.d.ts +0 -16
  120. package/dist/boxes/webm/bitstream/av1/color-config.js +0 -103
  121. package/dist/boxes/webm/bitstream/av1/color-primaries.d.ts +0 -14
  122. package/dist/boxes/webm/bitstream/av1/color-primaries.js +0 -17
  123. package/dist/boxes/webm/bitstream/av1/decoder-model-info.d.ts +0 -9
  124. package/dist/boxes/webm/bitstream/av1/decoder-model-info.js +0 -17
  125. package/dist/boxes/webm/bitstream/av1/frame.d.ts +0 -0
  126. package/dist/boxes/webm/bitstream/av1/frame.js +0 -1
  127. package/dist/boxes/webm/bitstream/av1/header-segment.d.ts +0 -51
  128. package/dist/boxes/webm/bitstream/av1/header-segment.js +0 -183
  129. package/dist/boxes/webm/bitstream/av1/matrix-coefficients.d.ts +0 -17
  130. package/dist/boxes/webm/bitstream/av1/matrix-coefficients.js +0 -20
  131. package/dist/boxes/webm/bitstream/av1/operating-parameters-info.d.ts +0 -10
  132. package/dist/boxes/webm/bitstream/av1/operating-parameters-info.js +0 -15
  133. package/dist/boxes/webm/bitstream/av1/temporal-point-info.d.ts +0 -5
  134. package/dist/boxes/webm/bitstream/av1/temporal-point-info.js +0 -8
  135. package/dist/boxes/webm/bitstream/av1/timing-info.d.ts +0 -8
  136. package/dist/boxes/webm/bitstream/av1/timing-info.js +0 -20
  137. package/dist/boxes/webm/bitstream/av1/transfer-characteristics.d.ts +0 -21
  138. package/dist/boxes/webm/bitstream/av1/transfer-characteristics.js +0 -24
  139. package/dist/boxes/webm/bitstream/av1/uvlc.d.ts +0 -2
  140. package/dist/boxes/webm/bitstream/av1/uvlc.js +0 -20
  141. package/dist/boxes/webm/bitstream/av1.d.ts +0 -20
  142. package/dist/boxes/webm/bitstream/av1.js +0 -118
  143. package/dist/boxes/webm/bitstream/h264/get-h264-descriptor.d.ts +0 -0
  144. package/dist/boxes/webm/bitstream/h264/get-h264-descriptor.js +0 -1
  145. package/dist/boxes/webm/segments/duration.d.ts +0 -6
  146. package/dist/boxes/webm/segments/duration.js +0 -19
  147. package/dist/boxes/webm/segments/info.d.ts +0 -9
  148. package/dist/boxes/webm/segments/info.js +0 -22
  149. package/dist/boxes/webm/segments/main.d.ts +0 -5
  150. package/dist/boxes/webm/segments/main.js +0 -2
  151. package/dist/boxes/webm/segments/muxing.d.ts +0 -6
  152. package/dist/boxes/webm/segments/muxing.js +0 -11
  153. package/dist/boxes/webm/segments/seek-head.d.ts +0 -9
  154. package/dist/boxes/webm/segments/seek-head.js +0 -22
  155. package/dist/boxes/webm/segments/seek-position.d.ts +0 -6
  156. package/dist/boxes/webm/segments/seek-position.js +0 -11
  157. package/dist/boxes/webm/segments/seek.d.ts +0 -13
  158. package/dist/boxes/webm/segments/seek.js +0 -35
  159. package/dist/boxes/webm/segments/timestamp-scale.d.ts +0 -6
  160. package/dist/boxes/webm/segments/timestamp-scale.js +0 -11
  161. package/dist/boxes/webm/segments/tracks.d.ts +0 -8
  162. package/dist/boxes/webm/segments/tracks.js +0 -21
  163. package/dist/boxes/webm/segments/unknown.d.ts +0 -6
  164. package/dist/boxes/webm/segments/unknown.js +0 -11
  165. package/dist/boxes/webm/segments/void.d.ts +0 -6
  166. package/dist/boxes/webm/segments/void.js +0 -11
  167. package/dist/boxes/webm/segments/writing.d.ts +0 -6
  168. package/dist/boxes/webm/segments/writing.js +0 -11
  169. package/dist/boxes/webm/tracks.d.ts +0 -8
  170. package/dist/boxes/webm/tracks.js +0 -21
  171. package/dist/combine-uint8array.d.ts +0 -1
  172. package/dist/combine-uint8array.js +0 -13
  173. package/dist/from-web.d.ts +0 -2
  174. package/dist/from-web.js +0 -45
  175. package/dist/get-video-metadata.d.ts +0 -2
  176. package/dist/get-video-metadata.js +0 -44
  177. package/dist/read-and-increment-offset.d.ts +0 -28
  178. package/dist/read-and-increment-offset.js +0 -177
  179. package/dist/understand-vorbis.d.ts +0 -1
  180. package/dist/understand-vorbis.js +0 -12
  181. package/input.webm +0 -0
  182. package/src/add-new-matroska-tracks.ts +0 -23
  183. package/src/boxes/iso-base-media/base-type.ts +0 -4
  184. package/src/boxes/iso-base-media/esds/decoder-specific-config.ts +0 -68
  185. package/src/boxes/iso-base-media/esds/esds-descriptors.ts +0 -135
  186. package/src/boxes/iso-base-media/esds/esds.ts +0 -49
  187. package/src/boxes/iso-base-media/ftyp.ts +0 -39
  188. package/src/boxes/iso-base-media/get-sample-positions-from-track.ts +0 -69
  189. package/src/boxes/iso-base-media/make-track.ts +0 -116
  190. package/src/boxes/iso-base-media/mdat/mdat.ts +0 -140
  191. package/src/boxes/iso-base-media/mdhd.ts +0 -59
  192. package/src/boxes/iso-base-media/moov/moov.ts +0 -43
  193. package/src/boxes/iso-base-media/mvhd.ts +0 -114
  194. package/src/boxes/iso-base-media/process-box.ts +0 -748
  195. package/src/boxes/iso-base-media/stsd/av1c.ts +0 -19
  196. package/src/boxes/iso-base-media/stsd/avcc.ts +0 -36
  197. package/src/boxes/iso-base-media/stsd/colr.ts +0 -49
  198. package/src/boxes/iso-base-media/stsd/ctts.ts +0 -64
  199. package/src/boxes/iso-base-media/stsd/hvcc.ts +0 -32
  200. package/src/boxes/iso-base-media/stsd/keys.ts +0 -27
  201. package/src/boxes/iso-base-media/stsd/mebx.ts +0 -54
  202. package/src/boxes/iso-base-media/stsd/pasp.ts +0 -32
  203. package/src/boxes/iso-base-media/stsd/samples.ts +0 -359
  204. package/src/boxes/iso-base-media/stsd/stco.ts +0 -52
  205. package/src/boxes/iso-base-media/stsd/stsc.ts +0 -61
  206. package/src/boxes/iso-base-media/stsd/stsd.ts +0 -55
  207. package/src/boxes/iso-base-media/stsd/stss.ts +0 -47
  208. package/src/boxes/iso-base-media/stsd/stsz.ts +0 -75
  209. package/src/boxes/iso-base-media/stsd/stts.ts +0 -62
  210. package/src/boxes/iso-base-media/tfdt.ts +0 -37
  211. package/src/boxes/iso-base-media/tfhd.ts +0 -66
  212. package/src/boxes/iso-base-media/tkhd.ts +0 -150
  213. package/src/boxes/iso-base-media/to-date.ts +0 -9
  214. package/src/boxes/iso-base-media/trak/trak.ts +0 -43
  215. package/src/boxes/iso-base-media/trun.ts +0 -74
  216. package/src/boxes/iso-base-media/void-box.ts +0 -4
  217. package/src/boxes/webm/allowed-partial-segments.ts +0 -1
  218. package/src/boxes/webm/av1-codec-private.ts +0 -113
  219. package/src/boxes/webm/description.ts +0 -104
  220. package/src/boxes/webm/ebml.ts +0 -98
  221. package/src/boxes/webm/get-ready-tracks.ts +0 -36
  222. package/src/boxes/webm/get-sample-from-block.ts +0 -125
  223. package/src/boxes/webm/get-track.ts +0 -257
  224. package/src/boxes/webm/make-header.ts +0 -253
  225. package/src/boxes/webm/parse-ebml.ts +0 -259
  226. package/src/boxes/webm/parse-webm-header.ts +0 -18
  227. package/src/boxes/webm/segments/all-segments.ts +0 -888
  228. package/src/boxes/webm/segments/block-simple-block-flags.ts +0 -52
  229. package/src/boxes/webm/segments/parse-children.ts +0 -144
  230. package/src/boxes/webm/segments/track-entry.ts +0 -38
  231. package/src/boxes/webm/segments.ts +0 -147
  232. package/src/boxes/webm/traversal.ts +0 -45
  233. package/src/buffer-iterator.ts +0 -555
  234. package/src/create/cluster-segment.ts +0 -62
  235. package/src/create/cluster.ts +0 -64
  236. package/src/create/create-media.ts +0 -136
  237. package/src/create/make-duration-with-padding.ts +0 -15
  238. package/src/create/matroska-header.ts +0 -63
  239. package/src/create/matroska-info.ts +0 -30
  240. package/src/create/matroska-segment.ts +0 -10
  241. package/src/create/matroska-trackentry.ts +0 -325
  242. package/src/create/timescale.ts +0 -1
  243. package/src/get-audio-codec.ts +0 -270
  244. package/src/get-dimensions.ts +0 -47
  245. package/src/get-duration.ts +0 -103
  246. package/src/get-fps.ts +0 -113
  247. package/src/get-sample-aspect-ratio.ts +0 -204
  248. package/src/get-sample-positions.ts +0 -93
  249. package/src/get-tracks.ts +0 -147
  250. package/src/get-video-codec.ts +0 -117
  251. package/src/has-all-info.ts +0 -81
  252. package/src/index.ts +0 -18
  253. package/src/make-hvc1-codec-strings.ts +0 -55
  254. package/src/options.ts +0 -118
  255. package/src/parse-media.ts +0 -183
  256. package/src/parse-result.ts +0 -79
  257. package/src/parse-video.ts +0 -83
  258. package/src/parser-context.ts +0 -10
  259. package/src/parser-state.ts +0 -178
  260. package/src/readers/from-fetch.ts +0 -90
  261. package/src/readers/from-node.ts +0 -51
  262. package/src/readers/from-web-file.ts +0 -49
  263. package/src/readers/reader.ts +0 -15
  264. package/src/samples-from-moof.ts +0 -102
  265. package/src/test/aspect-ratio.test.ts +0 -42
  266. package/src/test/av1.test.ts +0 -108
  267. package/src/test/create-matroska.test.ts +0 -287
  268. package/src/test/duration.test.ts +0 -18
  269. package/src/test/keys.test.ts +0 -47
  270. package/src/test/matroska.test.ts +0 -463
  271. package/src/test/mvhd.test.ts +0 -94
  272. package/src/test/parse-esds.test.ts +0 -98
  273. package/src/test/parse-stco.test.ts +0 -61
  274. package/src/test/parse-stsc.test.ts +0 -104
  275. package/src/test/parse-stsz.test.ts +0 -57
  276. package/src/test/parse-stts.test.ts +0 -38
  277. package/src/test/parse-video.test.ts +0 -101
  278. package/src/test/parse-webm.test.ts +0 -17
  279. package/src/test/samples-from-moof.test.ts +0 -2496
  280. package/src/test/stream-local.test.ts +0 -743
  281. package/src/test/stream-remote.test.ts +0 -59
  282. package/src/test/stream-samples.test.ts +0 -181
  283. package/src/test/stsd.test.ts +0 -265
  284. package/src/test/tkhd.test.ts +0 -87
  285. package/src/traversal.ts +0 -528
  286. package/src/webcodec-sample-types.ts +0 -29
  287. package/src/writers/web-fs.ts +0 -50
  288. package/src/writers/writer.ts +0 -12
  289. package/tsconfig.json +0 -14
  290. package/tsconfig.tsbuildinfo +0 -1
@@ -1,888 +0,0 @@
1
- import type {Prettify} from '../parse-ebml';
2
-
3
- export const matroskaElements = {
4
- Header: '0x1a45dfa3',
5
- EBMLMaxIDLength: '0x42f2',
6
- EBMLVersion: '0x4286',
7
- EBMLReadVersion: '0x42f7',
8
- EBMLMaxSizeLength: '0x42f3',
9
- DocType: '0x4282',
10
- DocTypeVersion: '0x4287',
11
- DocTypeReadVersion: '0x4285',
12
- Segment: '0x18538067',
13
- SeekHead: '0x114d9b74',
14
- Seek: '0x4dbb',
15
- SeekID: '0x53ab',
16
- SeekPosition: '0x53ac',
17
- Info: '0x1549a966',
18
- SegmentUUID: '0x73a4',
19
- SegmentFilename: '0x7384',
20
- PrevUUID: '0x3cb923',
21
- PrevFilename: '0x3c83ab',
22
- NextUUID: '0x3eb923',
23
- NextFilename: '0x3e83bb',
24
- SegmentFamily: '0x4444',
25
- ChapterTranslate: '0x6924',
26
- ChapterTranslateID: '0x69a5',
27
- ChapterTranslateCodec: '0x69bf',
28
- ChapterTranslateEditionUID: '0x69fc',
29
- TimestampScale: '0x2ad7b1',
30
- Duration: '0x4489',
31
- DateUTC: '0x4461',
32
- Title: '0x7ba9',
33
- MuxingApp: '0x4d80',
34
- WritingApp: '0x5741',
35
- Cluster: '0x1f43b675',
36
- Timestamp: '0xe7',
37
- SilentTracks: '0x5854',
38
- SilentTrackNumber: '0x58d7',
39
- Position: '0xa7',
40
- PrevSize: '0xab',
41
- SimpleBlock: '0xa3',
42
- BlockGroup: '0xa0',
43
- Block: '0xa1',
44
- BlockVirtual: '0xa2',
45
- BlockAdditions: '0x75a1',
46
- BlockMore: '0xa6',
47
- BlockAdditional: '0xa5',
48
- BlockAddID: '0xee',
49
- BlockDuration: '0x9b',
50
- ReferencePriority: '0xfa',
51
- ReferenceBlock: '0xfb',
52
- ReferenceVirtual: '0xfd',
53
- CodecState: '0xa4',
54
- DiscardPadding: '0x75a2',
55
- Slices: '0x8e',
56
- TimeSlice: '0xe8',
57
- LaceNumber: '0xcc',
58
- FrameNumber: '0xcd',
59
- BlockAdditionID: '0xcb',
60
- Delay: '0xce',
61
- SliceDuration: '0xcf',
62
- ReferenceFrame: '0xc8',
63
- ReferenceOffset: '0xc9',
64
- ReferenceTimestamp: '0xca',
65
- EncryptedBlock: '0xaf',
66
- Tracks: '0x1654ae6b',
67
- TrackEntry: '0xae',
68
- TrackNumber: '0xd7',
69
- TrackUID: '0x73c5',
70
- TrackType: '0x83',
71
- FlagEnabled: '0xb9',
72
- FlagDefault: '0x88',
73
- FlagForced: '0x55aa',
74
- FlagHearingImpaired: '0x55ab',
75
- FlagVisualImpaired: '0x55ac',
76
- FlagTextDescriptions: '0x55ad',
77
- FlagOriginal: '0x55ae',
78
- FlagCommentary: '0x55af',
79
- FlagLacing: '0x9c',
80
- MinCache: '0x6de7',
81
- MaxCache: '0x6df8',
82
- DefaultDuration: '0x23e383',
83
- DefaultDecodedFieldDuration: '0x234e7a',
84
- TrackTimestampScale: '0x23314f',
85
- TrackOffset: '0x537f',
86
- MaxBlockAdditionID: '0x55ee',
87
- BlockAdditionMapping: '0x41e4',
88
- BlockAddIDValue: '0x41f0',
89
- BlockAddIDName: '0x41a4',
90
- BlockAddIDType: '0x41e7',
91
- BlockAddIDExtraData: '0x41ed',
92
- Name: '0x536e',
93
- Language: '0x22b59c',
94
- LanguageBCP47: '0x22b59d',
95
- CodecID: '0x86',
96
- CodecPrivate: '0x63a2',
97
- CodecName: '0x258688',
98
- AttachmentLink: '0x7446',
99
- CodecSettings: '0x3a9697',
100
- CodecInfoURL: '0x3b4040',
101
- CodecDownloadURL: '0x26b240',
102
- CodecDecodeAll: '0xaa',
103
- TrackOverlay: '0x6fab',
104
- CodecDelay: '0x56aa',
105
- SeekPreRoll: '0x56bb',
106
- TrackTranslate: '0x6624',
107
- TrackTranslateTrackID: '0x66a5',
108
- TrackTranslateCodec: '0x66bf',
109
- TrackTranslateEditionUID: '0x66fc',
110
- Video: '0xe0',
111
- FlagInterlaced: '0x9a',
112
- FieldOrder: '0x9d',
113
- StereoMode: '0x53b8',
114
- AlphaMode: '0x53c0',
115
- OldStereoMode: '0x53b9',
116
- PixelWidth: '0xb0',
117
- PixelHeight: '0xba',
118
- PixelCropBottom: '0x54aa',
119
- PixelCropTop: '0x54bb',
120
- PixelCropLeft: '0x54cc',
121
- PixelCropRight: '0x54dd',
122
- DisplayWidth: '0x54b0',
123
- DisplayHeight: '0x54ba',
124
- DisplayUnit: '0x54b2',
125
- AspectRatioType: '0x54b3',
126
- UncompressedFourCC: '0x2eb524',
127
- GammaValue: '0x2fb523',
128
- FrameRate: '0x2383e3',
129
- Colour: '0x55b0',
130
- MatrixCoefficients: '0x55b1',
131
- BitsPerChannel: '0x55b2',
132
- ChromaSubsamplingHorz: '0x55b3',
133
- ChromaSubsamplingVert: '0x55b4',
134
- CbSubsamplingHorz: '0x55b5',
135
- CbSubsamplingVert: '0x55b6',
136
- ChromaSitingHorz: '0x55b7',
137
- ChromaSitingVert: '0x55b8',
138
- Range: '0x55b9',
139
- TransferCharacteristics: '0x55ba',
140
- Primaries: '0x55bb',
141
- MaxCLL: '0x55bc',
142
- MaxFALL: '0x55bd',
143
- MasteringMetadata: '0x55d0',
144
- PrimaryRChromaticityX: '0x55d1',
145
- PrimaryRChromaticityY: '0x55d2',
146
- PrimaryGChromaticityX: '0x55d3',
147
- PrimaryGChromaticityY: '0x55d4',
148
- PrimaryBChromaticityX: '0x55d5',
149
- PrimaryBChromaticityY: '0x55d6',
150
- WhitePointChromaticityX: '0x55d7',
151
- WhitePointChromaticityY: '0x55d8',
152
- LuminanceMax: '0x55d9',
153
- LuminanceMin: '0x55da',
154
- Projection: '0x7670',
155
- ProjectionType: '0x7671',
156
- ProjectionPrivate: '0x7672',
157
- ProjectionPoseYaw: '0x7673',
158
- ProjectionPosePitch: '0x7674',
159
- ProjectionPoseRoll: '0x7675',
160
- Audio: '0xe1',
161
- SamplingFrequency: '0xb5',
162
- OutputSamplingFrequency: '0x78b5',
163
- Channels: '0x9f',
164
- ChannelPositions: '0x7d7b',
165
- BitDepth: '0x6264',
166
- Emphasis: '0x52f1',
167
- TrackOperation: '0xe2',
168
- TrackCombinePlanes: '0xe3',
169
- TrackPlane: '0xe4',
170
- TrackPlaneUID: '0xe5',
171
- TrackPlaneType: '0xe6',
172
- TrackJoinBlocks: '0xe9',
173
- TrackJoinUID: '0xed',
174
- TrickTrackUID: '0xc0',
175
- TrickTrackSegmentUID: '0xc1',
176
- TrickTrackFlag: '0xc6',
177
- TrickMasterTrackUID: '0xc7',
178
- TrickMasterTrackSegmentUID: '0xc4',
179
- ContentEncodings: '0x6d80',
180
- ContentEncoding: '0x6240',
181
- ContentEncodingOrder: '0x5031',
182
- ContentEncodingScope: '0x5032',
183
- ContentEncodingType: '0x5033',
184
- ContentCompression: '0x5034',
185
- ContentCompAlgo: '0x4254',
186
- ContentCompSettings: '0x4255',
187
- ContentEncryption: '0x5035',
188
- ContentEncAlgo: '0x47e1',
189
- ContentEncKeyID: '0x47e2',
190
- ContentEncAESSettings: '0x47e7',
191
- AESSettingsCipherMode: '0x47e8',
192
- ContentSignature: '0x47e3',
193
- ContentSigKeyID: '0x47e4',
194
- ContentSigAlgo: '0x47e5',
195
- ContentSigHashAlgo: '0x47e6',
196
- Cues: '0x1c53bb6b',
197
- CuePoint: '0xbb',
198
- CueTime: '0xb3',
199
- CueTrackPositions: '0xb7',
200
- CueTrack: '0xf7',
201
- CueClusterPosition: '0xf1',
202
- CueRelativePosition: '0xf0',
203
- CueDuration: '0xb2',
204
- CueBlockNumber: '0x5378',
205
- CueCodecState: '0xea',
206
- CueReference: '0xdb',
207
- CueRefTime: '0x96',
208
- CueRefCluster: '0x97',
209
- CueRefNumber: '0x535f',
210
- CueRefCodecState: '0xeb',
211
- Attachments: '0x1941a469',
212
- AttachedFile: '0x61a7',
213
- FileDescription: '0x467e',
214
- FileName: '0x466e',
215
- FileMediaType: '0x4660',
216
- FileData: '0x465c',
217
- FileUID: '0x46ae',
218
- FileReferral: '0x4675',
219
- FileUsedStartTime: '0x4661',
220
- FileUsedEndTime: '0x4662',
221
- Chapters: '0x1043a770',
222
- EditionEntry: '0x45b9',
223
- EditionUID: '0x45bc',
224
- EditionFlagHidden: '0x45bd',
225
- EditionFlagDefault: '0x45db',
226
- EditionFlagOrdered: '0x45dd',
227
- EditionDisplay: '0x4520',
228
- EditionString: '0x4521',
229
- EditionLanguageIETF: '0x45e4',
230
- ChapterAtom: '0xb6',
231
- ChapterUID: '0x73c4',
232
- ChapterStringUID: '0x5654',
233
- ChapterTimeStart: '0x91',
234
- ChapterTimeEnd: '0x92',
235
- ChapterFlagHidden: '0x98',
236
- ChapterFlagEnabled: '0x4598',
237
- ChapterSegmentUUID: '0x6e67',
238
- ChapterSkipType: '0x4588',
239
- ChapterSegmentEditionUID: '0x6ebc',
240
- ChapterPhysicalEquiv: '0x63c3',
241
- ChapterTrack: '0x8f',
242
- ChapterTrackUID: '0x89',
243
- ChapterDisplay: '0x80',
244
- ChapString: '0x85',
245
- ChapLanguage: '0x437c',
246
- ChapLanguageBCP47: '0x437d',
247
- ChapCountry: '0x437e',
248
- ChapProcess: '0x6944',
249
- ChapProcessCodecID: '0x6955',
250
- ChapProcessPrivate: '0x450d',
251
- ChapProcessCommand: '0x6911',
252
- ChapProcessTime: '0x6922',
253
- ChapProcessData: '0x6933',
254
- Tags: '0x1254c367',
255
- Tag: '0x7373',
256
- Targets: '0x63c0',
257
- TargetTypeValue: '0x68ca',
258
- TargetType: '0x63ca',
259
- TagTrackUID: '0x63c5',
260
- TagEditionUID: '0x63c9',
261
- TagChapterUID: '0x63c4',
262
- TagAttachmentUID: '0x63c6',
263
- SimpleTag: '0x67c8',
264
- TagName: '0x45a3',
265
- TagLanguage: '0x447a',
266
- TagLanguageBCP47: '0x447b',
267
- TagDefault: '0x4484',
268
- TagDefaultBogus: '0x44b4',
269
- TagString: '0x4487',
270
- TagBinary: '0x4485',
271
- Void: '0xec',
272
- Crc32: '0xbf',
273
- } as const;
274
-
275
- const matroskaIds = Object.values(matroskaElements);
276
-
277
- export const knownIdsWithOneLength = matroskaIds.filter(
278
- (id) => id.length === 4,
279
- ) as string[];
280
-
281
- export const knownIdsWithTwoLength = matroskaIds.filter(
282
- (id) => id.length === 6,
283
- ) as string[];
284
-
285
- export const knownIdsWithThreeLength = matroskaIds.filter(
286
- (id) => id.length === 8,
287
- ) as string[];
288
-
289
- export const getSegmentName = (id: string) => {
290
- return Object.entries(matroskaElements).find(
291
- ([, value]) => value === id,
292
- )?.[0];
293
- };
294
-
295
- export const getIdForName = (name: string): EbmlMapKey => {
296
- const value = Object.entries(matroskaElements).find(
297
- ([key]) => key === name,
298
- )?.[1];
299
- if (!value) {
300
- throw new Error(`Could not find id for name ${name}`);
301
- }
302
-
303
- return value as EbmlMapKey;
304
- };
305
-
306
- export type MatroskaKey = keyof typeof matroskaElements;
307
-
308
- export type MatroskaElement = (typeof matroskaElements)[MatroskaKey];
309
-
310
- type EbmlType = 'string';
311
-
312
- export type EbmlWithChildren = {
313
- name: MatroskaKey;
314
- type: 'children';
315
- };
316
-
317
- export type EbmlWithUint = {
318
- name: MatroskaKey;
319
- type: 'uint';
320
- };
321
-
322
- export type EbmlWithHexString = {
323
- name: MatroskaKey;
324
- type: 'hex-string';
325
- };
326
-
327
- export type EbmlWithString = {
328
- name: MatroskaKey;
329
- type: EbmlType;
330
- };
331
-
332
- export type EbmlWithFloat = {
333
- name: MatroskaKey;
334
- type: 'float';
335
- };
336
-
337
- export type EbmlWithUint8Array = {
338
- name: MatroskaKey;
339
- type: 'uint8array';
340
- };
341
-
342
- export type Ebml =
343
- | EbmlWithString
344
- | EbmlWithUint
345
- | EbmlWithChildren
346
- | EbmlWithFloat
347
- | EbmlWithHexString
348
- | EbmlWithUint8Array;
349
-
350
- export const ebmlVersion = {
351
- name: 'EBMLVersion',
352
- type: 'uint',
353
- } satisfies Ebml;
354
-
355
- export const ebmlReadVersion = {
356
- name: 'EBMLReadVersion',
357
- type: 'uint',
358
- } satisfies Ebml;
359
-
360
- export const ebmlMaxIdLength = {
361
- name: 'EBMLMaxIDLength',
362
- type: 'uint',
363
- } as const satisfies Ebml;
364
-
365
- export const ebmlMaxSizeLength = {
366
- name: 'EBMLMaxSizeLength',
367
- type: 'uint',
368
- } satisfies Ebml;
369
-
370
- export const docType = {
371
- name: 'DocType',
372
- type: 'string',
373
- } satisfies Ebml;
374
-
375
- export const docTypeVersion = {
376
- name: 'DocTypeVersion',
377
- type: 'uint',
378
- } satisfies Ebml;
379
-
380
- export const docTypeReadVersion = {
381
- name: 'DocTypeReadVersion',
382
- type: 'uint',
383
- } satisfies Ebml;
384
-
385
- const voidEbml = {
386
- name: 'Void',
387
- type: 'uint8array',
388
- } satisfies Ebml;
389
-
390
- export type EmblTypes = {
391
- uint: number;
392
- float: number;
393
- string: string;
394
- children: Ebml[];
395
- void: undefined;
396
- 'hex-string': string;
397
- uint8array: Uint8Array;
398
- };
399
-
400
- export const matroskaHeader = {
401
- name: 'Header',
402
- type: 'children',
403
- } as const satisfies Ebml;
404
-
405
- export const seekId = {
406
- name: 'SeekID',
407
- type: 'hex-string',
408
- } as const satisfies Ebml;
409
-
410
- export const seekPosition = {
411
- name: 'SeekPosition',
412
- type: 'uint',
413
- } as const satisfies Ebml;
414
-
415
- export const seek = {
416
- name: 'Seek',
417
- type: 'children',
418
- } as const satisfies Ebml;
419
-
420
- export const seekHead = {
421
- name: 'SeekHead',
422
- type: 'children',
423
- } as const satisfies Ebml;
424
-
425
- export const voidHeader = {
426
- name: 'Void',
427
- type: 'uint8array',
428
- } as const satisfies Ebml;
429
-
430
- export const codecID = {
431
- name: 'CodecID',
432
- type: 'string',
433
- } as const satisfies Ebml;
434
-
435
- export const trackType = {
436
- name: 'TrackType',
437
- type: 'uint',
438
- } as const satisfies Ebml;
439
-
440
- export const widthType = {
441
- name: 'PixelWidth',
442
- type: 'uint',
443
- } as const satisfies Ebml;
444
-
445
- export const heightType = {
446
- name: 'PixelHeight',
447
- type: 'uint',
448
- } as const satisfies Ebml;
449
-
450
- export const muxingApp = {
451
- name: 'MuxingApp',
452
- type: 'string',
453
- } as const satisfies Ebml;
454
-
455
- export const duration = {
456
- name: 'Duration',
457
- type: 'float',
458
- } as const satisfies Ebml;
459
-
460
- export const timestampScale = {
461
- name: 'TimestampScale',
462
- type: 'uint',
463
- } as const satisfies Ebml;
464
-
465
- export const writingApp = {
466
- name: 'WritingApp',
467
- type: 'string',
468
- } as const satisfies Ebml;
469
-
470
- export const infoType = {
471
- name: 'Info',
472
- type: 'children',
473
- } as const satisfies Ebml;
474
-
475
- export const titleType = {
476
- name: 'Title',
477
- type: 'string',
478
- } as const satisfies Ebml;
479
-
480
- export const samplingFrequency = {
481
- name: 'SamplingFrequency',
482
- type: 'float',
483
- } as const satisfies Ebml;
484
-
485
- export const channels = {
486
- name: 'Channels',
487
- type: 'uint',
488
- } as const satisfies Ebml;
489
-
490
- export const alphaMode = {
491
- name: 'AlphaMode',
492
- type: 'uint',
493
- } as const satisfies Ebml;
494
-
495
- export const interlaced = {
496
- name: 'FlagInterlaced',
497
- type: 'uint',
498
- } as const satisfies Ebml;
499
-
500
- export const bitDepth = {
501
- name: 'BitDepth',
502
- type: 'uint',
503
- } as const satisfies Ebml;
504
-
505
- export const displayWidth = {
506
- name: 'DisplayWidth',
507
- type: 'uint',
508
- } as const satisfies Ebml;
509
-
510
- export const displayHeight = {
511
- name: 'DisplayHeight',
512
- type: 'uint',
513
- } as const satisfies Ebml;
514
-
515
- export const flagLacing = {
516
- name: 'FlagLacing',
517
- type: 'uint',
518
- } as const satisfies Ebml;
519
-
520
- export const tagSegment = {
521
- name: 'Tag',
522
- type: 'uint8array',
523
- } as const satisfies Ebml;
524
-
525
- export const tags = {
526
- name: 'Tags',
527
- type: 'children',
528
- } as const satisfies Ebml;
529
-
530
- export const trackNumber = {
531
- name: 'TrackNumber',
532
- type: 'uint',
533
- } as const satisfies Ebml;
534
-
535
- export const trackUID = {
536
- name: 'TrackUID',
537
- type: 'hex-string',
538
- } as const satisfies Ebml;
539
-
540
- export const color = {
541
- name: 'Colour',
542
- type: 'children',
543
- } as const satisfies Ebml;
544
-
545
- export const transfer = {
546
- name: 'TransferCharacteristics',
547
- type: 'uint',
548
- } as const satisfies Ebml;
549
-
550
- export const matrix = {
551
- name: 'MatrixCoefficients',
552
- type: 'uint',
553
- } as const satisfies Ebml;
554
-
555
- export const primaries = {
556
- name: 'Primaries',
557
- type: 'uint',
558
- } as const satisfies Ebml;
559
-
560
- export const range = {
561
- name: 'Range',
562
- type: 'uint',
563
- } as const satisfies Ebml;
564
-
565
- export const ChromaSitingHorz = {
566
- name: 'ChromaSitingHorz',
567
- type: 'uint',
568
- } as const satisfies Ebml;
569
-
570
- export const ChromaSitingVert = {
571
- name: 'ChromaSitingVert',
572
- type: 'uint',
573
- } as const satisfies Ebml;
574
-
575
- export const language = {
576
- name: 'Language',
577
- type: 'string',
578
- } as const satisfies Ebml;
579
-
580
- export const defaultDuration = {
581
- name: 'DefaultDuration',
582
- type: 'uint',
583
- } as const satisfies Ebml;
584
-
585
- export const codecPrivate = {
586
- name: 'CodecPrivate',
587
- type: 'uint8array',
588
- } as const satisfies Ebml;
589
-
590
- export const blockAdditionsSegment = {
591
- name: 'BlockAdditions',
592
- type: 'uint8array',
593
- } as const satisfies Ebml;
594
-
595
- export const maxBlockAdditionIdSegment = {
596
- name: 'MaxBlockAdditionID',
597
- type: 'uint',
598
- } as const satisfies Ebml;
599
-
600
- export const audioSegment = {
601
- name: 'Audio',
602
- type: 'children',
603
- } as const satisfies Ebml;
604
-
605
- export const videoSegment = {
606
- name: 'Video',
607
- type: 'children',
608
- } as const satisfies Ebml;
609
-
610
- export const flagDefault = {
611
- name: 'FlagDefault',
612
- type: 'uint',
613
- } as const satisfies Ebml;
614
-
615
- export const referenceBlock = {
616
- name: 'ReferenceBlock',
617
- type: 'uint',
618
- } as const satisfies Ebml;
619
-
620
- export const blockElement = {
621
- name: 'Block',
622
- type: 'uint8array',
623
- } as const satisfies Ebml;
624
-
625
- export const codecName = {
626
- name: 'CodecName',
627
- type: 'string',
628
- } as const satisfies Ebml;
629
-
630
- export const trackTimestampScale = {
631
- name: 'TrackTimestampScale',
632
- type: 'float',
633
- } as const satisfies Ebml;
634
-
635
- export const trackEntry = {
636
- name: 'TrackEntry',
637
- type: 'children',
638
- } as const satisfies Ebml;
639
-
640
- export const tracks = {
641
- name: 'Tracks',
642
- type: 'children',
643
- } as const satisfies Ebml;
644
-
645
- export const timestampEntry = {
646
- name: 'Timestamp',
647
- type: 'uint',
648
- } as const satisfies Ebml;
649
-
650
- export const block = {
651
- name: 'Block',
652
- type: 'uint8array',
653
- } as const satisfies Ebml;
654
-
655
- export const simpleBlock = {
656
- name: 'SimpleBlock',
657
- type: 'uint8array',
658
- } as const satisfies Ebml;
659
-
660
- export const blockGroup = {
661
- name: 'BlockGroup',
662
- type: 'children',
663
- } as const satisfies Ebml;
664
-
665
- export const segment = {
666
- name: 'Segment',
667
- type: 'children',
668
- } as const satisfies Ebml;
669
-
670
- export const cluster = {
671
- name: 'Cluster',
672
- type: 'children',
673
- } as const satisfies Ebml;
674
-
675
- export type CodecIdSegment = EbmlParsed<typeof codecID>;
676
- export type TrackTypeSegment = EbmlParsed<typeof trackType>;
677
- export type WidthSegment = EbmlParsed<typeof widthType>;
678
- export type HeightSegment = EbmlParsed<typeof heightType>;
679
- export type TimestampScaleSegment = EbmlParsed<typeof timestampScale>;
680
- export type DurationSegment = EbmlParsed<typeof duration>;
681
- export type DisplayWidthSegment = EbmlParsed<typeof displayWidth>;
682
- export type DisplayHeightSegment = EbmlParsed<typeof displayHeight>;
683
- export type TrackNumberSegment = EbmlParsed<typeof trackNumber>;
684
- export type AudioSegment = EbmlParsed<typeof audioSegment>;
685
- export type VideoSegment = EbmlParsed<typeof videoSegment>;
686
- export type TrackEntry = EbmlParsed<typeof trackEntry>;
687
- export type BlockSegment = EbmlParsed<typeof block>;
688
- export type SimpleBlockSegment = EbmlParsed<typeof simpleBlock>;
689
- export type MainSegment = EbmlParsed<typeof segment>;
690
- export type ClusterSegment = EbmlParsed<typeof cluster>;
691
- export type Tracks = EbmlParsed<typeof tracks>;
692
-
693
- export type FloatWithSize = {value: number; size: '32' | '64'};
694
- export type UintWithSize = {value: number; byteLength: number | null};
695
-
696
- export type EbmlValue<
697
- T extends Ebml,
698
- Child = PossibleEbml,
699
- > = T extends EbmlWithUint
700
- ? UintWithSize
701
- : T extends EbmlWithString
702
- ? string
703
- : T extends EbmlWithFloat
704
- ? FloatWithSize
705
- : T extends EbmlWithHexString
706
- ? string
707
- : T extends EbmlWithUint8Array
708
- ? Uint8Array
709
- : T extends EbmlWithChildren
710
- ? Child[]
711
- : never;
712
-
713
- export type EbmlValueOrUint8Array<T extends Ebml> =
714
- | Uint8Array
715
- | EbmlValue<T, PossibleEbmlOrUint8Array>;
716
-
717
- export type EbmlParsed<T extends Ebml> = {
718
- type: T['name'];
719
- value: EbmlValue<T>;
720
- minVintWidth: number | null;
721
- };
722
-
723
- export type EbmlParsedOrUint8Array<T extends Ebml> = {
724
- type: T['name'];
725
- value: EbmlValueOrUint8Array<T>;
726
- minVintWidth: number | null;
727
- };
728
-
729
- export const ebmlMap = {
730
- [matroskaElements.Header]: matroskaHeader,
731
- [matroskaElements.DocType]: docType,
732
- [matroskaElements.DocTypeVersion]: docTypeVersion,
733
- [matroskaElements.DocTypeReadVersion]: docTypeReadVersion,
734
- [matroskaElements.EBMLVersion]: ebmlVersion,
735
- [matroskaElements.EBMLReadVersion]: ebmlReadVersion,
736
- [matroskaElements.EBMLMaxIDLength]: ebmlMaxIdLength,
737
- [matroskaElements.EBMLMaxSizeLength]: ebmlMaxSizeLength,
738
- [matroskaElements.Void]: voidEbml,
739
- [matroskaElements.Cues]: {
740
- name: 'Cues',
741
- type: 'uint8array',
742
- },
743
- [matroskaElements.DateUTC]: {
744
- name: 'DateUTC',
745
- type: 'uint8array',
746
- },
747
- [matroskaElements.TrackTimestampScale]: trackTimestampScale,
748
- [matroskaElements.CodecDelay]: {
749
- name: 'CodecDelay',
750
- type: 'uint8array',
751
- },
752
- [matroskaElements.SeekPreRoll]: {
753
- name: 'SeekPreRoll',
754
- type: 'uint8array',
755
- },
756
- [matroskaElements.DiscardPadding]: {
757
- name: 'DiscardPadding',
758
- type: 'uint8array',
759
- },
760
- [matroskaElements.OutputSamplingFrequency]: {
761
- name: 'OutputSamplingFrequency',
762
- type: 'uint8array',
763
- },
764
- [matroskaElements.CodecName]: codecName,
765
- [matroskaElements.Position]: {
766
- name: 'Position',
767
- type: 'uint8array',
768
- },
769
- [matroskaElements.SliceDuration]: {
770
- name: 'SliceDuration',
771
- type: 'uint8array',
772
- },
773
- [matroskaElements.SeekHead]: seekHead,
774
- [matroskaElements.Seek]: seek,
775
- [matroskaElements.SeekID]: seekId,
776
- [matroskaElements.SeekPosition]: seekPosition,
777
- [matroskaElements.Crc32]: {
778
- name: 'Crc32',
779
- type: 'uint8array',
780
- },
781
- [matroskaElements.MuxingApp]: muxingApp,
782
- [matroskaElements.WritingApp]: {
783
- name: 'WritingApp',
784
- type: 'string',
785
- },
786
- [matroskaElements.SegmentUUID]: {
787
- name: 'SegmentUUID',
788
- type: 'string',
789
- },
790
- [matroskaElements.Duration]: duration,
791
- [matroskaElements.CodecID]: {
792
- name: 'CodecID',
793
- type: 'string',
794
- },
795
- [matroskaElements.TrackType]: trackType,
796
- [matroskaElements.PixelWidth]: widthType,
797
- [matroskaElements.PixelHeight]: heightType,
798
- [matroskaElements.TimestampScale]: timestampScale,
799
- [matroskaElements.Info]: infoType,
800
- [matroskaElements.Title]: titleType,
801
- [matroskaElements.SamplingFrequency]: samplingFrequency,
802
- [matroskaElements.Channels]: channels,
803
- [matroskaElements.AlphaMode]: alphaMode,
804
- [matroskaElements.FlagInterlaced]: interlaced,
805
- [matroskaElements.BitDepth]: bitDepth,
806
- [matroskaElements.DisplayHeight]: displayHeight,
807
- [matroskaElements.DisplayWidth]: displayWidth,
808
- [matroskaElements.FlagLacing]: flagLacing,
809
- [matroskaElements.Tags]: tags,
810
- [matroskaElements.Tag]: tagSegment,
811
- [matroskaElements.TrackNumber]: trackNumber,
812
- [matroskaElements.TrackUID]: trackUID,
813
- [matroskaElements.Colour]: color,
814
- [matroskaElements.Language]: language,
815
- [matroskaElements.DefaultDuration]: defaultDuration,
816
- [matroskaElements.CodecPrivate]: codecPrivate,
817
- [matroskaElements.BlockAdditions]: blockAdditionsSegment,
818
- [matroskaElements.MaxBlockAdditionID]: maxBlockAdditionIdSegment,
819
- [matroskaElements.Audio]: audioSegment,
820
- [matroskaElements.Video]: videoSegment,
821
- [matroskaElements.FlagDefault]: flagDefault,
822
- [matroskaElements.ReferenceBlock]: referenceBlock,
823
- [matroskaElements.TrackEntry]: trackEntry,
824
- [matroskaElements.Timestamp]: {
825
- name: 'Timestamp',
826
- type: 'uint',
827
- },
828
- [matroskaElements.Tracks]: tracks,
829
- [matroskaElements.Block]: block,
830
- [matroskaElements.SimpleBlock]: simpleBlock,
831
- [matroskaElements.BlockGroup]: blockGroup,
832
- [matroskaElements.Segment]: {
833
- name: 'Segment',
834
- type: 'children',
835
- },
836
- [matroskaElements.Cluster]: {
837
- name: 'Cluster',
838
- type: 'children',
839
- },
840
- [matroskaElements.TransferCharacteristics]: transfer,
841
- [matroskaElements.MatrixCoefficients]: matrix,
842
- [matroskaElements.Primaries]: primaries,
843
- [matroskaElements.Range]: range,
844
- [matroskaElements.ChromaSitingHorz]: ChromaSitingHorz,
845
- [matroskaElements.ChromaSitingVert]: ChromaSitingVert,
846
- } as const satisfies Partial<Record<MatroskaElement, Ebml>>;
847
-
848
- export type PossibleEbml = Prettify<
849
- {
850
- [key in keyof typeof ebmlMap]: EbmlParsed<(typeof ebmlMap)[key]>;
851
- }[keyof typeof ebmlMap]
852
- >;
853
-
854
- export type OffsetAndChildren = {
855
- offset: number;
856
- children: OffsetAndChildren[];
857
- field: keyof typeof matroskaElements;
858
- };
859
-
860
- export const incrementOffsetAndChildren = (
861
- offset: OffsetAndChildren,
862
- increment: number,
863
- ): OffsetAndChildren => {
864
- return {
865
- offset: offset.offset + increment,
866
- children: offset.children.map((c) =>
867
- incrementOffsetAndChildren(c, increment),
868
- ),
869
- field: offset.field,
870
- };
871
- };
872
-
873
- export type BytesAndOffset = {
874
- bytes: Uint8Array;
875
- offsets: OffsetAndChildren;
876
- };
877
-
878
- export type PossibleEbmlOrUint8Array =
879
- | Prettify<
880
- {
881
- [key in keyof typeof ebmlMap]: EbmlParsedOrUint8Array<
882
- (typeof ebmlMap)[key]
883
- >;
884
- }[keyof typeof ebmlMap]
885
- >
886
- | BytesAndOffset;
887
-
888
- export type EbmlMapKey = keyof typeof ebmlMap;