mediabunny 1.3.1 → 1.3.3
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/README.md +2 -0
- package/dist/modules/codec-data.js +2 -2
- package/dist/modules/codec.js +2 -2
- package/dist/modules/conversion.js +7 -7
- package/dist/modules/index.js +14 -14
- package/dist/modules/input-format.js +11 -11
- package/dist/modules/input-track.js +5 -5
- package/dist/modules/input.js +4 -4
- package/dist/modules/isobmff/isobmff-boxes.js +5 -5
- package/dist/modules/isobmff/isobmff-demuxer.js +9 -9
- package/dist/modules/isobmff/isobmff-muxer.js +10 -10
- package/dist/modules/matroska/matroska-demuxer.js +9 -9
- package/dist/modules/matroska/matroska-muxer.js +8 -8
- package/dist/modules/media-sink.js +7 -7
- package/dist/modules/media-source.js +7 -7
- package/dist/modules/mp3/mp3-demuxer.js +6 -6
- package/dist/modules/mp3/mp3-muxer.js +4 -4
- package/dist/modules/mp3/mp3-reader.js +2 -2
- package/dist/modules/mp3/mp3-writer.js +1 -1
- package/dist/modules/muxer.js +1 -1
- package/dist/modules/ogg/ogg-demuxer.js +9 -9
- package/dist/modules/ogg/ogg-misc.js +2 -2
- package/dist/modules/ogg/ogg-muxer.js +6 -6
- package/dist/modules/ogg/ogg-reader.js +1 -1
- package/dist/modules/output-format.js +6 -6
- package/dist/modules/output.js +4 -4
- package/dist/modules/packet.js +1 -1
- package/dist/modules/reader.js +1 -1
- package/dist/modules/sample.js +1 -1
- package/dist/modules/source.js +1 -1
- package/dist/modules/target.js +1 -1
- package/dist/modules/wave/wave-demuxer.js +6 -6
- package/dist/modules/wave/wave-muxer.js +5 -5
- package/dist/modules/writer.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -49,6 +49,8 @@ Core features include:
|
|
|
49
49
|
npm install mediabunny
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
Requires any JavaScript environment that can run ECMAScript 2021 or later. Mediabunny is expected to be run in modern browsers. For types, TypeScript 5.7 or later is required.
|
|
53
|
+
|
|
52
54
|
### Read file metadata
|
|
53
55
|
|
|
54
56
|
```js
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { VP9_LEVEL_TABLE } from './codec';
|
|
9
|
-
import { assert, assertNever, Bitstream, last, readExpGolomb, readSignedExpGolomb, toDataView, toUint8Array, } from './misc';
|
|
8
|
+
import { VP9_LEVEL_TABLE } from './codec.js';
|
|
9
|
+
import { assert, assertNever, Bitstream, last, readExpGolomb, readSignedExpGolomb, toDataView, toUint8Array, } from './misc.js';
|
|
10
10
|
// References for AVC/HEVC code:
|
|
11
11
|
// ISO 14496-15
|
|
12
12
|
// Rec. ITU-T H.264
|
package/dist/modules/codec.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { customAudioEncoders, customVideoEncoders } from './custom-coder';
|
|
9
|
-
import { Bitstream, COLOR_PRIMARIES_MAP, MATRIX_COEFFICIENTS_MAP, TRANSFER_CHARACTERISTICS_MAP, assert, bytesToHexString, isAllowSharedBufferSource, last, reverseBitsU32, toDataView, } from './misc';
|
|
8
|
+
import { customAudioEncoders, customVideoEncoders } from './custom-coder.js';
|
|
9
|
+
import { Bitstream, COLOR_PRIMARIES_MAP, MATRIX_COEFFICIENTS_MAP, TRANSFER_CHARACTERISTICS_MAP, assert, bytesToHexString, isAllowSharedBufferSource, last, reverseBitsU32, toDataView, } from './misc.js';
|
|
10
10
|
/**
|
|
11
11
|
* List of known video codecs, ordered by encoding preference.
|
|
12
12
|
* @public
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { AUDIO_CODECS, getFirstEncodableVideoCodec, getEncodableAudioCodecs, NON_PCM_AUDIO_CODECS, Quality, QUALITY_HIGH, VIDEO_CODECS, } from './codec';
|
|
9
|
-
import { Input } from './input';
|
|
10
|
-
import { AudioSampleSink, CanvasSink, EncodedPacketSink, VideoSampleSink, } from './media-sink';
|
|
11
|
-
import { EncodedVideoPacketSource, EncodedAudioPacketSource, VideoSampleSource, AudioSampleSource, } from './media-source';
|
|
12
|
-
import { assert, clamp, normalizeRotation, promiseWithResolvers } from './misc';
|
|
13
|
-
import { Output } from './output';
|
|
14
|
-
import { AudioSample, VideoSample } from './sample';
|
|
8
|
+
import { AUDIO_CODECS, getFirstEncodableVideoCodec, getEncodableAudioCodecs, NON_PCM_AUDIO_CODECS, Quality, QUALITY_HIGH, VIDEO_CODECS, } from './codec.js';
|
|
9
|
+
import { Input } from './input.js';
|
|
10
|
+
import { AudioSampleSink, CanvasSink, EncodedPacketSink, VideoSampleSink, } from './media-sink.js';
|
|
11
|
+
import { EncodedVideoPacketSource, EncodedAudioPacketSource, VideoSampleSource, AudioSampleSource, } from './media-source.js';
|
|
12
|
+
import { assert, clamp, normalizeRotation, promiseWithResolvers } from './misc.js';
|
|
13
|
+
import { Output } from './output.js';
|
|
14
|
+
import { AudioSample, VideoSample } from './sample.js';
|
|
15
15
|
const FALLBACK_NUMBER_OF_CHANNELS = 2;
|
|
16
16
|
const FALLBACK_SAMPLE_RATE = 48000;
|
|
17
17
|
/**
|
package/dist/modules/index.js
CHANGED
|
@@ -7,18 +7,18 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/// <reference types="dom-mediacapture-transform" preserve="true" />
|
|
9
9
|
/// <reference types="dom-webcodecs" preserve="true" />
|
|
10
|
-
export { Output, ALL_TRACK_TYPES, } from './output';
|
|
11
|
-
export { OutputFormat, IsobmffOutputFormat, Mp4OutputFormat, MovOutputFormat, MkvOutputFormat, WebMOutputFormat, Mp3OutputFormat, WavOutputFormat, OggOutputFormat, } from './output-format';
|
|
12
|
-
export { MediaSource, VideoSource, EncodedVideoPacketSource, VideoSampleSource, CanvasSource, MediaStreamVideoTrackSource, AudioSource, EncodedAudioPacketSource, AudioSampleSource, AudioBufferSource, MediaStreamAudioTrackSource, SubtitleSource, TextSubtitleSource, } from './media-source';
|
|
13
|
-
export { VIDEO_CODECS, PCM_AUDIO_CODECS, NON_PCM_AUDIO_CODECS, AUDIO_CODECS, SUBTITLE_CODECS, Quality, QUALITY_VERY_LOW, QUALITY_LOW, QUALITY_MEDIUM, QUALITY_HIGH, QUALITY_VERY_HIGH, canEncode, canEncodeVideo, canEncodeAudio, canEncodeSubtitles, getEncodableCodecs, getEncodableVideoCodecs, getEncodableAudioCodecs, getEncodableSubtitleCodecs, getFirstEncodableVideoCodec, getFirstEncodableAudioCodec, getFirstEncodableSubtitleCodec, } from './codec';
|
|
14
|
-
export { Target, BufferTarget, StreamTarget } from './target';
|
|
15
|
-
export { Source, BufferSource, StreamSource, BlobSource, UrlSource, } from './source';
|
|
16
|
-
export { InputFormat, IsobmffInputFormat, Mp4InputFormat, QuickTimeInputFormat, MatroskaInputFormat, WebMInputFormat, Mp3InputFormat, WaveInputFormat, OggInputFormat, ALL_FORMATS, MP4, QTFF, MATROSKA, WEBM, MP3, WAVE, OGG, } from './input-format';
|
|
17
|
-
export { Input } from './input';
|
|
18
|
-
export { InputTrack, InputVideoTrack, InputAudioTrack } from './input-track';
|
|
19
|
-
export { EncodedPacket } from './packet';
|
|
20
|
-
export { VideoSample, AudioSample, } from './sample';
|
|
21
|
-
export { EncodedPacketSink, BaseMediaSampleSink, VideoSampleSink, CanvasSink, AudioSampleSink, AudioBufferSink, } from './media-sink';
|
|
22
|
-
export { Conversion } from './conversion';
|
|
23
|
-
export { CustomVideoDecoder, CustomAudioDecoder, CustomVideoEncoder, CustomAudioEncoder, registerDecoder, registerEncoder, } from './custom-coder';
|
|
10
|
+
export { Output, ALL_TRACK_TYPES, } from './output.js';
|
|
11
|
+
export { OutputFormat, IsobmffOutputFormat, Mp4OutputFormat, MovOutputFormat, MkvOutputFormat, WebMOutputFormat, Mp3OutputFormat, WavOutputFormat, OggOutputFormat, } from './output-format.js';
|
|
12
|
+
export { MediaSource, VideoSource, EncodedVideoPacketSource, VideoSampleSource, CanvasSource, MediaStreamVideoTrackSource, AudioSource, EncodedAudioPacketSource, AudioSampleSource, AudioBufferSource, MediaStreamAudioTrackSource, SubtitleSource, TextSubtitleSource, } from './media-source.js';
|
|
13
|
+
export { VIDEO_CODECS, PCM_AUDIO_CODECS, NON_PCM_AUDIO_CODECS, AUDIO_CODECS, SUBTITLE_CODECS, Quality, QUALITY_VERY_LOW, QUALITY_LOW, QUALITY_MEDIUM, QUALITY_HIGH, QUALITY_VERY_HIGH, canEncode, canEncodeVideo, canEncodeAudio, canEncodeSubtitles, getEncodableCodecs, getEncodableVideoCodecs, getEncodableAudioCodecs, getEncodableSubtitleCodecs, getFirstEncodableVideoCodec, getFirstEncodableAudioCodec, getFirstEncodableSubtitleCodec, } from './codec.js';
|
|
14
|
+
export { Target, BufferTarget, StreamTarget } from './target.js';
|
|
15
|
+
export { Source, BufferSource, StreamSource, BlobSource, UrlSource, } from './source.js';
|
|
16
|
+
export { InputFormat, IsobmffInputFormat, Mp4InputFormat, QuickTimeInputFormat, MatroskaInputFormat, WebMInputFormat, Mp3InputFormat, WaveInputFormat, OggInputFormat, ALL_FORMATS, MP4, QTFF, MATROSKA, WEBM, MP3, WAVE, OGG, } from './input-format.js';
|
|
17
|
+
export { Input } from './input.js';
|
|
18
|
+
export { InputTrack, InputVideoTrack, InputAudioTrack } from './input-track.js';
|
|
19
|
+
export { EncodedPacket } from './packet.js';
|
|
20
|
+
export { VideoSample, AudioSample, } from './sample.js';
|
|
21
|
+
export { EncodedPacketSink, BaseMediaSampleSink, VideoSampleSink, CanvasSink, AudioSampleSink, AudioBufferSink, } from './media-sink.js';
|
|
22
|
+
export { Conversion } from './conversion.js';
|
|
23
|
+
export { CustomVideoDecoder, CustomAudioDecoder, CustomVideoEncoder, CustomAudioEncoder, registerDecoder, registerEncoder, } from './custom-coder.js';
|
|
24
24
|
// 🐡🦔
|
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { IsobmffDemuxer } from './isobmff/isobmff-demuxer';
|
|
9
|
-
import { IsobmffReader } from './isobmff/isobmff-reader';
|
|
10
|
-
import { EBMLId, EBMLReader } from './matroska/ebml';
|
|
11
|
-
import { MatroskaDemuxer } from './matroska/matroska-demuxer';
|
|
12
|
-
import { Mp3Demuxer } from './mp3/mp3-demuxer';
|
|
13
|
-
import { FRAME_HEADER_SIZE } from './mp3/mp3-misc';
|
|
14
|
-
import { Mp3Reader } from './mp3/mp3-reader';
|
|
15
|
-
import { OggDemuxer } from './ogg/ogg-demuxer';
|
|
16
|
-
import { OggReader } from './ogg/ogg-reader';
|
|
17
|
-
import { RiffReader } from './wave/riff-reader';
|
|
18
|
-
import { WaveDemuxer } from './wave/wave-demuxer';
|
|
8
|
+
import { IsobmffDemuxer } from './isobmff/isobmff-demuxer.js';
|
|
9
|
+
import { IsobmffReader } from './isobmff/isobmff-reader.js';
|
|
10
|
+
import { EBMLId, EBMLReader } from './matroska/ebml.js';
|
|
11
|
+
import { MatroskaDemuxer } from './matroska/matroska-demuxer.js';
|
|
12
|
+
import { Mp3Demuxer } from './mp3/mp3-demuxer.js';
|
|
13
|
+
import { FRAME_HEADER_SIZE } from './mp3/mp3-misc.js';
|
|
14
|
+
import { Mp3Reader } from './mp3/mp3-reader.js';
|
|
15
|
+
import { OggDemuxer } from './ogg/ogg-demuxer.js';
|
|
16
|
+
import { OggReader } from './ogg/ogg-reader.js';
|
|
17
|
+
import { RiffReader } from './wave/riff-reader.js';
|
|
18
|
+
import { WaveDemuxer } from './wave/wave-demuxer.js';
|
|
19
19
|
/**
|
|
20
20
|
* Base class representing an input media file format.
|
|
21
21
|
* @public
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { determineVideoPacketType } from './codec-data';
|
|
9
|
-
import { customAudioDecoders, customVideoDecoders } from './custom-coder';
|
|
10
|
-
import { EncodedPacketSink } from './media-sink';
|
|
11
|
-
import { assert } from './misc';
|
|
12
|
-
import { EncodedPacket } from './packet';
|
|
8
|
+
import { determineVideoPacketType } from './codec-data.js';
|
|
9
|
+
import { customAudioDecoders, customVideoDecoders } from './custom-coder.js';
|
|
10
|
+
import { EncodedPacketSink } from './media-sink.js';
|
|
11
|
+
import { assert } from './misc.js';
|
|
12
|
+
import { EncodedPacket } from './packet.js';
|
|
13
13
|
/**
|
|
14
14
|
* Represents a media track in an input file.
|
|
15
15
|
* @public
|
package/dist/modules/input.js
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { InputFormat } from './input-format';
|
|
9
|
-
import { assert } from './misc';
|
|
10
|
-
import { Reader } from './reader';
|
|
11
|
-
import { Source } from './source';
|
|
8
|
+
import { InputFormat } from './input-format.js';
|
|
9
|
+
import { assert } from './misc.js';
|
|
10
|
+
import { Reader } from './reader.js';
|
|
11
|
+
import { Source } from './source.js';
|
|
12
12
|
/**
|
|
13
13
|
* Represents an input media file. This is the root object from which all media read operations start.
|
|
14
14
|
* @public
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { toUint8Array, assert, isU32, last, textEncoder, COLOR_PRIMARIES_MAP, TRANSFER_CHARACTERISTICS_MAP, MATRIX_COEFFICIENTS_MAP, colorSpaceIsComplete, UNDETERMINED_LANGUAGE, } from '../misc';
|
|
9
|
-
import { generateAv1CodecConfigurationFromCodecString, parsePcmCodec, PCM_AUDIO_CODECS, } from '../codec';
|
|
10
|
-
import { formatSubtitleTimestamp } from '../subtitles';
|
|
11
|
-
import { GLOBAL_TIMESCALE, intoTimescale, } from './isobmff-muxer';
|
|
12
|
-
import { parseOpusIdentificationHeader } from '../codec-data';
|
|
8
|
+
import { toUint8Array, assert, isU32, last, textEncoder, COLOR_PRIMARIES_MAP, TRANSFER_CHARACTERISTICS_MAP, MATRIX_COEFFICIENTS_MAP, colorSpaceIsComplete, UNDETERMINED_LANGUAGE, } from '../misc.js';
|
|
9
|
+
import { generateAv1CodecConfigurationFromCodecString, parsePcmCodec, PCM_AUDIO_CODECS, } from '../codec.js';
|
|
10
|
+
import { formatSubtitleTimestamp } from '../subtitles.js';
|
|
11
|
+
import { GLOBAL_TIMESCALE, intoTimescale, } from './isobmff-muxer.js';
|
|
12
|
+
import { parseOpusIdentificationHeader } from '../codec-data.js';
|
|
13
13
|
export class IsobmffBoxWriter {
|
|
14
14
|
constructor(writer) {
|
|
15
15
|
this.writer = writer;
|
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { extractAudioCodecString, extractVideoCodecString, parseAacAudioSpecificConfig, parsePcmCodec, PCM_AUDIO_CODECS, } from '../codec';
|
|
9
|
-
import { extractVp9CodecInfoFromPacket, extractAv1CodecInfoFromPacket, } from '../codec-data';
|
|
10
|
-
import { Demuxer } from '../demuxer';
|
|
11
|
-
import { InputAudioTrack, InputVideoTrack, } from '../input-track';
|
|
12
|
-
import { assert, COLOR_PRIMARIES_MAP_INVERSE, MATRIX_COEFFICIENTS_MAP_INVERSE, TRANSFER_CHARACTERISTICS_MAP_INVERSE, binarySearchLessOrEqual, binarySearchExact, last, AsyncMutex, findLastIndex, UNDETERMINED_LANGUAGE, roundToPrecision, isIso639Dash2LanguageCode, roundToMultiple, normalizeRotation, Bitstream, } from '../misc';
|
|
13
|
-
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet';
|
|
14
|
-
import { Reader } from '../reader';
|
|
15
|
-
import { buildIsobmffMimeType } from './isobmff-misc';
|
|
16
|
-
import { IsobmffReader, MAX_BOX_HEADER_SIZE, MIN_BOX_HEADER_SIZE } from './isobmff-reader';
|
|
8
|
+
import { extractAudioCodecString, extractVideoCodecString, parseAacAudioSpecificConfig, parsePcmCodec, PCM_AUDIO_CODECS, } from '../codec.js';
|
|
9
|
+
import { extractVp9CodecInfoFromPacket, extractAv1CodecInfoFromPacket, } from '../codec-data.js';
|
|
10
|
+
import { Demuxer } from '../demuxer.js';
|
|
11
|
+
import { InputAudioTrack, InputVideoTrack, } from '../input-track.js';
|
|
12
|
+
import { assert, COLOR_PRIMARIES_MAP_INVERSE, MATRIX_COEFFICIENTS_MAP_INVERSE, TRANSFER_CHARACTERISTICS_MAP_INVERSE, binarySearchLessOrEqual, binarySearchExact, last, AsyncMutex, findLastIndex, UNDETERMINED_LANGUAGE, roundToPrecision, isIso639Dash2LanguageCode, roundToMultiple, normalizeRotation, Bitstream, } from '../misc.js';
|
|
13
|
+
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet.js';
|
|
14
|
+
import { Reader } from '../reader.js';
|
|
15
|
+
import { buildIsobmffMimeType } from './isobmff-misc.js';
|
|
16
|
+
import { IsobmffReader, MAX_BOX_HEADER_SIZE, MIN_BOX_HEADER_SIZE } from './isobmff-reader.js';
|
|
17
17
|
export class IsobmffDemuxer extends Demuxer {
|
|
18
18
|
constructor(input) {
|
|
19
19
|
super(input);
|
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { ftyp, IsobmffBoxWriter, mdat, mfra, moof, moov, vtta, vttc, vtte } from './isobmff-boxes';
|
|
9
|
-
import { Muxer } from '../muxer';
|
|
10
|
-
import { BufferTargetWriter } from '../writer';
|
|
11
|
-
import { assert, computeRationalApproximation, last, promiseWithResolvers } from '../misc';
|
|
12
|
-
import { MovOutputFormat } from '../output-format';
|
|
13
|
-
import { inlineTimestampRegex } from '../subtitles';
|
|
14
|
-
import { parsePcmCodec, PCM_AUDIO_CODECS, validateAudioChunkMetadata, validateSubtitleMetadata, validateVideoChunkMetadata, } from '../codec';
|
|
15
|
-
import { BufferTarget } from '../target';
|
|
16
|
-
import { extractAvcDecoderConfigurationRecord, extractHevcDecoderConfigurationRecord, serializeAvcDecoderConfigurationRecord, serializeHevcDecoderConfigurationRecord, transformAnnexBToLengthPrefixed, } from '../codec-data';
|
|
17
|
-
import { buildIsobmffMimeType } from './isobmff-misc';
|
|
8
|
+
import { ftyp, IsobmffBoxWriter, mdat, mfra, moof, moov, vtta, vttc, vtte } from './isobmff-boxes.js';
|
|
9
|
+
import { Muxer } from '../muxer.js';
|
|
10
|
+
import { BufferTargetWriter } from '../writer.js';
|
|
11
|
+
import { assert, computeRationalApproximation, last, promiseWithResolvers } from '../misc.js';
|
|
12
|
+
import { MovOutputFormat } from '../output-format.js';
|
|
13
|
+
import { inlineTimestampRegex } from '../subtitles.js';
|
|
14
|
+
import { parsePcmCodec, PCM_AUDIO_CODECS, validateAudioChunkMetadata, validateSubtitleMetadata, validateVideoChunkMetadata, } from '../codec.js';
|
|
15
|
+
import { BufferTarget } from '../target.js';
|
|
16
|
+
import { extractAvcDecoderConfigurationRecord, extractHevcDecoderConfigurationRecord, serializeAvcDecoderConfigurationRecord, serializeHevcDecoderConfigurationRecord, transformAnnexBToLengthPrefixed, } from '../codec-data.js';
|
|
17
|
+
import { buildIsobmffMimeType } from './isobmff-misc.js';
|
|
18
18
|
export const GLOBAL_TIMESCALE = 1000;
|
|
19
19
|
const TIMESTAMP_OFFSET = 2_082_844_800; // Seconds between Jan 1 1904 and Jan 1 1970
|
|
20
20
|
export const intoTimescale = (timeInSeconds, timescale, round = true) => {
|
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { extractAv1CodecInfoFromPacket, extractAvcDecoderConfigurationRecord, extractHevcDecoderConfigurationRecord, extractVp9CodecInfoFromPacket, } from '../codec-data';
|
|
9
|
-
import { extractAudioCodecString, extractVideoCodecString, } from '../codec';
|
|
10
|
-
import { Demuxer } from '../demuxer';
|
|
11
|
-
import { InputAudioTrack, InputVideoTrack, } from '../input-track';
|
|
12
|
-
import { assert, AsyncMutex, binarySearchExact, binarySearchLessOrEqual, COLOR_PRIMARIES_MAP_INVERSE, findLastIndex, isIso639Dash2LanguageCode, last, MATRIX_COEFFICIENTS_MAP_INVERSE, normalizeRotation, roundToPrecision, TRANSFER_CHARACTERISTICS_MAP_INVERSE, UNDETERMINED_LANGUAGE, } from '../misc';
|
|
13
|
-
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet';
|
|
14
|
-
import { Reader } from '../reader';
|
|
15
|
-
import { assertDefinedSize, CODEC_STRING_MAP, EBMLId, EBMLReader, LEVEL_0_AND_1_EBML_IDS, MAX_HEADER_SIZE, MIN_HEADER_SIZE, } from './ebml';
|
|
16
|
-
import { buildMatroskaMimeType } from './matroska-misc';
|
|
8
|
+
import { extractAv1CodecInfoFromPacket, extractAvcDecoderConfigurationRecord, extractHevcDecoderConfigurationRecord, extractVp9CodecInfoFromPacket, } from '../codec-data.js';
|
|
9
|
+
import { extractAudioCodecString, extractVideoCodecString, } from '../codec.js';
|
|
10
|
+
import { Demuxer } from '../demuxer.js';
|
|
11
|
+
import { InputAudioTrack, InputVideoTrack, } from '../input-track.js';
|
|
12
|
+
import { assert, AsyncMutex, binarySearchExact, binarySearchLessOrEqual, COLOR_PRIMARIES_MAP_INVERSE, findLastIndex, isIso639Dash2LanguageCode, last, MATRIX_COEFFICIENTS_MAP_INVERSE, normalizeRotation, roundToPrecision, TRANSFER_CHARACTERISTICS_MAP_INVERSE, UNDETERMINED_LANGUAGE, } from '../misc.js';
|
|
13
|
+
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet.js';
|
|
14
|
+
import { Reader } from '../reader.js';
|
|
15
|
+
import { assertDefinedSize, CODEC_STRING_MAP, EBMLId, EBMLReader, LEVEL_0_AND_1_EBML_IDS, MAX_HEADER_SIZE, MIN_HEADER_SIZE, } from './ebml.js';
|
|
16
|
+
import { buildMatroskaMimeType } from './matroska-misc.js';
|
|
17
17
|
const METADATA_ELEMENTS = [
|
|
18
18
|
{ id: EBMLId.SeekHead, flag: 'seekHeadSeen' },
|
|
19
19
|
{ id: EBMLId.Info, flag: 'infoSeen' },
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { Bitstream, COLOR_PRIMARIES_MAP, MATRIX_COEFFICIENTS_MAP, TRANSFER_CHARACTERISTICS_MAP, UNDETERMINED_LANGUAGE, assert, colorSpaceIsComplete, normalizeRotation, promiseWithResolvers, roundToMultiple, textEncoder, toUint8Array, writeBits, } from '../misc';
|
|
9
|
-
import { CODEC_STRING_MAP, EBMLFloat32, EBMLFloat64, EBMLId, EBMLSignedInt, EBMLWriter, } from './ebml';
|
|
10
|
-
import { buildMatroskaMimeType } from './matroska-misc';
|
|
11
|
-
import { WebMOutputFormat } from '../output-format';
|
|
12
|
-
import { formatSubtitleTimestamp, inlineTimestampRegex, parseSubtitleTimestamp, } from '../subtitles';
|
|
13
|
-
import { OPUS_INTERNAL_SAMPLE_RATE, PCM_AUDIO_CODECS, generateAv1CodecConfigurationFromCodecString, generateVp9CodecConfigurationFromCodecString, parsePcmCodec, validateAudioChunkMetadata, validateSubtitleMetadata, validateVideoChunkMetadata, } from '../codec';
|
|
14
|
-
import { Muxer } from '../muxer';
|
|
15
|
-
import { parseOpusIdentificationHeader } from '../codec-data';
|
|
8
|
+
import { Bitstream, COLOR_PRIMARIES_MAP, MATRIX_COEFFICIENTS_MAP, TRANSFER_CHARACTERISTICS_MAP, UNDETERMINED_LANGUAGE, assert, colorSpaceIsComplete, normalizeRotation, promiseWithResolvers, roundToMultiple, textEncoder, toUint8Array, writeBits, } from '../misc.js';
|
|
9
|
+
import { CODEC_STRING_MAP, EBMLFloat32, EBMLFloat64, EBMLId, EBMLSignedInt, EBMLWriter, } from './ebml.js';
|
|
10
|
+
import { buildMatroskaMimeType } from './matroska-misc.js';
|
|
11
|
+
import { WebMOutputFormat } from '../output-format.js';
|
|
12
|
+
import { formatSubtitleTimestamp, inlineTimestampRegex, parseSubtitleTimestamp, } from '../subtitles.js';
|
|
13
|
+
import { OPUS_INTERNAL_SAMPLE_RATE, PCM_AUDIO_CODECS, generateAv1CodecConfigurationFromCodecString, generateVp9CodecConfigurationFromCodecString, parsePcmCodec, validateAudioChunkMetadata, validateSubtitleMetadata, validateVideoChunkMetadata, } from '../codec.js';
|
|
14
|
+
import { Muxer } from '../muxer.js';
|
|
15
|
+
import { parseOpusIdentificationHeader } from '../codec-data.js';
|
|
16
16
|
const MIN_CLUSTER_TIMESTAMP_MS = -(2 ** 15);
|
|
17
17
|
const MAX_CLUSTER_TIMESTAMP_MS = 2 ** 15 - 1;
|
|
18
18
|
const APP_NAME = 'https://github.com/Vanilagy/mediabunny';
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { parsePcmCodec, PCM_AUDIO_CODECS } from './codec';
|
|
9
|
-
import { customVideoDecoders, customAudioDecoders } from './custom-coder';
|
|
10
|
-
import { InputAudioTrack, InputTrack, InputVideoTrack } from './input-track';
|
|
11
|
-
import { assert, assertNever, binarySearchLessOrEqual, CallSerializer, getInt24, getUint24, last, mapAsyncGenerator, promiseWithResolvers, toAsyncIterator, toDataView, validateAnyIterable, } from './misc';
|
|
12
|
-
import { EncodedPacket } from './packet';
|
|
13
|
-
import { fromAlaw, fromUlaw } from './pcm';
|
|
14
|
-
import { AudioSample, VideoSample } from './sample';
|
|
8
|
+
import { parsePcmCodec, PCM_AUDIO_CODECS } from './codec.js';
|
|
9
|
+
import { customVideoDecoders, customAudioDecoders } from './custom-coder.js';
|
|
10
|
+
import { InputAudioTrack, InputTrack, InputVideoTrack } from './input-track.js';
|
|
11
|
+
import { assert, assertNever, binarySearchLessOrEqual, CallSerializer, getInt24, getUint24, last, mapAsyncGenerator, promiseWithResolvers, toAsyncIterator, toDataView, validateAnyIterable, } from './misc.js';
|
|
12
|
+
import { EncodedPacket } from './packet.js';
|
|
13
|
+
import { fromAlaw, fromUlaw } from './pcm.js';
|
|
14
|
+
import { AudioSample, VideoSample } from './sample.js';
|
|
15
15
|
const validatePacketRetrievalOptions = (options) => {
|
|
16
16
|
if (!options || typeof options !== 'object') {
|
|
17
17
|
throw new TypeError('options must be an object.');
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { AUDIO_CODECS, buildAudioCodecString, buildVideoCodecString, getAudioEncoderConfigExtension, getVideoEncoderConfigExtension, inferCodecFromCodecString, parsePcmCodec, PCM_AUDIO_CODECS, Quality, SUBTITLE_CODECS, VIDEO_CODECS, } from './codec';
|
|
9
|
-
import { assert, assertNever, CallSerializer, clamp, setInt24, setUint24 } from './misc';
|
|
10
|
-
import { SubtitleParser } from './subtitles';
|
|
11
|
-
import { toAlaw, toUlaw } from './pcm';
|
|
12
|
-
import { customVideoEncoders, customAudioEncoders, } from './custom-coder';
|
|
13
|
-
import { EncodedPacket } from './packet';
|
|
14
|
-
import { AudioSample, VideoSample } from './sample';
|
|
8
|
+
import { AUDIO_CODECS, buildAudioCodecString, buildVideoCodecString, getAudioEncoderConfigExtension, getVideoEncoderConfigExtension, inferCodecFromCodecString, parsePcmCodec, PCM_AUDIO_CODECS, Quality, SUBTITLE_CODECS, VIDEO_CODECS, } from './codec.js';
|
|
9
|
+
import { assert, assertNever, CallSerializer, clamp, setInt24, setUint24 } from './misc.js';
|
|
10
|
+
import { SubtitleParser } from './subtitles.js';
|
|
11
|
+
import { toAlaw, toUlaw } from './pcm.js';
|
|
12
|
+
import { customVideoEncoders, customAudioEncoders, } from './custom-coder.js';
|
|
13
|
+
import { EncodedPacket } from './packet.js';
|
|
14
|
+
import { AudioSample, VideoSample } from './sample.js';
|
|
15
15
|
/**
|
|
16
16
|
* Base class for media sources. Media sources are used to add media samples to an output file.
|
|
17
17
|
* @public
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { Demuxer } from '../demuxer';
|
|
9
|
-
import { InputAudioTrack } from '../input-track';
|
|
10
|
-
import { assert, binarySearchExact, binarySearchLessOrEqual, last, UNDETERMINED_LANGUAGE } from '../misc';
|
|
11
|
-
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet';
|
|
12
|
-
import { getXingOffset, INFO, XING } from './mp3-misc';
|
|
13
|
-
import { Mp3Reader } from './mp3-reader';
|
|
8
|
+
import { Demuxer } from '../demuxer.js';
|
|
9
|
+
import { InputAudioTrack } from '../input-track.js';
|
|
10
|
+
import { assert, binarySearchExact, binarySearchLessOrEqual, last, UNDETERMINED_LANGUAGE } from '../misc.js';
|
|
11
|
+
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet.js';
|
|
12
|
+
import { getXingOffset, INFO, XING } from './mp3-misc.js';
|
|
13
|
+
import { Mp3Reader } from './mp3-reader.js';
|
|
14
14
|
export class Mp3Demuxer extends Demuxer {
|
|
15
15
|
constructor(input) {
|
|
16
16
|
super(input);
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { assert, toDataView } from '../misc';
|
|
9
|
-
import { Muxer } from '../muxer';
|
|
10
|
-
import { getXingOffset, INFO, readFrameHeader, XING } from './mp3-misc';
|
|
11
|
-
import { Mp3Writer } from './mp3-writer';
|
|
8
|
+
import { assert, toDataView } from '../misc.js';
|
|
9
|
+
import { Muxer } from '../muxer.js';
|
|
10
|
+
import { getXingOffset, INFO, readFrameHeader, XING } from './mp3-misc.js';
|
|
11
|
+
import { Mp3Writer } from './mp3-writer.js';
|
|
12
12
|
export class Mp3Muxer extends Muxer {
|
|
13
13
|
constructor(output, format) {
|
|
14
14
|
super(output);
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { assert } from '../misc';
|
|
9
|
-
import { FRAME_HEADER_SIZE, readFrameHeader } from './mp3-misc';
|
|
8
|
+
import { assert } from '../misc.js';
|
|
9
|
+
import { FRAME_HEADER_SIZE, readFrameHeader } from './mp3-misc.js';
|
|
10
10
|
export class Mp3Reader {
|
|
11
11
|
constructor(reader) {
|
|
12
12
|
this.reader = reader;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { computeMp3FrameSize, getXingOffset, MPEG_V1_BITRATES, MPEG_V2_BITRATES, SAMPLING_RATES, XING, } from './mp3-misc';
|
|
8
|
+
import { computeMp3FrameSize, getXingOffset, MPEG_V1_BITRATES, MPEG_V2_BITRATES, SAMPLING_RATES, XING, } from './mp3-misc.js';
|
|
9
9
|
export class Mp3Writer {
|
|
10
10
|
constructor(writer) {
|
|
11
11
|
this.writer = writer;
|
package/dist/modules/muxer.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { AsyncMutex } from './misc';
|
|
8
|
+
import { AsyncMutex } from './misc.js';
|
|
9
9
|
export class Muxer {
|
|
10
10
|
constructor(output) {
|
|
11
11
|
this.mutex = new AsyncMutex();
|
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { OPUS_INTERNAL_SAMPLE_RATE } from '../codec';
|
|
9
|
-
import { parseModesFromVorbisSetupPacket, parseOpusIdentificationHeader } from '../codec-data';
|
|
10
|
-
import { Demuxer } from '../demuxer';
|
|
11
|
-
import { InputAudioTrack } from '../input-track';
|
|
12
|
-
import { assert, AsyncMutex, findLast, roundToPrecision, toDataView, UNDETERMINED_LANGUAGE } from '../misc';
|
|
13
|
-
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet';
|
|
14
|
-
import { Reader } from '../reader';
|
|
15
|
-
import { buildOggMimeType, computeOggPageCrc, extractSampleMetadata } from './ogg-misc';
|
|
16
|
-
import { MAX_PAGE_HEADER_SIZE, MAX_PAGE_SIZE, MIN_PAGE_HEADER_SIZE, OggReader } from './ogg-reader';
|
|
8
|
+
import { OPUS_INTERNAL_SAMPLE_RATE } from '../codec.js';
|
|
9
|
+
import { parseModesFromVorbisSetupPacket, parseOpusIdentificationHeader } from '../codec-data.js';
|
|
10
|
+
import { Demuxer } from '../demuxer.js';
|
|
11
|
+
import { InputAudioTrack } from '../input-track.js';
|
|
12
|
+
import { assert, AsyncMutex, findLast, roundToPrecision, toDataView, UNDETERMINED_LANGUAGE } from '../misc.js';
|
|
13
|
+
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet.js';
|
|
14
|
+
import { Reader } from '../reader.js';
|
|
15
|
+
import { buildOggMimeType, computeOggPageCrc, extractSampleMetadata } from './ogg-misc.js';
|
|
16
|
+
import { MAX_PAGE_HEADER_SIZE, MAX_PAGE_SIZE, MIN_PAGE_HEADER_SIZE, OggReader } from './ogg-reader.js';
|
|
17
17
|
export class OggDemuxer extends Demuxer {
|
|
18
18
|
constructor(input) {
|
|
19
19
|
super(input);
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { parseOpusTocByte } from '../codec-data';
|
|
9
|
-
import { assert, ilog, toDataView } from '../misc';
|
|
8
|
+
import { parseOpusTocByte } from '../codec-data.js';
|
|
9
|
+
import { assert, ilog, toDataView } from '../misc.js';
|
|
10
10
|
export const OGGS = 0x5367674f; // 'OggS'
|
|
11
11
|
const OGG_CRC_POLYNOMIAL = 0x04c11db7;
|
|
12
12
|
const OGG_CRC_TABLE = new Uint32Array(256);
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { OPUS_INTERNAL_SAMPLE_RATE, validateAudioChunkMetadata } from '../codec';
|
|
9
|
-
import { parseModesFromVorbisSetupPacket, parseOpusIdentificationHeader } from '../codec-data';
|
|
10
|
-
import { assert, promiseWithResolvers, setInt64, toDataView, toUint8Array } from '../misc';
|
|
11
|
-
import { Muxer } from '../muxer';
|
|
12
|
-
import { buildOggMimeType, computeOggPageCrc, extractSampleMetadata, OGGS, } from './ogg-misc';
|
|
13
|
-
import { MAX_PAGE_SIZE } from './ogg-reader';
|
|
8
|
+
import { OPUS_INTERNAL_SAMPLE_RATE, validateAudioChunkMetadata } from '../codec.js';
|
|
9
|
+
import { parseModesFromVorbisSetupPacket, parseOpusIdentificationHeader } from '../codec-data.js';
|
|
10
|
+
import { assert, promiseWithResolvers, setInt64, toDataView, toUint8Array } from '../misc.js';
|
|
11
|
+
import { Muxer } from '../muxer.js';
|
|
12
|
+
import { buildOggMimeType, computeOggPageCrc, extractSampleMetadata, OGGS, } from './ogg-misc.js';
|
|
13
|
+
import { MAX_PAGE_SIZE } from './ogg-reader.js';
|
|
14
14
|
const PAGE_SIZE_TARGET = 8192;
|
|
15
15
|
export class OggMuxer extends Muxer {
|
|
16
16
|
constructor(output, format) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { OGGS } from './ogg-misc';
|
|
8
|
+
import { OGGS } from './ogg-misc.js';
|
|
9
9
|
export const MIN_PAGE_HEADER_SIZE = 27;
|
|
10
10
|
export const MAX_PAGE_HEADER_SIZE = 27 + 255;
|
|
11
11
|
export const MAX_PAGE_SIZE = MAX_PAGE_HEADER_SIZE + 255 * 255;
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { AUDIO_CODECS, NON_PCM_AUDIO_CODECS, PCM_AUDIO_CODECS, SUBTITLE_CODECS, VIDEO_CODECS, } from './codec';
|
|
9
|
-
import { IsobmffMuxer } from './isobmff/isobmff-muxer';
|
|
10
|
-
import { MatroskaMuxer } from './matroska/matroska-muxer';
|
|
11
|
-
import { Mp3Muxer } from './mp3/mp3-muxer';
|
|
12
|
-
import { OggMuxer } from './ogg/ogg-muxer';
|
|
13
|
-
import { WaveMuxer } from './wave/wave-muxer';
|
|
8
|
+
import { AUDIO_CODECS, NON_PCM_AUDIO_CODECS, PCM_AUDIO_CODECS, SUBTITLE_CODECS, VIDEO_CODECS, } from './codec.js';
|
|
9
|
+
import { IsobmffMuxer } from './isobmff/isobmff-muxer.js';
|
|
10
|
+
import { MatroskaMuxer } from './matroska/matroska-muxer.js';
|
|
11
|
+
import { Mp3Muxer } from './mp3/mp3-muxer.js';
|
|
12
|
+
import { OggMuxer } from './ogg/ogg-muxer.js';
|
|
13
|
+
import { WaveMuxer } from './wave/wave-muxer.js';
|
|
14
14
|
/**
|
|
15
15
|
* Base class representing an output media file format.
|
|
16
16
|
* @public
|
package/dist/modules/output.js
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { AsyncMutex, isIso639Dash2LanguageCode } from './misc';
|
|
9
|
-
import { OutputFormat } from './output-format';
|
|
10
|
-
import { AudioSource, SubtitleSource, VideoSource } from './media-source';
|
|
11
|
-
import { Target } from './target';
|
|
8
|
+
import { AsyncMutex, isIso639Dash2LanguageCode } from './misc.js';
|
|
9
|
+
import { OutputFormat } from './output-format.js';
|
|
10
|
+
import { AudioSource, SubtitleSource, VideoSource } from './media-source.js';
|
|
11
|
+
import { Target } from './target.js';
|
|
12
12
|
/**
|
|
13
13
|
* List of all track types.
|
|
14
14
|
* @public
|
package/dist/modules/packet.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { SECOND_TO_MICROSECOND_FACTOR } from './misc';
|
|
8
|
+
import { SECOND_TO_MICROSECOND_FACTOR } from './misc.js';
|
|
9
9
|
export const PLACEHOLDER_DATA = new Uint8Array(0);
|
|
10
10
|
/**
|
|
11
11
|
* Represents an encoded chunk of media. Mainly used as an expressive wrapper around WebCodecs API's EncodedVideoChunk
|
package/dist/modules/reader.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { assert, binarySearchLessOrEqual, removeItem } from './misc';
|
|
8
|
+
import { assert, binarySearchLessOrEqual, removeItem } from './misc.js';
|
|
9
9
|
export class Reader {
|
|
10
10
|
constructor(source, maxStorableBytes = Infinity) {
|
|
11
11
|
this.source = source;
|
package/dist/modules/sample.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { assert, clamp, isAllowSharedBufferSource, SECOND_TO_MICROSECOND_FACTOR, toDataView, toUint8Array, } from './misc';
|
|
8
|
+
import { assert, clamp, isAllowSharedBufferSource, SECOND_TO_MICROSECOND_FACTOR, toDataView, toUint8Array, } from './misc.js';
|
|
9
9
|
/**
|
|
10
10
|
* Represents a raw, unencoded video sample (frame). Mainly used as an expressive wrapper around WebCodecs API's
|
|
11
11
|
* VideoFrame, but can also be used standalone.
|
package/dist/modules/source.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { mergeObjectsDeeply, retriedFetch } from './misc';
|
|
8
|
+
import { mergeObjectsDeeply, retriedFetch } from './misc.js';
|
|
9
9
|
/**
|
|
10
10
|
* The source base class, representing a resource from which bytes can be read.
|
|
11
11
|
* @public
|
package/dist/modules/target.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { BufferTargetWriter, StreamTargetWriter } from './writer';
|
|
8
|
+
import { BufferTargetWriter, StreamTargetWriter } from './writer.js';
|
|
9
9
|
/**
|
|
10
10
|
* Base class for targets, specifying where output files are written.
|
|
11
11
|
* @public
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { Demuxer } from '../demuxer';
|
|
9
|
-
import { InputAudioTrack } from '../input-track';
|
|
10
|
-
import { assert, UNDETERMINED_LANGUAGE } from '../misc';
|
|
11
|
-
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet';
|
|
12
|
-
import { Reader } from '../reader';
|
|
13
|
-
import { RiffReader } from './riff-reader';
|
|
8
|
+
import { Demuxer } from '../demuxer.js';
|
|
9
|
+
import { InputAudioTrack } from '../input-track.js';
|
|
10
|
+
import { assert, UNDETERMINED_LANGUAGE } from '../misc.js';
|
|
11
|
+
import { EncodedPacket, PLACEHOLDER_DATA } from '../packet.js';
|
|
12
|
+
import { Reader } from '../reader.js';
|
|
13
|
+
import { RiffReader } from './riff-reader.js';
|
|
14
14
|
export var WaveFormat;
|
|
15
15
|
(function (WaveFormat) {
|
|
16
16
|
WaveFormat[WaveFormat["PCM"] = 1] = "PCM";
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { Muxer } from '../muxer';
|
|
9
|
-
import { parsePcmCodec, validateAudioChunkMetadata } from '../codec';
|
|
10
|
-
import { WaveFormat } from './wave-demuxer';
|
|
11
|
-
import { RiffWriter } from './riff-writer';
|
|
12
|
-
import { assert } from '../misc';
|
|
8
|
+
import { Muxer } from '../muxer.js';
|
|
9
|
+
import { parsePcmCodec, validateAudioChunkMetadata } from '../codec.js';
|
|
10
|
+
import { WaveFormat } from './wave-demuxer.js';
|
|
11
|
+
import { RiffWriter } from './riff-writer.js';
|
|
12
|
+
import { assert } from '../misc.js';
|
|
13
13
|
export class WaveMuxer extends Muxer {
|
|
14
14
|
constructor(output, format) {
|
|
15
15
|
super(output);
|
package/dist/modules/writer.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
-
import { assert } from './misc';
|
|
8
|
+
import { assert } from './misc.js';
|
|
9
9
|
export class Writer {
|
|
10
10
|
constructor() {
|
|
11
11
|
/** Setting this to true will cause the writer to ensure data is written in a strictly monotonic, streamable way. */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediabunny",
|
|
3
3
|
"author": "Vanilagy",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.3",
|
|
5
5
|
"description": "Pure TypeScript media toolkit for reading, writing, and converting media files, directly in the browser.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/bundles/mediabunny.cjs",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"docs:preview": "vitepress preview docs",
|
|
32
32
|
"dev": "vite",
|
|
33
33
|
"examples:build": "vite build",
|
|
34
|
-
"fix-build-import-paths": "
|
|
34
|
+
"fix-build-import-paths": "tsx scripts/add-import-extensions.ts",
|
|
35
35
|
"append-namespace": "echo 'export as namespace Mediabunny;' >> dist/mediabunny.d.ts"
|
|
36
36
|
},
|
|
37
37
|
"license": "MPL-2.0",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@types/dom-mediacapture-transform": "^0.1.11",
|
|
52
|
-
"@types/dom-webcodecs": "
|
|
52
|
+
"@types/dom-webcodecs": "0.1.13"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@eslint/js": "^9.22.0",
|