@kenzuya/mediabunny 1.26.0 → 1.28.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/bundles/{mediabunny.mjs → mediabunny.js} +21963 -21388
- package/dist/bundles/mediabunny.min.js +490 -0
- package/dist/modules/shared/mp3-misc.d.ts.map +1 -1
- package/dist/modules/src/adts/adts-demuxer.d.ts +6 -6
- package/dist/modules/src/adts/adts-demuxer.d.ts.map +1 -1
- package/dist/modules/src/adts/adts-muxer.d.ts +4 -4
- package/dist/modules/src/adts/adts-muxer.d.ts.map +1 -1
- package/dist/modules/src/adts/adts-reader.d.ts +1 -1
- package/dist/modules/src/adts/adts-reader.d.ts.map +1 -1
- package/dist/modules/src/avi/avi-demuxer.d.ts +44 -0
- package/dist/modules/src/avi/avi-demuxer.d.ts.map +1 -0
- package/dist/modules/src/avi/avi-misc.d.ts +88 -0
- package/dist/modules/src/avi/avi-misc.d.ts.map +1 -0
- package/dist/modules/src/avi/avi-muxer.d.ts +45 -0
- package/dist/modules/src/avi/avi-muxer.d.ts.map +1 -0
- package/dist/modules/src/avi/riff-writer.d.ts +26 -0
- package/dist/modules/src/avi/riff-writer.d.ts.map +1 -0
- package/dist/modules/src/codec-data.d.ts +8 -3
- package/dist/modules/src/codec-data.d.ts.map +1 -1
- package/dist/modules/src/codec.d.ts +10 -10
- package/dist/modules/src/codec.d.ts.map +1 -1
- package/dist/modules/src/conversion.d.ts +33 -16
- package/dist/modules/src/conversion.d.ts.map +1 -1
- package/dist/modules/src/custom-coder.d.ts +8 -8
- package/dist/modules/src/custom-coder.d.ts.map +1 -1
- package/dist/modules/src/demuxer.d.ts +3 -3
- package/dist/modules/src/demuxer.d.ts.map +1 -1
- package/dist/modules/src/encode.d.ts +8 -8
- package/dist/modules/src/encode.d.ts.map +1 -1
- package/dist/modules/src/flac/flac-demuxer.d.ts +7 -7
- package/dist/modules/src/flac/flac-demuxer.d.ts.map +1 -1
- package/dist/modules/src/flac/flac-misc.d.ts +3 -3
- package/dist/modules/src/flac/flac-misc.d.ts.map +1 -1
- package/dist/modules/src/flac/flac-muxer.d.ts +5 -5
- package/dist/modules/src/flac/flac-muxer.d.ts.map +1 -1
- package/dist/modules/src/id3.d.ts +3 -3
- package/dist/modules/src/id3.d.ts.map +1 -1
- package/dist/modules/src/index.d.ts +20 -20
- package/dist/modules/src/index.d.ts.map +1 -1
- package/dist/modules/src/input-format.d.ts +22 -0
- package/dist/modules/src/input-format.d.ts.map +1 -1
- package/dist/modules/src/input-track.d.ts +8 -8
- package/dist/modules/src/input-track.d.ts.map +1 -1
- package/dist/modules/src/input.d.ts +12 -12
- package/dist/modules/src/isobmff/isobmff-boxes.d.ts +2 -2
- package/dist/modules/src/isobmff/isobmff-boxes.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-demuxer.d.ts +12 -12
- package/dist/modules/src/isobmff/isobmff-demuxer.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-misc.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-muxer.d.ts +11 -11
- package/dist/modules/src/isobmff/isobmff-muxer.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-reader.d.ts +2 -2
- package/dist/modules/src/isobmff/isobmff-reader.d.ts.map +1 -1
- package/dist/modules/src/matroska/ebml.d.ts +3 -3
- package/dist/modules/src/matroska/ebml.d.ts.map +1 -1
- package/dist/modules/src/matroska/matroska-demuxer.d.ts +13 -13
- package/dist/modules/src/matroska/matroska-demuxer.d.ts.map +1 -1
- package/dist/modules/src/matroska/matroska-input.d.ts +33 -0
- package/dist/modules/src/matroska/matroska-input.d.ts.map +1 -0
- package/dist/modules/src/matroska/matroska-misc.d.ts.map +1 -1
- package/dist/modules/src/matroska/matroska-muxer.d.ts +5 -5
- package/dist/modules/src/matroska/matroska-muxer.d.ts.map +1 -1
- package/dist/modules/src/media-sink.d.ts +5 -5
- package/dist/modules/src/media-sink.d.ts.map +1 -1
- package/dist/modules/src/media-source.d.ts +22 -4
- package/dist/modules/src/media-source.d.ts.map +1 -1
- package/dist/modules/src/metadata.d.ts +2 -2
- package/dist/modules/src/metadata.d.ts.map +1 -1
- package/dist/modules/src/misc.d.ts +5 -4
- package/dist/modules/src/misc.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-demuxer.d.ts +7 -7
- package/dist/modules/src/mp3/mp3-demuxer.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-muxer.d.ts +4 -4
- package/dist/modules/src/mp3/mp3-muxer.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-reader.d.ts +2 -2
- package/dist/modules/src/mp3/mp3-reader.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-writer.d.ts +1 -1
- package/dist/modules/src/mp3/mp3-writer.d.ts.map +1 -1
- package/dist/modules/src/muxer.d.ts +4 -4
- package/dist/modules/src/muxer.d.ts.map +1 -1
- package/dist/modules/src/node.d.ts +1 -1
- package/dist/modules/src/ogg/ogg-demuxer.d.ts +7 -7
- package/dist/modules/src/ogg/ogg-demuxer.d.ts.map +1 -1
- package/dist/modules/src/ogg/ogg-misc.d.ts +1 -1
- package/dist/modules/src/ogg/ogg-misc.d.ts.map +1 -1
- package/dist/modules/src/ogg/ogg-muxer.d.ts +5 -5
- package/dist/modules/src/ogg/ogg-muxer.d.ts.map +1 -1
- package/dist/modules/src/ogg/ogg-reader.d.ts +1 -1
- package/dist/modules/src/ogg/ogg-reader.d.ts.map +1 -1
- package/dist/modules/src/output-format.d.ts +51 -6
- package/dist/modules/src/output-format.d.ts.map +1 -1
- package/dist/modules/src/output.d.ts +13 -13
- package/dist/modules/src/output.d.ts.map +1 -1
- package/dist/modules/src/packet.d.ts +1 -1
- package/dist/modules/src/packet.d.ts.map +1 -1
- package/dist/modules/src/pcm.d.ts.map +1 -1
- package/dist/modules/src/reader.d.ts +2 -2
- package/dist/modules/src/reader.d.ts.map +1 -1
- package/dist/modules/src/sample.d.ts +57 -15
- package/dist/modules/src/sample.d.ts.map +1 -1
- package/dist/modules/src/source.d.ts +3 -3
- package/dist/modules/src/source.d.ts.map +1 -1
- package/dist/modules/src/subtitles.d.ts +1 -1
- package/dist/modules/src/subtitles.d.ts.map +1 -1
- package/dist/modules/src/target.d.ts +2 -2
- package/dist/modules/src/target.d.ts.map +1 -1
- package/dist/modules/src/tsconfig.tsbuildinfo +1 -1
- package/dist/modules/src/wave/riff-writer.d.ts +1 -1
- package/dist/modules/src/wave/riff-writer.d.ts.map +1 -1
- package/dist/modules/src/wave/wave-demuxer.d.ts +6 -6
- package/dist/modules/src/wave/wave-demuxer.d.ts.map +1 -1
- package/dist/modules/src/wave/wave-muxer.d.ts +4 -4
- package/dist/modules/src/wave/wave-muxer.d.ts.map +1 -1
- package/dist/modules/src/writer.d.ts +1 -1
- package/dist/modules/src/writer.d.ts.map +1 -1
- package/dist/packages/eac3/eac3.wasm +0 -0
- package/dist/packages/eac3/mediabunny-eac3.js +1058 -0
- package/dist/packages/eac3/mediabunny-eac3.min.js +44 -0
- package/dist/packages/mp3-encoder/mediabunny-mp3-encoder.js +694 -0
- package/dist/packages/mp3-encoder/mediabunny-mp3-encoder.min.js +58 -0
- package/dist/packages/mpeg4/mediabunny-mpeg4.js +1198 -0
- package/dist/packages/mpeg4/mediabunny-mpeg4.min.js +44 -0
- package/dist/packages/mpeg4/xvid.wasm +0 -0
- package/package.json +18 -57
- package/dist/bundles/mediabunny.cjs +0 -26140
- package/dist/bundles/mediabunny.min.cjs +0 -147
- package/dist/bundles/mediabunny.min.mjs +0 -146
- package/dist/mediabunny.d.ts +0 -3319
- package/dist/modules/shared/mp3-misc.js +0 -147
- package/dist/modules/src/adts/adts-demuxer.js +0 -239
- package/dist/modules/src/adts/adts-muxer.js +0 -80
- package/dist/modules/src/adts/adts-reader.js +0 -63
- package/dist/modules/src/codec-data.js +0 -1730
- package/dist/modules/src/codec.js +0 -869
- package/dist/modules/src/conversion.js +0 -1459
- package/dist/modules/src/custom-coder.js +0 -117
- package/dist/modules/src/demuxer.js +0 -12
- package/dist/modules/src/encode.js +0 -442
- package/dist/modules/src/flac/flac-demuxer.js +0 -504
- package/dist/modules/src/flac/flac-misc.js +0 -135
- package/dist/modules/src/flac/flac-muxer.js +0 -222
- package/dist/modules/src/id3.js +0 -848
- package/dist/modules/src/index.js +0 -28
- package/dist/modules/src/input-format.js +0 -480
- package/dist/modules/src/input-track.js +0 -372
- package/dist/modules/src/input.js +0 -188
- package/dist/modules/src/isobmff/isobmff-boxes.js +0 -1480
- package/dist/modules/src/isobmff/isobmff-demuxer.js +0 -2618
- package/dist/modules/src/isobmff/isobmff-misc.js +0 -20
- package/dist/modules/src/isobmff/isobmff-muxer.js +0 -966
- package/dist/modules/src/isobmff/isobmff-reader.js +0 -72
- package/dist/modules/src/matroska/ebml.js +0 -653
- package/dist/modules/src/matroska/matroska-demuxer.js +0 -2133
- package/dist/modules/src/matroska/matroska-misc.js +0 -20
- package/dist/modules/src/matroska/matroska-muxer.js +0 -1017
- package/dist/modules/src/media-sink.js +0 -1736
- package/dist/modules/src/media-source.js +0 -1825
- package/dist/modules/src/metadata.js +0 -193
- package/dist/modules/src/misc.js +0 -623
- package/dist/modules/src/mp3/mp3-demuxer.js +0 -285
- package/dist/modules/src/mp3/mp3-muxer.js +0 -123
- package/dist/modules/src/mp3/mp3-reader.js +0 -26
- package/dist/modules/src/mp3/mp3-writer.js +0 -78
- package/dist/modules/src/muxer.js +0 -50
- package/dist/modules/src/node.js +0 -9
- package/dist/modules/src/ogg/ogg-demuxer.js +0 -763
- package/dist/modules/src/ogg/ogg-misc.js +0 -78
- package/dist/modules/src/ogg/ogg-muxer.js +0 -353
- package/dist/modules/src/ogg/ogg-reader.js +0 -65
- package/dist/modules/src/output-format.js +0 -527
- package/dist/modules/src/output.js +0 -300
- package/dist/modules/src/packet.js +0 -182
- package/dist/modules/src/pcm.js +0 -85
- package/dist/modules/src/reader.js +0 -236
- package/dist/modules/src/sample.js +0 -1056
- package/dist/modules/src/source.js +0 -1182
- package/dist/modules/src/subtitles.js +0 -575
- package/dist/modules/src/target.js +0 -140
- package/dist/modules/src/wave/riff-writer.js +0 -30
- package/dist/modules/src/wave/wave-demuxer.js +0 -447
- package/dist/modules/src/wave/wave-muxer.js +0 -318
- package/dist/modules/src/writer.js +0 -370
- package/src/adts/adts-demuxer.ts +0 -331
- package/src/adts/adts-muxer.ts +0 -111
- package/src/adts/adts-reader.ts +0 -85
- package/src/codec-data.ts +0 -2078
- package/src/codec.ts +0 -1092
- package/src/conversion.ts +0 -2112
- package/src/custom-coder.ts +0 -197
- package/src/demuxer.ts +0 -24
- package/src/encode.ts +0 -739
- package/src/flac/flac-demuxer.ts +0 -730
- package/src/flac/flac-misc.ts +0 -164
- package/src/flac/flac-muxer.ts +0 -320
- package/src/id3.ts +0 -925
- package/src/index.ts +0 -221
- package/src/input-format.ts +0 -541
- package/src/input-track.ts +0 -529
- package/src/input.ts +0 -235
- package/src/isobmff/isobmff-boxes.ts +0 -1719
- package/src/isobmff/isobmff-demuxer.ts +0 -3190
- package/src/isobmff/isobmff-misc.ts +0 -29
- package/src/isobmff/isobmff-muxer.ts +0 -1348
- package/src/isobmff/isobmff-reader.ts +0 -91
- package/src/matroska/ebml.ts +0 -730
- package/src/matroska/matroska-demuxer.ts +0 -2481
- package/src/matroska/matroska-misc.ts +0 -29
- package/src/matroska/matroska-muxer.ts +0 -1276
- package/src/media-sink.ts +0 -2179
- package/src/media-source.ts +0 -2243
- package/src/metadata.ts +0 -320
- package/src/misc.ts +0 -798
- package/src/mp3/mp3-demuxer.ts +0 -383
- package/src/mp3/mp3-muxer.ts +0 -166
- package/src/mp3/mp3-reader.ts +0 -34
- package/src/mp3/mp3-writer.ts +0 -120
- package/src/muxer.ts +0 -88
- package/src/node.ts +0 -11
- package/src/ogg/ogg-demuxer.ts +0 -1053
- package/src/ogg/ogg-misc.ts +0 -116
- package/src/ogg/ogg-muxer.ts +0 -497
- package/src/ogg/ogg-reader.ts +0 -93
- package/src/output-format.ts +0 -945
- package/src/output.ts +0 -488
- package/src/packet.ts +0 -263
- package/src/pcm.ts +0 -112
- package/src/reader.ts +0 -323
- package/src/sample.ts +0 -1461
- package/src/source.ts +0 -1688
- package/src/subtitles.ts +0 -711
- package/src/target.ts +0 -204
- package/src/tsconfig.json +0 -16
- package/src/wave/riff-writer.ts +0 -36
- package/src/wave/wave-demuxer.ts +0 -529
- package/src/wave/wave-muxer.ts +0 -371
- package/src/writer.ts +0 -490
package/src/custom-coder.ts
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2025-present, Vanilagy and contributors
|
|
3
|
-
*
|
|
4
|
-
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
5
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
|
-
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { AudioCodec, VideoCodec } from './codec';
|
|
10
|
-
import { MaybePromise } from './misc';
|
|
11
|
-
import { EncodedPacket } from './packet';
|
|
12
|
-
import { AudioSample, VideoSample } from './sample';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Base class for custom video decoders. To add your own custom video decoder, extend this class, implement the
|
|
16
|
-
* abstract methods and static `supports` method, and register the decoder using {@link registerDecoder}.
|
|
17
|
-
* @group Custom coders
|
|
18
|
-
* @public
|
|
19
|
-
*/
|
|
20
|
-
export abstract class CustomVideoDecoder {
|
|
21
|
-
/** The input video's codec. */
|
|
22
|
-
readonly codec!: VideoCodec;
|
|
23
|
-
/** The input video's decoder config. */
|
|
24
|
-
readonly config!: VideoDecoderConfig;
|
|
25
|
-
/** The callback to call when a decoded VideoSample is available. */
|
|
26
|
-
readonly onSample!: (sample: VideoSample) => unknown;
|
|
27
|
-
|
|
28
|
-
/** Returns true if and only if the decoder can decode the given codec configuration. */
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
|
-
static supports(codec: VideoCodec, config: VideoDecoderConfig): boolean {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** Called after decoder creation; can be used for custom initialization logic. */
|
|
35
|
-
abstract init(): MaybePromise<void>;
|
|
36
|
-
/** Decodes the provided encoded packet. */
|
|
37
|
-
abstract decode(packet: EncodedPacket): MaybePromise<void>;
|
|
38
|
-
/** Decodes all remaining packets and then resolves. */
|
|
39
|
-
abstract flush(): MaybePromise<void>;
|
|
40
|
-
/** Called when the decoder is no longer needed and its resources can be freed. */
|
|
41
|
-
abstract close(): MaybePromise<void>;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Base class for custom audio decoders. To add your own custom audio decoder, extend this class, implement the
|
|
46
|
-
* abstract methods and static `supports` method, and register the decoder using {@link registerDecoder}.
|
|
47
|
-
* @group Custom coders
|
|
48
|
-
* @public
|
|
49
|
-
*/
|
|
50
|
-
export abstract class CustomAudioDecoder {
|
|
51
|
-
/** The input audio's codec. */
|
|
52
|
-
readonly codec!: AudioCodec;
|
|
53
|
-
/** The input audio's decoder config. */
|
|
54
|
-
readonly config!: AudioDecoderConfig;
|
|
55
|
-
/** The callback to call when a decoded AudioSample is available. */
|
|
56
|
-
readonly onSample!: (sample: AudioSample) => unknown;
|
|
57
|
-
|
|
58
|
-
/** Returns true if and only if the decoder can decode the given codec configuration. */
|
|
59
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
60
|
-
static supports(codec: AudioCodec, config: AudioDecoderConfig): boolean {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/** Called after decoder creation; can be used for custom initialization logic. */
|
|
65
|
-
abstract init(): MaybePromise<void>;
|
|
66
|
-
/** Decodes the provided encoded packet. */
|
|
67
|
-
abstract decode(packet: EncodedPacket): MaybePromise<void>;
|
|
68
|
-
/** Decodes all remaining packets and then resolves. */
|
|
69
|
-
abstract flush(): MaybePromise<void>;
|
|
70
|
-
/** Called when the decoder is no longer needed and its resources can be freed. */
|
|
71
|
-
abstract close(): MaybePromise<void>;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Base class for custom video encoders. To add your own custom video encoder, extend this class, implement the
|
|
76
|
-
* abstract methods and static `supports` method, and register the encoder using {@link registerEncoder}.
|
|
77
|
-
* @group Custom coders
|
|
78
|
-
* @public
|
|
79
|
-
*/
|
|
80
|
-
export abstract class CustomVideoEncoder {
|
|
81
|
-
/** The codec with which to encode the video. */
|
|
82
|
-
readonly codec!: VideoCodec;
|
|
83
|
-
/** Config for the encoder. */
|
|
84
|
-
readonly config!: VideoEncoderConfig;
|
|
85
|
-
/** The callback to call when an EncodedPacket is available. */
|
|
86
|
-
readonly onPacket!: (packet: EncodedPacket, meta?: EncodedVideoChunkMetadata) => unknown;
|
|
87
|
-
|
|
88
|
-
/** Returns true if and only if the encoder can encode the given codec configuration. */
|
|
89
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
90
|
-
static supports(codec: VideoCodec, config: VideoEncoderConfig): boolean {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/** Called after encoder creation; can be used for custom initialization logic. */
|
|
95
|
-
abstract init(): MaybePromise<void>;
|
|
96
|
-
/** Encodes the provided video sample. */
|
|
97
|
-
abstract encode(videoSample: VideoSample, options: VideoEncoderEncodeOptions): MaybePromise<void>;
|
|
98
|
-
/** Encodes all remaining video samples and then resolves. */
|
|
99
|
-
abstract flush(): MaybePromise<void>;
|
|
100
|
-
/** Called when the encoder is no longer needed and its resources can be freed. */
|
|
101
|
-
abstract close(): MaybePromise<void>;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Base class for custom audio encoders. To add your own custom audio encoder, extend this class, implement the
|
|
106
|
-
* abstract methods and static `supports` method, and register the encoder using {@link registerEncoder}.
|
|
107
|
-
* @group Custom coders
|
|
108
|
-
* @public
|
|
109
|
-
*/
|
|
110
|
-
export abstract class CustomAudioEncoder {
|
|
111
|
-
/** The codec with which to encode the audio. */
|
|
112
|
-
readonly codec!: AudioCodec;
|
|
113
|
-
/** Config for the encoder. */
|
|
114
|
-
readonly config!: AudioEncoderConfig;
|
|
115
|
-
/** The callback to call when an EncodedPacket is available. */
|
|
116
|
-
readonly onPacket!: (packet: EncodedPacket, meta?: EncodedAudioChunkMetadata) => unknown;
|
|
117
|
-
|
|
118
|
-
/** Returns true if and only if the encoder can encode the given codec configuration. */
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
120
|
-
static supports(codec: AudioCodec, config: AudioEncoderConfig): boolean {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/** Called after encoder creation; can be used for custom initialization logic. */
|
|
125
|
-
abstract init(): MaybePromise<void>;
|
|
126
|
-
/** Encodes the provided audio sample. */
|
|
127
|
-
abstract encode(audioSample: AudioSample): MaybePromise<void>;
|
|
128
|
-
/** Encodes all remaining audio samples and then resolves. */
|
|
129
|
-
abstract flush(): MaybePromise<void>;
|
|
130
|
-
/** Called when the encoder is no longer needed and its resources can be freed. */
|
|
131
|
-
abstract close(): MaybePromise<void>;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export const customVideoDecoders: typeof CustomVideoDecoder[] = [];
|
|
135
|
-
export const customAudioDecoders: typeof CustomAudioDecoder[] = [];
|
|
136
|
-
export const customVideoEncoders: typeof CustomVideoEncoder[] = [];
|
|
137
|
-
export const customAudioEncoders: typeof CustomAudioEncoder[] = [];
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Registers a custom video or audio decoder. Registered decoders will automatically be used for decoding whenever
|
|
141
|
-
* possible.
|
|
142
|
-
* @group Custom coders
|
|
143
|
-
* @public
|
|
144
|
-
*/
|
|
145
|
-
export const registerDecoder = (decoder: typeof CustomVideoDecoder | typeof CustomAudioDecoder) => {
|
|
146
|
-
if (decoder.prototype instanceof CustomVideoDecoder) {
|
|
147
|
-
const casted = decoder as typeof CustomVideoDecoder;
|
|
148
|
-
|
|
149
|
-
if (customVideoDecoders.includes(casted)) {
|
|
150
|
-
console.warn('Video decoder already registered.');
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
customVideoDecoders.push(casted);
|
|
155
|
-
} else if (decoder.prototype instanceof CustomAudioDecoder) {
|
|
156
|
-
const casted = decoder as typeof CustomAudioDecoder;
|
|
157
|
-
|
|
158
|
-
if (customAudioDecoders.includes(casted)) {
|
|
159
|
-
console.warn('Audio decoder already registered.');
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
customAudioDecoders.push(casted);
|
|
164
|
-
} else {
|
|
165
|
-
throw new TypeError('Decoder must be a CustomVideoDecoder or CustomAudioDecoder.');
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Registers a custom video or audio encoder. Registered encoders will automatically be used for encoding whenever
|
|
171
|
-
* possible.
|
|
172
|
-
* @group Custom coders
|
|
173
|
-
* @public
|
|
174
|
-
*/
|
|
175
|
-
export const registerEncoder = (encoder: typeof CustomVideoEncoder | typeof CustomAudioEncoder) => {
|
|
176
|
-
if (encoder.prototype instanceof CustomVideoEncoder) {
|
|
177
|
-
const casted = encoder as typeof CustomVideoEncoder;
|
|
178
|
-
|
|
179
|
-
if (customVideoEncoders.includes(casted)) {
|
|
180
|
-
console.warn('Video encoder already registered.');
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
customVideoEncoders.push(casted);
|
|
185
|
-
} else if (encoder.prototype instanceof CustomAudioEncoder) {
|
|
186
|
-
const casted = encoder as typeof CustomAudioEncoder;
|
|
187
|
-
|
|
188
|
-
if (customAudioEncoders.includes(casted)) {
|
|
189
|
-
console.warn('Audio encoder already registered.');
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
customAudioEncoders.push(casted);
|
|
194
|
-
} else {
|
|
195
|
-
throw new TypeError('Encoder must be a CustomVideoEncoder or CustomAudioEncoder.');
|
|
196
|
-
}
|
|
197
|
-
};
|
package/src/demuxer.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2025-present, Vanilagy and contributors
|
|
3
|
-
*
|
|
4
|
-
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
5
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
|
-
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { Input } from './input';
|
|
10
|
-
import { InputTrack } from './input-track';
|
|
11
|
-
import { MetadataTags } from './metadata';
|
|
12
|
-
|
|
13
|
-
export abstract class Demuxer {
|
|
14
|
-
input: Input;
|
|
15
|
-
|
|
16
|
-
constructor(input: Input) {
|
|
17
|
-
this.input = input;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
abstract computeDuration(): Promise<number>;
|
|
21
|
-
abstract getTracks(): Promise<InputTrack[]>;
|
|
22
|
-
abstract getMimeType(): Promise<string>;
|
|
23
|
-
abstract getMetadataTags(): Promise<MetadataTags>;
|
|
24
|
-
}
|