@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,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseAv1FrameHeader = exports.getFrameType = void 0;
4
- const temporal_point_info_1 = require("./temporal-point-info");
5
- const getFrameType = (frameType) => {
6
- switch (frameType) {
7
- case 0:
8
- return 'key';
9
- case 1:
10
- return 'delta';
11
- case 2:
12
- return 'intra';
13
- case 3:
14
- return 'switch';
15
- default:
16
- throw new Error('Unknown frame type');
17
- }
18
- };
19
- exports.getFrameType = getFrameType;
20
- // https://aomediacodec.github.io/av1-spec/#uncompressed-header-syntax
21
- // Only implmementing to get the basic stuff
22
- const parseAv1FrameHeader = ({ stream, headerSegment, }) => {
23
- var _a, _b;
24
- if (headerSegment.reduced_still_picture_header) {
25
- return {
26
- type: 'av1-frame-header',
27
- frameType: 'key',
28
- temporalPointInfo: null,
29
- };
30
- }
31
- let temporalPointInfo = null;
32
- const show_existing_frame = Boolean(stream.getBits(1));
33
- if (show_existing_frame) {
34
- const frame_to_show_map_idx = stream.getBits(3);
35
- if (headerSegment.decoder_model_info &&
36
- !((_a = headerSegment.timing_info) === null || _a === void 0 ? void 0 : _a.equal_picture_interval)) {
37
- temporalPointInfo = (0, temporal_point_info_1.getTemporalPointInfo)({
38
- stream,
39
- frame_presentation_time_length_minus_1: headerSegment.decoder_model_info
40
- .frame_presentation_time_length_minus_1,
41
- });
42
- }
43
- // TODO: this is wrong, there should be a store
44
- const frame_type = (0, exports.getFrameType)(frame_to_show_map_idx);
45
- return {
46
- type: 'av1-frame-header',
47
- frameType: frame_type,
48
- temporalPointInfo,
49
- };
50
- }
51
- const frameType = (0, exports.getFrameType)(stream.getBits(2));
52
- const showFrame = Boolean(stream.getBits(1));
53
- if (showFrame &&
54
- headerSegment.decoder_model_info &&
55
- !((_b = headerSegment.timing_info) === null || _b === void 0 ? void 0 : _b.equal_picture_interval)) {
56
- temporalPointInfo = (0, temporal_point_info_1.getTemporalPointInfo)({
57
- stream,
58
- frame_presentation_time_length_minus_1: headerSegment.decoder_model_info.frame_presentation_time_length_minus_1,
59
- });
60
- }
61
- return {
62
- type: 'av1-frame-header',
63
- frameType,
64
- temporalPointInfo,
65
- };
66
- };
67
- exports.parseAv1FrameHeader = parseAv1FrameHeader;
@@ -1,11 +0,0 @@
1
- import type { BufferIterator } from '../../../../buffer-iterator';
2
- import { type Av1FrameHeader } from './bitstream-frame-header';
3
- import type { Av1BitstreamHeaderSegment } from './header-segment';
4
- export type Av1Frame = {
5
- type: 'av1-frame';
6
- header: Av1FrameHeader;
7
- };
8
- export declare const parseAv1Frame: ({ stream, headerSegment, }: {
9
- stream: BufferIterator;
10
- headerSegment: Av1BitstreamHeaderSegment;
11
- }) => Av1Frame;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseAv1Frame = void 0;
4
- const bitstream_frame_header_1 = require("./bitstream-frame-header");
5
- const parseAv1Frame = ({ stream, headerSegment, }) => {
6
- return {
7
- type: 'av1-frame',
8
- header: (0, bitstream_frame_header_1.parseAv1FrameHeader)({
9
- stream,
10
- headerSegment,
11
- }),
12
- };
13
- };
14
- exports.parseAv1Frame = parseAv1Frame;
@@ -1,6 +0,0 @@
1
- export declare const chromaSamplePositions: {
2
- CSP_UNKNOWN: number;
3
- CSP_VERTICAL: number;
4
- CSP_COLOCATED: number;
5
- CSP_RESERVED: number;
6
- };
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.chromaSamplePositions = void 0;
4
- exports.chromaSamplePositions = {
5
- CSP_UNKNOWN: 0,
6
- CSP_VERTICAL: 1,
7
- CSP_COLOCATED: 2,
8
- CSP_RESERVED: 3,
9
- };
@@ -1,16 +0,0 @@
1
- import type { BufferIterator } from '../../../../buffer-iterator';
2
- export type ColorConfig = {
3
- bitDepth: number;
4
- numPlanes: number;
5
- color_primaries: number;
6
- transfer_characteristics: number;
7
- matrix_coefficients: number;
8
- separate_uv_delta_q: number;
9
- color_range: boolean;
10
- subsampling_x: boolean;
11
- subsampling_y: boolean;
12
- chroma_sample_position: number;
13
- mono_chrome: boolean;
14
- color_description_present_flag: boolean;
15
- };
16
- export declare const getColorConfig: (stream: BufferIterator, seq_profile: number) => ColorConfig;
@@ -1,103 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getColorConfig = void 0;
4
- const chroma_sample_position_1 = require("./chroma-sample-position");
5
- const color_primaries_1 = require("./color-primaries");
6
- const matrix_coefficients_1 = require("./matrix-coefficients");
7
- const transfer_characteristics_1 = require("./transfer-characteristics");
8
- const getColorConfig = (stream, seq_profile) => {
9
- const high_bitdepth = Boolean(stream.getBits(1));
10
- let bitDepth = 0;
11
- if (seq_profile === 2 && high_bitdepth) {
12
- const twelve_bit = Boolean(stream.getBits(1));
13
- bitDepth = twelve_bit ? 12 : 10;
14
- }
15
- else if (seq_profile <= 2) {
16
- bitDepth = high_bitdepth ? 10 : 8;
17
- }
18
- const mono_chrome = seq_profile === 1 ? true : Boolean(stream.getBits(1));
19
- const numPlanes = mono_chrome ? 1 : 3;
20
- const color_description_present_flag = Boolean(stream.getBits(1));
21
- const color_primaries = color_description_present_flag
22
- ? stream.getBits(8)
23
- : color_primaries_1.colorPrimaries.CP_UNSPECIFIED;
24
- const transfer_characteristics = color_description_present_flag
25
- ? stream.getBits(8)
26
- : transfer_characteristics_1.transferCharacteristics.TC_UNSPECIFIED;
27
- const matrix_coefficients = color_description_present_flag
28
- ? stream.getBits(8)
29
- : matrix_coefficients_1.matrixCoefficients.MC_UNSPECIFIED;
30
- let chroma_sample_position = chroma_sample_position_1.chromaSamplePositions.CSP_UNKNOWN;
31
- let color_range = false;
32
- let subsampling_x = false;
33
- let subsampling_y = false;
34
- if (mono_chrome) {
35
- color_range = Boolean(stream.getBits(1));
36
- subsampling_x = true;
37
- subsampling_y = true;
38
- return {
39
- bitDepth,
40
- numPlanes,
41
- color_primaries,
42
- transfer_characteristics,
43
- matrix_coefficients,
44
- separate_uv_delta_q: 0,
45
- color_range,
46
- subsampling_x,
47
- subsampling_y,
48
- chroma_sample_position,
49
- mono_chrome,
50
- color_description_present_flag,
51
- };
52
- }
53
- if (color_primaries === color_primaries_1.colorPrimaries.CP_BT_709 &&
54
- transfer_characteristics === transfer_characteristics_1.transferCharacteristics.TC_SRGB &&
55
- matrix_coefficients === matrix_coefficients_1.matrixCoefficients.MC_IDENTITY) {
56
- color_range = true;
57
- subsampling_x = false;
58
- subsampling_y = false;
59
- }
60
- else {
61
- color_range = Boolean(stream.getBits(1));
62
- if (seq_profile === 0) {
63
- subsampling_x = true;
64
- subsampling_y = true;
65
- }
66
- else if (seq_profile === 1) {
67
- subsampling_x = false;
68
- subsampling_y = false;
69
- }
70
- else if (bitDepth === 12) {
71
- subsampling_x = Boolean(stream.getBits(1));
72
- if (subsampling_x) {
73
- subsampling_y = Boolean(stream.getBits(1));
74
- }
75
- else {
76
- subsampling_y = false;
77
- }
78
- }
79
- else {
80
- subsampling_x = true;
81
- subsampling_y = false;
82
- }
83
- if (subsampling_x && subsampling_y) {
84
- chroma_sample_position = stream.getBits(2);
85
- }
86
- }
87
- const separate_uv_delta_q = stream.getBits(1);
88
- return {
89
- bitDepth,
90
- numPlanes,
91
- color_primaries,
92
- transfer_characteristics,
93
- matrix_coefficients,
94
- separate_uv_delta_q,
95
- chroma_sample_position,
96
- color_range,
97
- subsampling_x,
98
- subsampling_y,
99
- mono_chrome,
100
- color_description_present_flag,
101
- };
102
- };
103
- exports.getColorConfig = getColorConfig;
@@ -1,14 +0,0 @@
1
- export declare const colorPrimaries: {
2
- CP_BT_709: number;
3
- CP_UNSPECIFIED: number;
4
- CP_BT_470_M: number;
5
- CP_BT_470_B_G: number;
6
- CP_BT_601: number;
7
- CP_SMPTE_240: number;
8
- CP_GENERIC_FILM: number;
9
- CP_BT_2020: number;
10
- CP_XYZ: number;
11
- CP_SMPTE_431: number;
12
- CP_SMPTE_432: number;
13
- CP_EBU_3213: number;
14
- };
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.colorPrimaries = void 0;
4
- exports.colorPrimaries = {
5
- CP_BT_709: 1,
6
- CP_UNSPECIFIED: 2,
7
- CP_BT_470_M: 4,
8
- CP_BT_470_B_G: 5,
9
- CP_BT_601: 6,
10
- CP_SMPTE_240: 7,
11
- CP_GENERIC_FILM: 8,
12
- CP_BT_2020: 9,
13
- CP_XYZ: 10,
14
- CP_SMPTE_431: 11,
15
- CP_SMPTE_432: 12,
16
- CP_EBU_3213: 22,
17
- };
@@ -1,9 +0,0 @@
1
- import type { BufferIterator } from '../../../../buffer-iterator';
2
- export type DecoderModelInfo = {
3
- type: 'decoder-model-info';
4
- buffer_delay_length_minus_1: number;
5
- num_units_in_decoding_tick: number;
6
- buffer_removal_time_length_minus_1: number;
7
- frame_presentation_time_length_minus_1: number;
8
- };
9
- export declare const parseDecoderModelInfo: (stream: BufferIterator) => DecoderModelInfo;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseDecoderModelInfo = void 0;
4
- const parseDecoderModelInfo = (stream) => {
5
- const buffer_delay_length_minus_1 = stream.getBits(5);
6
- const num_units_in_decoding_tick = stream.getBits(32);
7
- const buffer_removal_time_length_minus_1 = stream.getBits(5);
8
- const frame_presentation_time_length_minus_1 = stream.getBits(5);
9
- return {
10
- type: 'decoder-model-info',
11
- buffer_delay_length_minus_1,
12
- num_units_in_decoding_tick,
13
- buffer_removal_time_length_minus_1,
14
- frame_presentation_time_length_minus_1,
15
- };
16
- };
17
- exports.parseDecoderModelInfo = parseDecoderModelInfo;
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,51 +0,0 @@
1
- import type { BufferIterator } from '../../../../buffer-iterator';
2
- import type { ColorConfig } from './color-config';
3
- import { type DecoderModelInfo } from './decoder-model-info';
4
- import { type OperatingParametersInfo } from './operating-parameters-info';
5
- import { type TimingInfo } from './timing-info';
6
- type SeqLevelIndex = {
7
- operating_point_idc: number;
8
- seq_level_idx: number;
9
- seq_tier: number;
10
- };
11
- export type Av1BitstreamHeaderSegment = {
12
- type: 'av1-bitstream-header';
13
- seq_profile: number;
14
- still_picture: boolean;
15
- reduced_still_picture_header: boolean;
16
- timing_info_present_flag: boolean;
17
- decoder_model_info_present_flag: boolean;
18
- initial_display_delay_present_flag: boolean;
19
- operating_points_cnt_minus_1: number;
20
- seq_level: SeqLevelIndex[];
21
- timing_info: TimingInfo | null;
22
- decoder_model_info: DecoderModelInfo | null;
23
- operating_parameters_info: OperatingParametersInfo[];
24
- initial_display_delay_minus_1: number[];
25
- frame_width_bits_minus_1: number;
26
- frame_height_bits_minus_1: number;
27
- max_frame_width_minus_1: number;
28
- max_frame_height_minus_1: number;
29
- delta_frame_id_length_minus_2: number | null;
30
- additional_frame_id_length_minus_1: number | null;
31
- use_128x128_superblock: boolean;
32
- enable_filter_intra: boolean;
33
- enable_intra_edge_filter: boolean;
34
- color_config: ColorConfig;
35
- film_grain_params_present: boolean;
36
- enable_interintra_compound: number;
37
- enable_masked_compound: number;
38
- enable_warped_motion: number;
39
- enable_order_hint: number;
40
- enable_dual_filter: number;
41
- enable_jnt_comp: boolean;
42
- enable_ref_frame_mvs: boolean;
43
- seq_force_screen_content_tools: number;
44
- seq_force_integer_mv: number;
45
- enable_superres: boolean;
46
- enable_cdef: boolean;
47
- enable_restoration: boolean;
48
- orderHintBits: number;
49
- };
50
- export declare const parseAv1BitstreamHeaderSegment: (stream: BufferIterator) => Av1BitstreamHeaderSegment;
51
- export {};
@@ -1,183 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseAv1BitstreamHeaderSegment = void 0;
4
- const color_config_1 = require("./color-config");
5
- const decoder_model_info_1 = require("./decoder-model-info");
6
- const operating_parameters_info_1 = require("./operating-parameters-info");
7
- const timing_info_1 = require("./timing-info");
8
- const makeSeqLevelIdx = () => {
9
- return {
10
- operating_point_idc: 0,
11
- seq_level_idx: 0,
12
- seq_tier: 0,
13
- };
14
- };
15
- const SELECT_SCREEN_CONTENT_TOOLS = 2;
16
- const SELECT_INTEGER_MV = 2;
17
- const parseAv1BitstreamHeaderSegment = (stream) => {
18
- // https://aomediacodec.github.io/av1-spec/av1-spec.pdf
19
- // Page 41
20
- const seq_profile = stream.getBits(3);
21
- const still_picture = Boolean(stream.getBits(1));
22
- const reduced_still_picture_header = Boolean(stream.getBits(1));
23
- let timing_info_present_flag = false;
24
- let decoder_model_info_present_flag = false;
25
- let initial_display_delay_present_flag = false;
26
- let operating_points_cnt_minus_1 = 1;
27
- const seq_level = [];
28
- let timing_info = null;
29
- let decoder_model_info = null;
30
- const operating_parameters_info = [];
31
- const initial_display_delay_minus_1 = [];
32
- if (reduced_still_picture_header) {
33
- timing_info_present_flag = false;
34
- decoder_model_info_present_flag = false;
35
- initial_display_delay_present_flag = false;
36
- operating_points_cnt_minus_1 = 0;
37
- seq_level[0] = makeSeqLevelIdx();
38
- seq_level[0].seq_level_idx = stream.getBits(5);
39
- }
40
- else {
41
- timing_info_present_flag = Boolean(stream.getBits(1));
42
- if (timing_info_present_flag) {
43
- timing_info = (0, timing_info_1.getTimingInfo)(stream);
44
- decoder_model_info_present_flag = Boolean(stream.getBits(1));
45
- if (decoder_model_info_present_flag) {
46
- decoder_model_info = (0, decoder_model_info_1.parseDecoderModelInfo)(stream);
47
- }
48
- }
49
- initial_display_delay_present_flag = Boolean(stream.getBits(1));
50
- operating_points_cnt_minus_1 = stream.getBits(5);
51
- for (let i = 0; i <= operating_points_cnt_minus_1; i++) {
52
- seq_level[i] = makeSeqLevelIdx();
53
- seq_level[i].operating_point_idc = stream.getBits(12);
54
- seq_level[i].seq_level_idx = stream.getBits(5);
55
- if (seq_level[i].seq_level_idx > 7) {
56
- seq_level[i].seq_tier = stream.getBits(1);
57
- }
58
- else {
59
- seq_level[i].seq_tier = 0;
60
- }
61
- if (decoder_model_info) {
62
- const decoder_model_present_for_this_op = Boolean(stream.getBits(1));
63
- if (decoder_model_present_for_this_op) {
64
- operating_parameters_info.push((0, operating_parameters_info_1.parseOperatingParametersInfo)({
65
- stream,
66
- buffer_delay_length_minus_1: decoder_model_info.buffer_delay_length_minus_1,
67
- }));
68
- }
69
- }
70
- if (initial_display_delay_present_flag) {
71
- const initial_display_delay_present_for_this_op = Boolean(stream.getBits(1));
72
- if (initial_display_delay_present_for_this_op) {
73
- initial_display_delay_minus_1.push(stream.getBits(4));
74
- }
75
- }
76
- }
77
- }
78
- const frame_width_bits_minus_1 = stream.getBits(4);
79
- const frame_height_bits_minus_1 = stream.getBits(4);
80
- const n = frame_width_bits_minus_1 + 1;
81
- const max_frame_width_minus_1 = stream.getBits(n);
82
- const m = frame_height_bits_minus_1 + 1;
83
- const max_frame_height_minus_1 = stream.getBits(m);
84
- let frame_id_numbers_present_flag = false;
85
- if (!reduced_still_picture_header) {
86
- frame_id_numbers_present_flag = Boolean(stream.getBits(1));
87
- }
88
- let delta_frame_id_length_minus_2 = null;
89
- let additional_frame_id_length_minus_1 = null;
90
- if (frame_id_numbers_present_flag) {
91
- delta_frame_id_length_minus_2 = stream.getBits(4);
92
- additional_frame_id_length_minus_1 = stream.getBits(3);
93
- }
94
- const use_128x128_superblock = Boolean(stream.getBits(1));
95
- const enable_filter_intra = Boolean(stream.getBits(1));
96
- const enable_intra_edge_filter = Boolean(stream.getBits(1));
97
- let enable_interintra_compound = 0;
98
- let enable_masked_compound = 0;
99
- let enable_warped_motion = 0;
100
- let enable_dual_filter = 0;
101
- let enable_order_hint = 0;
102
- let enable_jnt_comp = false;
103
- let enable_ref_frame_mvs = false;
104
- let seq_force_screen_content_tools = SELECT_SCREEN_CONTENT_TOOLS;
105
- let seq_force_integer_mv = SELECT_INTEGER_MV;
106
- let orderHintBits = 0;
107
- if (!reduced_still_picture_header) {
108
- enable_interintra_compound = stream.getBits(1);
109
- enable_masked_compound = stream.getBits(1);
110
- enable_warped_motion = stream.getBits(1);
111
- enable_dual_filter = stream.getBits(1);
112
- enable_order_hint = stream.getBits(1);
113
- enable_jnt_comp = enable_order_hint ? Boolean(stream.getBits(1)) : false;
114
- enable_ref_frame_mvs = enable_order_hint
115
- ? Boolean(stream.getBits(1))
116
- : false;
117
- const seq_choose_screen_content_tools = stream.getBits(1);
118
- seq_force_screen_content_tools = seq_choose_screen_content_tools
119
- ? SELECT_SCREEN_CONTENT_TOOLS
120
- : stream.getBits(1);
121
- if (seq_choose_screen_content_tools > 0) {
122
- const seq_choose_integer_mv = stream.getBits(1);
123
- seq_force_integer_mv = seq_choose_integer_mv
124
- ? SELECT_INTEGER_MV
125
- : stream.getBits(1);
126
- }
127
- else {
128
- seq_force_integer_mv = SELECT_INTEGER_MV;
129
- }
130
- if (enable_order_hint) {
131
- const order_hint_bits_minus_1 = stream.getBits(3);
132
- orderHintBits = order_hint_bits_minus_1 + 1;
133
- }
134
- else {
135
- orderHintBits = 0;
136
- }
137
- }
138
- const enable_superres = Boolean(stream.getBits(1));
139
- const enable_cdef = Boolean(stream.getBits(1));
140
- const enable_restoration = Boolean(stream.getBits(1));
141
- const color_config = (0, color_config_1.getColorConfig)(stream, seq_profile);
142
- const film_grain_params_present = Boolean(stream.getBits(1));
143
- return {
144
- type: 'av1-bitstream-header',
145
- seq_profile,
146
- still_picture,
147
- reduced_still_picture_header,
148
- timing_info_present_flag,
149
- decoder_model_info_present_flag,
150
- initial_display_delay_present_flag,
151
- operating_points_cnt_minus_1,
152
- seq_level,
153
- timing_info,
154
- decoder_model_info,
155
- operating_parameters_info,
156
- initial_display_delay_minus_1,
157
- frame_width_bits_minus_1,
158
- frame_height_bits_minus_1,
159
- max_frame_width_minus_1,
160
- max_frame_height_minus_1,
161
- delta_frame_id_length_minus_2,
162
- additional_frame_id_length_minus_1,
163
- use_128x128_superblock,
164
- enable_filter_intra,
165
- enable_intra_edge_filter,
166
- color_config,
167
- film_grain_params_present,
168
- enable_interintra_compound,
169
- enable_masked_compound,
170
- enable_warped_motion,
171
- enable_order_hint,
172
- enable_dual_filter,
173
- enable_jnt_comp,
174
- enable_ref_frame_mvs,
175
- seq_force_screen_content_tools,
176
- seq_force_integer_mv,
177
- enable_superres,
178
- enable_cdef,
179
- enable_restoration,
180
- orderHintBits,
181
- };
182
- };
183
- exports.parseAv1BitstreamHeaderSegment = parseAv1BitstreamHeaderSegment;
@@ -1,17 +0,0 @@
1
- export declare const matrixCoefficients: {
2
- MC_IDENTITY: number;
3
- MC_BT_709: number;
4
- MC_UNSPECIFIED: number;
5
- MC_RESERVED_3: number;
6
- MC_FCC: number;
7
- MC_BT_470_B_G: number;
8
- MC_BT_601: number;
9
- MC_SMPTE_240: number;
10
- MC_SMPTE_YCGCO: number;
11
- MC_BT_2020_NCL: number;
12
- MC_BT_2020_CL: number;
13
- MC_SMPTE_2085: number;
14
- MC_CHROMAT_NCL: number;
15
- MC_CHROMAT_CL: number;
16
- MC_ICTCP: number;
17
- };
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.matrixCoefficients = void 0;
4
- exports.matrixCoefficients = {
5
- MC_IDENTITY: 0,
6
- MC_BT_709: 1,
7
- MC_UNSPECIFIED: 2,
8
- MC_RESERVED_3: 3,
9
- MC_FCC: 4,
10
- MC_BT_470_B_G: 5,
11
- MC_BT_601: 6,
12
- MC_SMPTE_240: 7,
13
- MC_SMPTE_YCGCO: 8,
14
- MC_BT_2020_NCL: 9,
15
- MC_BT_2020_CL: 10,
16
- MC_SMPTE_2085: 11,
17
- MC_CHROMAT_NCL: 12,
18
- MC_CHROMAT_CL: 13,
19
- MC_ICTCP: 14,
20
- };
@@ -1,10 +0,0 @@
1
- import type { BufferIterator } from '../../../../buffer-iterator';
2
- export type OperatingParametersInfo = {
3
- decoder_buffer_delay: number;
4
- encoder_buffer_delay: number;
5
- low_delay_mode_flag: boolean;
6
- };
7
- export declare const parseOperatingParametersInfo: ({ stream, buffer_delay_length_minus_1, }: {
8
- stream: BufferIterator;
9
- buffer_delay_length_minus_1: number;
10
- }) => OperatingParametersInfo;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseOperatingParametersInfo = void 0;
4
- const parseOperatingParametersInfo = ({ stream, buffer_delay_length_minus_1, }) => {
5
- const n = buffer_delay_length_minus_1 + 1;
6
- const decoder_buffer_delay = stream.getBits(n);
7
- const encoder_buffer_delay = stream.getBits(n);
8
- const low_delay_mode_flag = Boolean(stream.getBits(1));
9
- return {
10
- decoder_buffer_delay,
11
- encoder_buffer_delay,
12
- low_delay_mode_flag,
13
- };
14
- };
15
- exports.parseOperatingParametersInfo = parseOperatingParametersInfo;
@@ -1,5 +0,0 @@
1
- import type { BufferIterator } from '../../../../buffer-iterator';
2
- export declare const getTemporalPointInfo: ({ stream, frame_presentation_time_length_minus_1, }: {
3
- stream: BufferIterator;
4
- frame_presentation_time_length_minus_1: number;
5
- }) => number;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTemporalPointInfo = void 0;
4
- const getTemporalPointInfo = ({ stream, frame_presentation_time_length_minus_1, }) => {
5
- const n = frame_presentation_time_length_minus_1 + 1;
6
- return stream.getBits(n);
7
- };
8
- exports.getTemporalPointInfo = getTemporalPointInfo;
@@ -1,8 +0,0 @@
1
- import type { BufferIterator } from '../../../../buffer-iterator';
2
- export type TimingInfo = {
3
- num_units_in_display_tick: number;
4
- time_scale: number;
5
- equal_picture_interval: boolean;
6
- num_ticks_per_picture_minus_1: number;
7
- };
8
- export declare const getTimingInfo: (stream: BufferIterator) => TimingInfo;
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTimingInfo = void 0;
4
- const uvlc_1 = require("./uvlc");
5
- const getTimingInfo = (stream) => {
6
- const num_units_in_display_tick = stream.getBits(32);
7
- const time_scale = stream.getBits(32);
8
- const equal_picture_interval = Boolean(stream.getBits(1));
9
- let num_ticks_per_picture_minus_1 = 0;
10
- if (equal_picture_interval) {
11
- num_ticks_per_picture_minus_1 = (0, uvlc_1.uvlc)(stream);
12
- }
13
- return {
14
- num_units_in_display_tick,
15
- time_scale,
16
- equal_picture_interval,
17
- num_ticks_per_picture_minus_1,
18
- };
19
- };
20
- exports.getTimingInfo = getTimingInfo;
@@ -1,21 +0,0 @@
1
- export declare const transferCharacteristics: {
2
- TC_RESERVED_0: number;
3
- TC_BT_709: number;
4
- TC_UNSPECIFIED: number;
5
- TC_RESERVED_3: number;
6
- TC_BT_470_M: number;
7
- TC_BT_470_B_G: number;
8
- TC_BT_601: number;
9
- TC_SMPTE_240: number;
10
- TC_LINEAR: number;
11
- TC_LOG_100: number;
12
- TC_LOG_100_SQRT10: number;
13
- TC_IEC_61966: number;
14
- TC_BT_1361: number;
15
- TC_SRGB: number;
16
- TC_BT_2020_10_BIT: number;
17
- TC_BT_2020_12_BIT: number;
18
- TC_SMPTE_2084: number;
19
- TC_SMPTE_428: number;
20
- TC_HLG: number;
21
- };