@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.
- package/buffer.js +2 -0
- package/dist/boxes/iso-base-media/get-sample-positions-from-track.js +1 -1
- package/dist/boxes/iso-base-media/make-track.js +14 -2
- package/dist/boxes/iso-base-media/mdat/mdat.d.ts +13 -4
- package/dist/boxes/iso-base-media/mdat/mdat.js +20 -5
- package/dist/boxes/iso-base-media/moov/moov.d.ts +2 -1
- package/dist/boxes/iso-base-media/moov/moov.js +2 -1
- package/dist/boxes/iso-base-media/process-box.d.ts +6 -3
- package/dist/boxes/iso-base-media/process-box.js +66 -12
- package/dist/boxes/iso-base-media/stsd/avcc.d.ts +1 -1
- package/dist/boxes/iso-base-media/stsd/avcc.js +2 -2
- package/dist/boxes/iso-base-media/stsd/ctts.js +2 -5
- package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +1 -1
- package/dist/boxes/iso-base-media/stsd/hvcc.js +2 -2
- package/dist/boxes/iso-base-media/stsd/mebx.d.ts +2 -1
- package/dist/boxes/iso-base-media/stsd/mebx.js +2 -1
- package/dist/boxes/iso-base-media/stsd/samples.d.ts +4 -2
- package/dist/boxes/iso-base-media/stsd/samples.js +69 -11
- package/dist/boxes/iso-base-media/stsd/stsd.d.ts +2 -1
- package/dist/boxes/iso-base-media/stsd/stsd.js +2 -1
- package/dist/boxes/iso-base-media/trak/trak.d.ts +2 -1
- package/dist/boxes/iso-base-media/trak/trak.js +2 -1
- package/dist/boxes/iso-base-media/traversal.d.ts +39 -0
- package/dist/boxes/iso-base-media/traversal.js +201 -0
- package/dist/boxes/webm/color.d.ts +4 -0
- package/dist/boxes/webm/color.js +127 -0
- package/dist/boxes/webm/description.js +1 -1
- package/dist/boxes/webm/ebml.d.ts +1 -1
- package/dist/boxes/webm/get-ready-tracks.js +3 -3
- package/dist/boxes/webm/get-sample-from-block.js +1 -1
- package/dist/boxes/webm/make-track.d.ts +9 -0
- package/dist/boxes/webm/make-track.js +260 -0
- package/dist/boxes/webm/parse-ebml.js +2 -2
- package/dist/boxes/webm/segments/all-segments.d.ts +36 -3
- package/dist/boxes/webm/segments/all-segments.js +34 -6
- package/dist/boxes/webm/segments/parse-children.js +6 -0
- package/dist/boxes/webm/traversal.d.ts +26 -1
- package/dist/boxes/webm/traversal.js +214 -1
- package/dist/buffer-iterator.d.ts +4 -1
- package/dist/buffer-iterator.js +31 -5
- package/dist/create/cluster-segment.js +0 -2
- package/dist/create/cluster.d.ts +16 -2
- package/dist/create/cluster.js +17 -10
- package/dist/create/create-media.d.ts +4 -2
- package/dist/create/create-media.js +101 -22
- package/dist/create/make-duration-with-padding.d.ts +1 -1
- package/dist/create/make-duration-with-padding.js +3 -3
- package/dist/create/matroska-cues.d.ts +6 -0
- package/dist/create/matroska-cues.js +49 -0
- package/dist/create/matroska-info.js +1 -1
- package/dist/create/matroska-seek.d.ts +6 -0
- package/dist/create/matroska-seek.js +32 -0
- package/dist/create/matroska-segment.d.ts +1 -0
- package/dist/create/matroska-segment.js +3 -2
- package/dist/create/matroska-trackentry.d.ts +9 -14
- package/dist/create/matroska-trackentry.js +79 -102
- package/dist/emit-available-info.d.ts +12 -0
- package/dist/emit-available-info.js +133 -0
- package/dist/esm/buffer.mjs +57 -0
- package/dist/esm/from-fetch.mjs +107 -0
- package/dist/esm/from-node.mjs +49 -0
- package/dist/esm/from-web-file.mjs +49 -0
- package/dist/esm/index.mjs +6822 -0
- package/dist/esm/web-fs.mjs +67 -0
- package/dist/get-audio-codec.d.ts +5 -5
- package/dist/get-audio-codec.js +44 -57
- package/dist/get-container.d.ts +4 -0
- package/dist/get-container.js +26 -0
- package/dist/get-duration.js +1 -1
- package/dist/get-fps.js +1 -1
- package/dist/get-sample-aspect-ratio.d.ts +1 -1
- package/dist/get-sample-aspect-ratio.js +19 -19
- package/dist/get-tracks.d.ts +13 -0
- package/dist/get-tracks.js +8 -8
- package/dist/get-video-codec.d.ts +5 -2
- package/dist/get-video-codec.js +111 -21
- package/dist/has-all-info.d.ts +2 -2
- package/dist/has-all-info.js +23 -9
- package/dist/index.d.ts +4 -1
- package/dist/options.d.ts +97 -30
- package/dist/parse-media.js +59 -69
- package/dist/parse-video.d.ts +2 -1
- package/dist/parse-video.js +3 -1
- package/dist/parser-context.d.ts +1 -0
- package/dist/parser-state.js +1 -2
- package/dist/readers/from-fetch.d.ts +12 -0
- package/dist/readers/from-fetch.js +83 -17
- package/dist/readers/from-node.js +14 -3
- package/dist/readers/from-web-file.js +15 -2
- package/dist/readers/reader.d.ts +7 -1
- package/dist/samples-from-moof.js +1 -1
- package/dist/truthy.d.ts +3 -0
- package/dist/truthy.js +7 -0
- package/dist/writers/buffer.d.ts +2 -0
- package/dist/writers/buffer.js +58 -0
- package/dist/writers/web-fs.d.ts +1 -0
- package/dist/writers/web-fs.js +42 -18
- package/dist/writers/writer.d.ts +4 -2
- package/fetch.js +2 -0
- package/node.js +2 -0
- package/package.json +43 -8
- package/web-file.js +2 -0
- package/web-fs.js +2 -0
- package/.eslintrc +0 -8
- package/dist/av1-codec-string.d.ts +0 -3
- package/dist/av1-codec-string.js +0 -91
- package/dist/boxes/iso-base-media/ftype.d.ts +0 -9
- package/dist/boxes/iso-base-media/ftype.js +0 -31
- package/dist/boxes/iso-base-media/stsd/avcc-hvcc.d.ts +0 -20
- package/dist/boxes/iso-base-media/stsd/avcc-hvcc.js +0 -73
- package/dist/boxes/iso-base-media/stts/stts.d.ts +0 -15
- package/dist/boxes/iso-base-media/stts/stts.js +0 -35
- package/dist/boxes/webm/bitstream/av1/bitstream-frame-header.d.ts +0 -14
- package/dist/boxes/webm/bitstream/av1/bitstream-frame-header.js +0 -67
- package/dist/boxes/webm/bitstream/av1/bitstream-frame.d.ts +0 -11
- package/dist/boxes/webm/bitstream/av1/bitstream-frame.js +0 -14
- package/dist/boxes/webm/bitstream/av1/chroma-sample-position.d.ts +0 -6
- package/dist/boxes/webm/bitstream/av1/chroma-sample-position.js +0 -9
- package/dist/boxes/webm/bitstream/av1/color-config.d.ts +0 -16
- package/dist/boxes/webm/bitstream/av1/color-config.js +0 -103
- package/dist/boxes/webm/bitstream/av1/color-primaries.d.ts +0 -14
- package/dist/boxes/webm/bitstream/av1/color-primaries.js +0 -17
- package/dist/boxes/webm/bitstream/av1/decoder-model-info.d.ts +0 -9
- package/dist/boxes/webm/bitstream/av1/decoder-model-info.js +0 -17
- package/dist/boxes/webm/bitstream/av1/frame.d.ts +0 -0
- package/dist/boxes/webm/bitstream/av1/frame.js +0 -1
- package/dist/boxes/webm/bitstream/av1/header-segment.d.ts +0 -51
- package/dist/boxes/webm/bitstream/av1/header-segment.js +0 -183
- package/dist/boxes/webm/bitstream/av1/matrix-coefficients.d.ts +0 -17
- package/dist/boxes/webm/bitstream/av1/matrix-coefficients.js +0 -20
- package/dist/boxes/webm/bitstream/av1/operating-parameters-info.d.ts +0 -10
- package/dist/boxes/webm/bitstream/av1/operating-parameters-info.js +0 -15
- package/dist/boxes/webm/bitstream/av1/temporal-point-info.d.ts +0 -5
- package/dist/boxes/webm/bitstream/av1/temporal-point-info.js +0 -8
- package/dist/boxes/webm/bitstream/av1/timing-info.d.ts +0 -8
- package/dist/boxes/webm/bitstream/av1/timing-info.js +0 -20
- package/dist/boxes/webm/bitstream/av1/transfer-characteristics.d.ts +0 -21
- package/dist/boxes/webm/bitstream/av1/transfer-characteristics.js +0 -24
- package/dist/boxes/webm/bitstream/av1/uvlc.d.ts +0 -2
- package/dist/boxes/webm/bitstream/av1/uvlc.js +0 -20
- package/dist/boxes/webm/bitstream/av1.d.ts +0 -20
- package/dist/boxes/webm/bitstream/av1.js +0 -118
- package/dist/boxes/webm/bitstream/h264/get-h264-descriptor.d.ts +0 -0
- package/dist/boxes/webm/bitstream/h264/get-h264-descriptor.js +0 -1
- package/dist/boxes/webm/segments/duration.d.ts +0 -6
- package/dist/boxes/webm/segments/duration.js +0 -19
- package/dist/boxes/webm/segments/info.d.ts +0 -9
- package/dist/boxes/webm/segments/info.js +0 -22
- package/dist/boxes/webm/segments/main.d.ts +0 -5
- package/dist/boxes/webm/segments/main.js +0 -2
- package/dist/boxes/webm/segments/muxing.d.ts +0 -6
- package/dist/boxes/webm/segments/muxing.js +0 -11
- package/dist/boxes/webm/segments/seek-head.d.ts +0 -9
- package/dist/boxes/webm/segments/seek-head.js +0 -22
- package/dist/boxes/webm/segments/seek-position.d.ts +0 -6
- package/dist/boxes/webm/segments/seek-position.js +0 -11
- package/dist/boxes/webm/segments/seek.d.ts +0 -13
- package/dist/boxes/webm/segments/seek.js +0 -35
- package/dist/boxes/webm/segments/timestamp-scale.d.ts +0 -6
- package/dist/boxes/webm/segments/timestamp-scale.js +0 -11
- package/dist/boxes/webm/segments/tracks.d.ts +0 -8
- package/dist/boxes/webm/segments/tracks.js +0 -21
- package/dist/boxes/webm/segments/unknown.d.ts +0 -6
- package/dist/boxes/webm/segments/unknown.js +0 -11
- package/dist/boxes/webm/segments/void.d.ts +0 -6
- package/dist/boxes/webm/segments/void.js +0 -11
- package/dist/boxes/webm/segments/writing.d.ts +0 -6
- package/dist/boxes/webm/segments/writing.js +0 -11
- package/dist/boxes/webm/tracks.d.ts +0 -8
- package/dist/boxes/webm/tracks.js +0 -21
- package/dist/combine-uint8array.d.ts +0 -1
- package/dist/combine-uint8array.js +0 -13
- package/dist/from-web.d.ts +0 -2
- package/dist/from-web.js +0 -45
- package/dist/get-video-metadata.d.ts +0 -2
- package/dist/get-video-metadata.js +0 -44
- package/dist/read-and-increment-offset.d.ts +0 -28
- package/dist/read-and-increment-offset.js +0 -177
- package/dist/understand-vorbis.d.ts +0 -1
- package/dist/understand-vorbis.js +0 -12
- package/input.webm +0 -0
- package/src/add-new-matroska-tracks.ts +0 -23
- package/src/boxes/iso-base-media/base-type.ts +0 -4
- package/src/boxes/iso-base-media/esds/decoder-specific-config.ts +0 -68
- package/src/boxes/iso-base-media/esds/esds-descriptors.ts +0 -135
- package/src/boxes/iso-base-media/esds/esds.ts +0 -49
- package/src/boxes/iso-base-media/ftyp.ts +0 -39
- package/src/boxes/iso-base-media/get-sample-positions-from-track.ts +0 -69
- package/src/boxes/iso-base-media/make-track.ts +0 -116
- package/src/boxes/iso-base-media/mdat/mdat.ts +0 -140
- package/src/boxes/iso-base-media/mdhd.ts +0 -59
- package/src/boxes/iso-base-media/moov/moov.ts +0 -43
- package/src/boxes/iso-base-media/mvhd.ts +0 -114
- package/src/boxes/iso-base-media/process-box.ts +0 -748
- package/src/boxes/iso-base-media/stsd/av1c.ts +0 -19
- package/src/boxes/iso-base-media/stsd/avcc.ts +0 -36
- package/src/boxes/iso-base-media/stsd/colr.ts +0 -49
- package/src/boxes/iso-base-media/stsd/ctts.ts +0 -64
- package/src/boxes/iso-base-media/stsd/hvcc.ts +0 -32
- package/src/boxes/iso-base-media/stsd/keys.ts +0 -27
- package/src/boxes/iso-base-media/stsd/mebx.ts +0 -54
- package/src/boxes/iso-base-media/stsd/pasp.ts +0 -32
- package/src/boxes/iso-base-media/stsd/samples.ts +0 -359
- package/src/boxes/iso-base-media/stsd/stco.ts +0 -52
- package/src/boxes/iso-base-media/stsd/stsc.ts +0 -61
- package/src/boxes/iso-base-media/stsd/stsd.ts +0 -55
- package/src/boxes/iso-base-media/stsd/stss.ts +0 -47
- package/src/boxes/iso-base-media/stsd/stsz.ts +0 -75
- package/src/boxes/iso-base-media/stsd/stts.ts +0 -62
- package/src/boxes/iso-base-media/tfdt.ts +0 -37
- package/src/boxes/iso-base-media/tfhd.ts +0 -66
- package/src/boxes/iso-base-media/tkhd.ts +0 -150
- package/src/boxes/iso-base-media/to-date.ts +0 -9
- package/src/boxes/iso-base-media/trak/trak.ts +0 -43
- package/src/boxes/iso-base-media/trun.ts +0 -74
- package/src/boxes/iso-base-media/void-box.ts +0 -4
- package/src/boxes/webm/allowed-partial-segments.ts +0 -1
- package/src/boxes/webm/av1-codec-private.ts +0 -113
- package/src/boxes/webm/description.ts +0 -104
- package/src/boxes/webm/ebml.ts +0 -98
- package/src/boxes/webm/get-ready-tracks.ts +0 -36
- package/src/boxes/webm/get-sample-from-block.ts +0 -125
- package/src/boxes/webm/get-track.ts +0 -257
- package/src/boxes/webm/make-header.ts +0 -253
- package/src/boxes/webm/parse-ebml.ts +0 -259
- package/src/boxes/webm/parse-webm-header.ts +0 -18
- package/src/boxes/webm/segments/all-segments.ts +0 -888
- package/src/boxes/webm/segments/block-simple-block-flags.ts +0 -52
- package/src/boxes/webm/segments/parse-children.ts +0 -144
- package/src/boxes/webm/segments/track-entry.ts +0 -38
- package/src/boxes/webm/segments.ts +0 -147
- package/src/boxes/webm/traversal.ts +0 -45
- package/src/buffer-iterator.ts +0 -555
- package/src/create/cluster-segment.ts +0 -62
- package/src/create/cluster.ts +0 -64
- package/src/create/create-media.ts +0 -136
- package/src/create/make-duration-with-padding.ts +0 -15
- package/src/create/matroska-header.ts +0 -63
- package/src/create/matroska-info.ts +0 -30
- package/src/create/matroska-segment.ts +0 -10
- package/src/create/matroska-trackentry.ts +0 -325
- package/src/create/timescale.ts +0 -1
- package/src/get-audio-codec.ts +0 -270
- package/src/get-dimensions.ts +0 -47
- package/src/get-duration.ts +0 -103
- package/src/get-fps.ts +0 -113
- package/src/get-sample-aspect-ratio.ts +0 -204
- package/src/get-sample-positions.ts +0 -93
- package/src/get-tracks.ts +0 -147
- package/src/get-video-codec.ts +0 -117
- package/src/has-all-info.ts +0 -81
- package/src/index.ts +0 -18
- package/src/make-hvc1-codec-strings.ts +0 -55
- package/src/options.ts +0 -118
- package/src/parse-media.ts +0 -183
- package/src/parse-result.ts +0 -79
- package/src/parse-video.ts +0 -83
- package/src/parser-context.ts +0 -10
- package/src/parser-state.ts +0 -178
- package/src/readers/from-fetch.ts +0 -90
- package/src/readers/from-node.ts +0 -51
- package/src/readers/from-web-file.ts +0 -49
- package/src/readers/reader.ts +0 -15
- package/src/samples-from-moof.ts +0 -102
- package/src/test/aspect-ratio.test.ts +0 -42
- package/src/test/av1.test.ts +0 -108
- package/src/test/create-matroska.test.ts +0 -287
- package/src/test/duration.test.ts +0 -18
- package/src/test/keys.test.ts +0 -47
- package/src/test/matroska.test.ts +0 -463
- package/src/test/mvhd.test.ts +0 -94
- package/src/test/parse-esds.test.ts +0 -98
- package/src/test/parse-stco.test.ts +0 -61
- package/src/test/parse-stsc.test.ts +0 -104
- package/src/test/parse-stsz.test.ts +0 -57
- package/src/test/parse-stts.test.ts +0 -38
- package/src/test/parse-video.test.ts +0 -101
- package/src/test/parse-webm.test.ts +0 -17
- package/src/test/samples-from-moof.test.ts +0 -2496
- package/src/test/stream-local.test.ts +0 -743
- package/src/test/stream-remote.test.ts +0 -59
- package/src/test/stream-samples.test.ts +0 -181
- package/src/test/stsd.test.ts +0 -265
- package/src/test/tkhd.test.ts +0 -87
- package/src/traversal.ts +0 -528
- package/src/webcodec-sample-types.ts +0 -29
- package/src/writers/web-fs.ts +0 -50
- package/src/writers/writer.ts +0 -12
- package/tsconfig.json +0 -14
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transferCharacteristics = void 0;
|
|
4
|
-
exports.transferCharacteristics = {
|
|
5
|
-
TC_RESERVED_0: 0,
|
|
6
|
-
TC_BT_709: 1,
|
|
7
|
-
TC_UNSPECIFIED: 2,
|
|
8
|
-
TC_RESERVED_3: 3,
|
|
9
|
-
TC_BT_470_M: 4,
|
|
10
|
-
TC_BT_470_B_G: 5,
|
|
11
|
-
TC_BT_601: 6,
|
|
12
|
-
TC_SMPTE_240: 7,
|
|
13
|
-
TC_LINEAR: 8,
|
|
14
|
-
TC_LOG_100: 9,
|
|
15
|
-
TC_LOG_100_SQRT10: 10,
|
|
16
|
-
TC_IEC_61966: 11,
|
|
17
|
-
TC_BT_1361: 12,
|
|
18
|
-
TC_SRGB: 13,
|
|
19
|
-
TC_BT_2020_10_BIT: 14,
|
|
20
|
-
TC_BT_2020_12_BIT: 15,
|
|
21
|
-
TC_SMPTE_2084: 16,
|
|
22
|
-
TC_SMPTE_428: 17,
|
|
23
|
-
TC_HLG: 18,
|
|
24
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uvlc = void 0;
|
|
4
|
-
const uvlc = (stream) => {
|
|
5
|
-
let leadingZeroBits = 0;
|
|
6
|
-
// eslint-disable-next-line no-constant-condition
|
|
7
|
-
while (true) {
|
|
8
|
-
const done = stream.getBits(1);
|
|
9
|
-
if (done) {
|
|
10
|
-
break;
|
|
11
|
-
}
|
|
12
|
-
leadingZeroBits++;
|
|
13
|
-
}
|
|
14
|
-
if (leadingZeroBits >= 32) {
|
|
15
|
-
return (1 << 32) - 1;
|
|
16
|
-
}
|
|
17
|
-
const value = stream.getBits(leadingZeroBits);
|
|
18
|
-
return value + (1 << leadingZeroBits) - 1;
|
|
19
|
-
};
|
|
20
|
-
exports.uvlc = uvlc;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
import type { ParserContext } from '../../../parser-context';
|
|
3
|
-
import type { VideoSample } from '../../../webcodec-sample-types';
|
|
4
|
-
import { type Av1BitstreamHeaderSegment } from './av1/header-segment';
|
|
5
|
-
type Av1BitstreamUimplementedSegment = {
|
|
6
|
-
type: 'av1-bitstream-unimplemented';
|
|
7
|
-
};
|
|
8
|
-
export type Av1BitstreamSegment = Av1BitstreamHeaderSegment | Av1BitstreamUimplementedSegment;
|
|
9
|
-
export declare const av1Bitstream: ({ stream, length, onVideoSample, trackNumber, context, timecode, }: {
|
|
10
|
-
stream: BufferIterator;
|
|
11
|
-
length: number;
|
|
12
|
-
onVideoSample: (trackId: number, sample: VideoSample) => void;
|
|
13
|
-
trackNumber: number;
|
|
14
|
-
context: ParserContext;
|
|
15
|
-
timecode: number;
|
|
16
|
-
}) => {
|
|
17
|
-
discarded: boolean;
|
|
18
|
-
segment: Av1BitstreamSegment;
|
|
19
|
-
};
|
|
20
|
-
export {};
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.av1Bitstream = void 0;
|
|
4
|
-
const combine_uint8array_1 = require("../../../combine-uint8array");
|
|
5
|
-
const bitstream_frame_1 = require("./av1/bitstream-frame");
|
|
6
|
-
const header_segment_1 = require("./av1/header-segment");
|
|
7
|
-
const av1Bitstream = ({ stream, length, onVideoSample, trackNumber, context, timecode, }) => {
|
|
8
|
-
var _a, _b;
|
|
9
|
-
const address = stream.counter.getOffset();
|
|
10
|
-
stream.startReadingBits();
|
|
11
|
-
// log this to understand:
|
|
12
|
-
// (firstByte.toString(2).padStart(8, '0'));
|
|
13
|
-
// get bit 0
|
|
14
|
-
const obuForbiddenBit = stream.getBits(1);
|
|
15
|
-
if (obuForbiddenBit) {
|
|
16
|
-
throw new Error('obuForbiddenBit is not 0');
|
|
17
|
-
}
|
|
18
|
-
// get bits 1-3
|
|
19
|
-
const obuType = stream.getBits(4);
|
|
20
|
-
// get bit 4
|
|
21
|
-
const obuExtensionFlag = stream.getBits(1);
|
|
22
|
-
// get bit 5
|
|
23
|
-
const obuHasSizeField = stream.getBits(1);
|
|
24
|
-
// reserved bit
|
|
25
|
-
stream.getBits(1);
|
|
26
|
-
let size = null;
|
|
27
|
-
if (obuExtensionFlag) {
|
|
28
|
-
// extension
|
|
29
|
-
stream.getBits(6);
|
|
30
|
-
}
|
|
31
|
-
if (obuHasSizeField) {
|
|
32
|
-
// size
|
|
33
|
-
size = stream.leb128();
|
|
34
|
-
}
|
|
35
|
-
/*
|
|
36
|
-
console.log(
|
|
37
|
-
address.toString(16),
|
|
38
|
-
firstByte.toString(2).padStart(8, '0'),
|
|
39
|
-
obuForbiddenBit,
|
|
40
|
-
obuType,
|
|
41
|
-
obuExtensionFlag,
|
|
42
|
-
obuHasSizeField,
|
|
43
|
-
reservedBit,
|
|
44
|
-
size,
|
|
45
|
-
);
|
|
46
|
-
*/
|
|
47
|
-
const bytesReadSoFar = stream.counter.getOffset() - address;
|
|
48
|
-
const segment = obuType === 1
|
|
49
|
-
? (0, header_segment_1.parseAv1BitstreamHeaderSegment)(stream)
|
|
50
|
-
: {
|
|
51
|
-
type: 'av1-bitstream-unimplemented',
|
|
52
|
-
};
|
|
53
|
-
if (obuType === 6) {
|
|
54
|
-
const head = context.parserState.getAv1BitstreamHeaderSegment();
|
|
55
|
-
if (!head) {
|
|
56
|
-
throw new Error('Expected header segment');
|
|
57
|
-
}
|
|
58
|
-
const header = (0, bitstream_frame_1.parseAv1Frame)({
|
|
59
|
-
stream,
|
|
60
|
-
headerSegment: head.segment,
|
|
61
|
-
});
|
|
62
|
-
const bytesAdvanced = stream.counter.getOffset() - address;
|
|
63
|
-
stream.counter.decrement(bytesAdvanced);
|
|
64
|
-
if (size === null) {
|
|
65
|
-
throw new Error('Expected size in OBU');
|
|
66
|
-
}
|
|
67
|
-
const clusterTimestamp = context.parserState.getClusterTimestamp();
|
|
68
|
-
if (clusterTimestamp === null) {
|
|
69
|
-
throw new Error('Expected cluster timestamp');
|
|
70
|
-
}
|
|
71
|
-
const toSlice = size + bytesReadSoFar;
|
|
72
|
-
const frame = stream.getSlice(toSlice);
|
|
73
|
-
let extraBytes = null;
|
|
74
|
-
if (!context.parserState.getIsFirstAv1FrameRead()) {
|
|
75
|
-
context.parserState.setIsFirstAv1FrameRead();
|
|
76
|
-
extraBytes =
|
|
77
|
-
(_b = (_a = context.parserState.getAv1BitstreamHeaderSegment()) === null || _a === void 0 ? void 0 : _a.header) !== null && _b !== void 0 ? _b : null;
|
|
78
|
-
if (!extraBytes) {
|
|
79
|
-
throw new Error('Expected extra bytes');
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
onVideoSample(trackNumber, {
|
|
83
|
-
data: (0, combine_uint8array_1.combineUint8Arrays)(extraBytes, frame),
|
|
84
|
-
timestamp: timecode + clusterTimestamp,
|
|
85
|
-
duration: undefined,
|
|
86
|
-
trackId: trackNumber,
|
|
87
|
-
cts: null,
|
|
88
|
-
dts: null,
|
|
89
|
-
type: header.header.frameType === 'key' ? 'key' : 'delta',
|
|
90
|
-
});
|
|
91
|
-
stream.stopReadingBits();
|
|
92
|
-
return {
|
|
93
|
-
discarded: true,
|
|
94
|
-
segment,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
stream.stopReadingBits();
|
|
98
|
-
if (size === null) {
|
|
99
|
-
return {
|
|
100
|
-
discarded: false,
|
|
101
|
-
segment,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
const end = stream.counter.getOffset();
|
|
105
|
-
const remaining = (size === null ? length : size + bytesReadSoFar) - (end - address);
|
|
106
|
-
if (remaining > 0) {
|
|
107
|
-
stream.discard(remaining);
|
|
108
|
-
}
|
|
109
|
-
const remainingNow = length - (stream.counter.getOffset() - address);
|
|
110
|
-
if (remainingNow > 0 && remainingNow <= 2) {
|
|
111
|
-
throw new Error('remainingNow > 0 && remainingNow <= 2');
|
|
112
|
-
}
|
|
113
|
-
return {
|
|
114
|
-
discarded: Boolean(size),
|
|
115
|
-
segment,
|
|
116
|
-
};
|
|
117
|
-
};
|
|
118
|
-
exports.av1Bitstream = av1Bitstream;
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseDurationSegment = void 0;
|
|
4
|
-
const parseDurationSegment = (iterator, length) => {
|
|
5
|
-
if (length === 8) {
|
|
6
|
-
return {
|
|
7
|
-
type: 'duration-segment',
|
|
8
|
-
duration: iterator.getFloat64(),
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
if (length === 4) {
|
|
12
|
-
return {
|
|
13
|
-
type: 'duration-segment',
|
|
14
|
-
duration: iterator.getFloat32(),
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
throw new Error('Expected duration segment to be 4 or 8 bytes, but it is ' + length);
|
|
18
|
-
};
|
|
19
|
-
exports.parseDurationSegment = parseDurationSegment;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
import type { ParserContext } from '../../../parser-context';
|
|
3
|
-
import type { MatroskaSegment } from '../segments';
|
|
4
|
-
export type InfoSegment = {
|
|
5
|
-
type: 'info-segment';
|
|
6
|
-
length: number;
|
|
7
|
-
children: MatroskaSegment[];
|
|
8
|
-
};
|
|
9
|
-
export declare const parseInfoSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<InfoSegment>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseInfoSegment = void 0;
|
|
4
|
-
const parse_children_1 = require("./parse-children");
|
|
5
|
-
const parseInfoSegment = async (iterator, length, parserContext) => {
|
|
6
|
-
const children = await (0, parse_children_1.expectChildren)({
|
|
7
|
-
iterator,
|
|
8
|
-
length,
|
|
9
|
-
initialChildren: [],
|
|
10
|
-
wrap: null,
|
|
11
|
-
parserContext,
|
|
12
|
-
});
|
|
13
|
-
if (children.status === 'incomplete') {
|
|
14
|
-
throw new Error('Incomplete children');
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
type: 'info-segment',
|
|
18
|
-
length,
|
|
19
|
-
children: children.segments,
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
exports.parseInfoSegment = parseInfoSegment;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseMuxingSegment = void 0;
|
|
4
|
-
const parseMuxingSegment = (iterator, length) => {
|
|
5
|
-
const value = iterator.getByteString(length);
|
|
6
|
-
return {
|
|
7
|
-
type: 'muxing-app-segment',
|
|
8
|
-
value,
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.parseMuxingSegment = parseMuxingSegment;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
import type { ParserContext } from '../../../parser-context';
|
|
3
|
-
import { type MatroskaSegment } from '../segments';
|
|
4
|
-
export type SeekHeadSegment = {
|
|
5
|
-
type: 'seek-head-segment';
|
|
6
|
-
children: MatroskaSegment[];
|
|
7
|
-
length: number;
|
|
8
|
-
};
|
|
9
|
-
export declare const parseSeekHeadSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<SeekHeadSegment>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseSeekHeadSegment = void 0;
|
|
4
|
-
const parse_children_1 = require("./parse-children");
|
|
5
|
-
const parseSeekHeadSegment = async (iterator, length, parserContext) => {
|
|
6
|
-
const children = await (0, parse_children_1.expectChildren)({
|
|
7
|
-
iterator,
|
|
8
|
-
length,
|
|
9
|
-
initialChildren: [],
|
|
10
|
-
wrap: null,
|
|
11
|
-
parserContext,
|
|
12
|
-
});
|
|
13
|
-
if (children.status === 'incomplete') {
|
|
14
|
-
throw new Error('Incomplete children');
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
type: 'seek-head-segment',
|
|
18
|
-
length,
|
|
19
|
-
children: children.segments,
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
exports.parseSeekHeadSegment = parseSeekHeadSegment;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
export type SeekPositionSegment = {
|
|
3
|
-
type: 'seek-position-segment';
|
|
4
|
-
seekPosition: number;
|
|
5
|
-
};
|
|
6
|
-
export declare const parseSeekPositionSegment: (iterator: BufferIterator, length: number) => SeekPositionSegment;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseSeekPositionSegment = void 0;
|
|
4
|
-
const parseSeekPositionSegment = (iterator, length) => {
|
|
5
|
-
const seekPosition = iterator.getUint(length);
|
|
6
|
-
return {
|
|
7
|
-
type: 'seek-position-segment',
|
|
8
|
-
seekPosition,
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.parseSeekPositionSegment = parseSeekPositionSegment;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
import type { ParserContext } from '../../../parser-context';
|
|
3
|
-
import type { MatroskaSegment } from '../segments';
|
|
4
|
-
export type SeekSegment = {
|
|
5
|
-
type: 'seek-segment';
|
|
6
|
-
children: MatroskaSegment[];
|
|
7
|
-
};
|
|
8
|
-
export declare const parseSeekSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<SeekSegment>;
|
|
9
|
-
export type SeekIdSegment = {
|
|
10
|
-
type: 'seek-id-segment';
|
|
11
|
-
seekId: string;
|
|
12
|
-
};
|
|
13
|
-
export declare const parseSeekIdSegment: (iterator: BufferIterator, length: number) => SeekIdSegment;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseSeekIdSegment = exports.parseSeekSegment = void 0;
|
|
4
|
-
const parse_children_1 = require("./parse-children");
|
|
5
|
-
const parseSeekSegment = async (iterator, length, parserContext) => {
|
|
6
|
-
const children = await (0, parse_children_1.expectChildren)({
|
|
7
|
-
iterator,
|
|
8
|
-
length,
|
|
9
|
-
initialChildren: [],
|
|
10
|
-
wrap: null,
|
|
11
|
-
parserContext,
|
|
12
|
-
});
|
|
13
|
-
if (children.status === 'incomplete') {
|
|
14
|
-
throw new Error('Incomplete children');
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
type: 'seek-segment',
|
|
18
|
-
children: children.segments,
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
exports.parseSeekSegment = parseSeekSegment;
|
|
22
|
-
const parseSeekIdSegment = (iterator, length) => {
|
|
23
|
-
const seekId = '0x' +
|
|
24
|
-
[...iterator.getSlice(length)]
|
|
25
|
-
.map((b) => b.toString(16).padStart(2, '0'))
|
|
26
|
-
.join('');
|
|
27
|
-
if (seekId === null) {
|
|
28
|
-
throw new Error('Not enough bytes to parse seek id');
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
type: 'seek-id-segment',
|
|
32
|
-
seekId,
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
exports.parseSeekIdSegment = parseSeekIdSegment;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
export type TimestampScaleSegment = {
|
|
3
|
-
type: 'timestamp-scale-segment';
|
|
4
|
-
timestampScale: number;
|
|
5
|
-
};
|
|
6
|
-
export declare const parseTimestampScaleSegment: (iterator: BufferIterator) => TimestampScaleSegment;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseTimestampScaleSegment = void 0;
|
|
4
|
-
const parseTimestampScaleSegment = (iterator) => {
|
|
5
|
-
const timestampScale = iterator.getUint(3);
|
|
6
|
-
return {
|
|
7
|
-
type: 'timestamp-scale-segment',
|
|
8
|
-
timestampScale,
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.parseTimestampScaleSegment = parseTimestampScaleSegment;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../../buffer-iterator';
|
|
2
|
-
import type { ParserContext } from '../../../parser-context';
|
|
3
|
-
import type { MatroskaSegment } from '../segments';
|
|
4
|
-
export type TracksSegment = {
|
|
5
|
-
type: 'tracks-segment';
|
|
6
|
-
children: MatroskaSegment[];
|
|
7
|
-
};
|
|
8
|
-
export declare const parseTracksSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<TracksSegment>;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseTracksSegment = void 0;
|
|
4
|
-
const parse_children_1 = require("./parse-children");
|
|
5
|
-
const parseTracksSegment = async (iterator, length, parserContext) => {
|
|
6
|
-
const children = await (0, parse_children_1.expectChildren)({
|
|
7
|
-
iterator,
|
|
8
|
-
length,
|
|
9
|
-
initialChildren: [],
|
|
10
|
-
wrap: null,
|
|
11
|
-
parserContext,
|
|
12
|
-
});
|
|
13
|
-
if (children.status === 'incomplete') {
|
|
14
|
-
throw new Error('Incomplete children');
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
type: 'tracks-segment',
|
|
18
|
-
children: children.segments,
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
exports.parseTracksSegment = parseTracksSegment;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseUnknownSegment = void 0;
|
|
4
|
-
const parseUnknownSegment = (iterator, id, length) => {
|
|
5
|
-
iterator.discard(length);
|
|
6
|
-
return {
|
|
7
|
-
id,
|
|
8
|
-
type: 'unknown-segment',
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.parseUnknownSegment = parseUnknownSegment;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseVoidSegment = void 0;
|
|
4
|
-
const parseVoidSegment = (iterator, length) => {
|
|
5
|
-
iterator.discard(length);
|
|
6
|
-
return {
|
|
7
|
-
type: 'void-segment',
|
|
8
|
-
length,
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.parseVoidSegment = parseVoidSegment;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseWritingSegment = void 0;
|
|
4
|
-
const parseWritingSegment = (iterator, length) => {
|
|
5
|
-
const value = iterator.getByteString(length);
|
|
6
|
-
return {
|
|
7
|
-
type: 'writing-app-segment',
|
|
8
|
-
value,
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.parseWritingSegment = parseWritingSegment;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { BufferIterator } from '../../buffer-iterator';
|
|
2
|
-
import type { ParserContext } from '../../parser-context';
|
|
3
|
-
import type { MatroskaSegment } from './segments';
|
|
4
|
-
export type TracksSegment = {
|
|
5
|
-
type: 'tracks-segment';
|
|
6
|
-
children: MatroskaSegment[];
|
|
7
|
-
};
|
|
8
|
-
export declare const parseTracksSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<TracksSegment>;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseTracksSegment = void 0;
|
|
4
|
-
const parse_children_1 = require("./segments/parse-children");
|
|
5
|
-
const parseTracksSegment = async (iterator, length, parserContext) => {
|
|
6
|
-
const children = await (0, parse_children_1.expectChildren)({
|
|
7
|
-
iterator,
|
|
8
|
-
length,
|
|
9
|
-
initialChildren: [],
|
|
10
|
-
wrap: null,
|
|
11
|
-
parserContext,
|
|
12
|
-
});
|
|
13
|
-
if (children.status === 'incomplete') {
|
|
14
|
-
throw new Error('Incomplete children');
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
type: 'tracks-segment',
|
|
18
|
-
children: children.segments,
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
exports.parseTracksSegment = parseTracksSegment;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const combineUint8Arrays: (array1: Uint8Array | null, array2: Uint8Array) => Uint8Array;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.combineUint8Arrays = void 0;
|
|
4
|
-
const combineUint8Arrays = (array1, array2) => {
|
|
5
|
-
if (!array1) {
|
|
6
|
-
return array2;
|
|
7
|
-
}
|
|
8
|
-
const combined = new Uint8Array(array1.length + array2.length);
|
|
9
|
-
combined.set(array1);
|
|
10
|
-
combined.set(array2, array1.length);
|
|
11
|
-
return combined;
|
|
12
|
-
};
|
|
13
|
-
exports.combineUint8Arrays = combineUint8Arrays;
|
package/dist/from-web.d.ts
DELETED
package/dist/from-web.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.webReader = void 0;
|
|
4
|
-
exports.webReader = {
|
|
5
|
-
read: async (src, range) => {
|
|
6
|
-
const resolvedUrl = typeof window !== 'undefined' && typeof window.location !== 'undefined'
|
|
7
|
-
? new URL(src, window.location.origin).toString()
|
|
8
|
-
: src;
|
|
9
|
-
if (!resolvedUrl.startsWith('https://') &&
|
|
10
|
-
!resolvedUrl.startsWith('http://')) {
|
|
11
|
-
return Promise.reject(new Error(resolvedUrl +
|
|
12
|
-
' is not a URL - needs to start with http:// or https://. If you want to read a local file, pass `nodeReader` to parseMedia().'));
|
|
13
|
-
}
|
|
14
|
-
const res = await fetch(resolvedUrl, {
|
|
15
|
-
headers: range === null
|
|
16
|
-
? {}
|
|
17
|
-
: {
|
|
18
|
-
Range: `bytes=${`${range[0]}-${range[1]}`}`,
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
if (!res.body) {
|
|
22
|
-
throw new Error('No body');
|
|
23
|
-
}
|
|
24
|
-
const length = res.headers.get('content-length');
|
|
25
|
-
if (!length) {
|
|
26
|
-
throw new Error('No content-length');
|
|
27
|
-
}
|
|
28
|
-
const contentLength = length === null ? null : parseInt(length, 10);
|
|
29
|
-
const reader = res.body.getReader();
|
|
30
|
-
return { reader, contentLength };
|
|
31
|
-
},
|
|
32
|
-
getLength: async (src) => {
|
|
33
|
-
const res = await fetch(src, {
|
|
34
|
-
method: 'HEAD',
|
|
35
|
-
});
|
|
36
|
-
if (!res.body) {
|
|
37
|
-
throw new Error('No body');
|
|
38
|
-
}
|
|
39
|
-
const length = res.headers.get('content-length');
|
|
40
|
-
if (!length) {
|
|
41
|
-
throw new Error('No content-length');
|
|
42
|
-
}
|
|
43
|
-
return parseInt(length, 10);
|
|
44
|
-
},
|
|
45
|
-
};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseMedia = void 0;
|
|
4
|
-
const buffer_iterator_1 = require("./buffer-iterator");
|
|
5
|
-
const from_web_1 = require("./from-web");
|
|
6
|
-
const get_dimensions_1 = require("./get-dimensions");
|
|
7
|
-
const get_duration_1 = require("./get-duration");
|
|
8
|
-
const get_fps_1 = require("./get-fps");
|
|
9
|
-
const has_all_info_1 = require("./has-all-info");
|
|
10
|
-
const parse_video_1 = require("./parse-video");
|
|
11
|
-
const parseMedia = async (src, options, readerInterface = from_web_1.webReader) => {
|
|
12
|
-
const reader = await readerInterface.read(src, null);
|
|
13
|
-
const returnValue = {};
|
|
14
|
-
const iterator = (0, buffer_iterator_1.getArrayBufferIterator)(new Uint8Array([]));
|
|
15
|
-
let parseResult = (0, parse_video_1.parseVideo)(iterator);
|
|
16
|
-
while (parseResult.status === 'incomplete') {
|
|
17
|
-
const result = await reader.read();
|
|
18
|
-
if (result.done) {
|
|
19
|
-
break;
|
|
20
|
-
}
|
|
21
|
-
iterator.addData(result.value);
|
|
22
|
-
parseResult = parseResult.continueParsing();
|
|
23
|
-
if ((0, has_all_info_1.hasAllInfo)(options, parseResult)) {
|
|
24
|
-
if (!reader.closed) {
|
|
25
|
-
reader.cancel(new Error('has all information'));
|
|
26
|
-
}
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (options.dimensions) {
|
|
31
|
-
returnValue.dimensions = (0, get_dimensions_1.getDimensions)(parseResult.segments);
|
|
32
|
-
}
|
|
33
|
-
if (options.durationInSeconds) {
|
|
34
|
-
returnValue.durationInSeconds = (0, get_duration_1.getDuration)(parseResult.segments);
|
|
35
|
-
}
|
|
36
|
-
if (options.fps) {
|
|
37
|
-
returnValue.fps = (0, get_fps_1.getFps)(parseResult.segments);
|
|
38
|
-
}
|
|
39
|
-
if (options.boxes) {
|
|
40
|
-
returnValue.boxes = parseResult.segments;
|
|
41
|
-
}
|
|
42
|
-
return returnValue;
|
|
43
|
-
};
|
|
44
|
-
exports.parseMedia = parseMedia;
|