mediabunny 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +4 -4
  2. package/dist/mediabunny.d.ts +4 -2
  3. package/dist/modules/codec-data.d.ts +95 -0
  4. package/dist/modules/codec-data.d.ts.map +1 -0
  5. package/dist/modules/codec-data.js +1103 -0
  6. package/dist/modules/codec.d.ts +250 -0
  7. package/dist/modules/codec.d.ts.map +1 -0
  8. package/dist/modules/codec.js +1100 -0
  9. package/dist/modules/conversion.d.ts +158 -0
  10. package/dist/modules/conversion.d.ts.map +1 -0
  11. package/dist/modules/conversion.js +866 -0
  12. package/dist/modules/custom-coder.d.ts +119 -0
  13. package/dist/modules/custom-coder.d.ts.map +1 -0
  14. package/dist/modules/custom-coder.js +91 -0
  15. package/dist/modules/demuxer.d.ts +17 -0
  16. package/dist/modules/demuxer.d.ts.map +1 -0
  17. package/dist/modules/demuxer.js +12 -0
  18. package/dist/modules/index.d.ts +25 -0
  19. package/dist/modules/index.d.ts.map +1 -0
  20. package/dist/modules/index.js +24 -0
  21. package/dist/modules/input-format.d.ts +121 -0
  22. package/dist/modules/input-format.d.ts.map +1 -0
  23. package/dist/modules/input-format.js +333 -0
  24. package/dist/modules/input-track.d.ts +138 -0
  25. package/dist/modules/input-track.d.ts.map +1 -0
  26. package/dist/modules/input-track.js +230 -0
  27. package/dist/modules/input.d.ts +55 -0
  28. package/dist/modules/input.d.ts.map +1 -0
  29. package/dist/modules/input.js +104 -0
  30. package/dist/modules/isobmff/isobmff-boxes.d.ts +202 -0
  31. package/dist/modules/isobmff/isobmff-boxes.d.ts.map +1 -0
  32. package/dist/modules/isobmff/isobmff-boxes.js +1111 -0
  33. package/dist/modules/isobmff/isobmff-demuxer.d.ts +163 -0
  34. package/dist/modules/isobmff/isobmff-demuxer.d.ts.map +1 -0
  35. package/dist/modules/isobmff/isobmff-demuxer.js +2080 -0
  36. package/dist/modules/isobmff/isobmff-misc.d.ts +14 -0
  37. package/dist/modules/isobmff/isobmff-misc.d.ts.map +1 -0
  38. package/dist/modules/isobmff/isobmff-misc.js +20 -0
  39. package/dist/modules/isobmff/isobmff-muxer.d.ts +142 -0
  40. package/dist/modules/isobmff/isobmff-muxer.d.ts.map +1 -0
  41. package/dist/modules/isobmff/isobmff-muxer.js +858 -0
  42. package/dist/modules/isobmff/isobmff-reader.d.ts +36 -0
  43. package/dist/modules/isobmff/isobmff-reader.d.ts.map +1 -0
  44. package/dist/modules/isobmff/isobmff-reader.js +105 -0
  45. package/dist/modules/matroska/ebml.d.ts +156 -0
  46. package/dist/modules/matroska/ebml.d.ts.map +1 -0
  47. package/dist/modules/matroska/ebml.js +529 -0
  48. package/dist/modules/matroska/matroska-demuxer.d.ts +119 -0
  49. package/dist/modules/matroska/matroska-demuxer.d.ts.map +1 -0
  50. package/dist/modules/matroska/matroska-demuxer.js +1330 -0
  51. package/dist/modules/matroska/matroska-misc.d.ts +14 -0
  52. package/dist/modules/matroska/matroska-misc.d.ts.map +1 -0
  53. package/dist/modules/matroska/matroska-misc.js +20 -0
  54. package/dist/modules/matroska/matroska-muxer.d.ts +71 -0
  55. package/dist/modules/matroska/matroska-muxer.d.ts.map +1 -0
  56. package/dist/modules/matroska/matroska-muxer.js +729 -0
  57. package/dist/modules/media-sink.d.ts +272 -0
  58. package/dist/modules/media-sink.d.ts.map +1 -0
  59. package/dist/modules/media-sink.js +1264 -0
  60. package/dist/modules/media-source.d.ts +230 -0
  61. package/dist/modules/media-source.d.ts.map +1 -0
  62. package/dist/modules/media-source.js +1095 -0
  63. package/dist/modules/misc.d.ts +127 -0
  64. package/dist/modules/misc.d.ts.map +1 -0
  65. package/dist/modules/misc.js +462 -0
  66. package/dist/modules/mp3/mp3-demuxer.d.ts +32 -0
  67. package/dist/modules/mp3/mp3-demuxer.d.ts.map +1 -0
  68. package/dist/modules/mp3/mp3-demuxer.js +160 -0
  69. package/dist/modules/mp3/mp3-misc.d.ts +37 -0
  70. package/dist/modules/mp3/mp3-misc.d.ts.map +1 -0
  71. package/dist/modules/mp3/mp3-misc.js +122 -0
  72. package/dist/modules/mp3/mp3-muxer.d.ts +27 -0
  73. package/dist/modules/mp3/mp3-muxer.d.ts.map +1 -0
  74. package/dist/modules/mp3/mp3-muxer.js +112 -0
  75. package/dist/modules/mp3/mp3-reader.d.ts +25 -0
  76. package/dist/modules/mp3/mp3-reader.d.ts.map +1 -0
  77. package/dist/modules/mp3/mp3-reader.js +73 -0
  78. package/dist/modules/mp3/mp3-writer.d.ts +30 -0
  79. package/dist/modules/mp3/mp3-writer.d.ts.map +1 -0
  80. package/dist/modules/mp3/mp3-writer.js +72 -0
  81. package/dist/modules/muxer.d.ts +32 -0
  82. package/dist/modules/muxer.d.ts.map +1 -0
  83. package/dist/modules/muxer.js +50 -0
  84. package/dist/modules/ogg/ogg-demuxer.d.ts +53 -0
  85. package/dist/modules/ogg/ogg-demuxer.d.ts.map +1 -0
  86. package/dist/modules/ogg/ogg-demuxer.js +701 -0
  87. package/dist/modules/ogg/ogg-misc.d.ts +27 -0
  88. package/dist/modules/ogg/ogg-misc.d.ts.map +1 -0
  89. package/dist/modules/ogg/ogg-misc.js +78 -0
  90. package/dist/modules/ogg/ogg-muxer.d.ts +58 -0
  91. package/dist/modules/ogg/ogg-muxer.d.ts.map +1 -0
  92. package/dist/modules/ogg/ogg-muxer.js +345 -0
  93. package/dist/modules/ogg/ogg-reader.d.ts +37 -0
  94. package/dist/modules/ogg/ogg-reader.d.ts.map +1 -0
  95. package/dist/modules/ogg/ogg-reader.js +104 -0
  96. package/dist/modules/output-format.d.ts +285 -0
  97. package/dist/modules/output-format.d.ts.map +1 -0
  98. package/dist/modules/output-format.js +385 -0
  99. package/dist/modules/output.d.ts +134 -0
  100. package/dist/modules/output.d.ts.map +1 -0
  101. package/dist/modules/output.js +269 -0
  102. package/dist/modules/packet.d.ts +86 -0
  103. package/dist/modules/packet.d.ts.map +1 -0
  104. package/dist/modules/packet.js +133 -0
  105. package/dist/modules/pcm.d.ts +12 -0
  106. package/dist/modules/pcm.d.ts.map +1 -0
  107. package/dist/modules/pcm.js +85 -0
  108. package/dist/modules/reader.d.ts +40 -0
  109. package/dist/modules/reader.d.ts.map +1 -0
  110. package/dist/modules/reader.js +153 -0
  111. package/dist/modules/sample.d.ts +186 -0
  112. package/dist/modules/sample.d.ts.map +1 -0
  113. package/dist/modules/sample.js +798 -0
  114. package/dist/modules/source.d.ts +76 -0
  115. package/dist/modules/source.d.ts.map +1 -0
  116. package/dist/modules/source.js +183 -0
  117. package/dist/modules/subtitles.d.ts +37 -0
  118. package/dist/modules/subtitles.d.ts.map +1 -0
  119. package/dist/modules/subtitles.js +89 -0
  120. package/dist/modules/target.d.ts +58 -0
  121. package/dist/modules/target.d.ts.map +1 -0
  122. package/dist/modules/target.js +63 -0
  123. package/dist/modules/wave/riff-reader.d.ts +19 -0
  124. package/dist/modules/wave/riff-reader.d.ts.map +1 -0
  125. package/dist/modules/wave/riff-reader.js +38 -0
  126. package/dist/modules/wave/riff-writer.d.ts +18 -0
  127. package/dist/modules/wave/riff-writer.d.ts.map +1 -0
  128. package/dist/modules/wave/riff-writer.js +25 -0
  129. package/dist/modules/wave/wave-demuxer.d.ts +42 -0
  130. package/dist/modules/wave/wave-demuxer.d.ts.map +1 -0
  131. package/dist/modules/wave/wave-demuxer.js +239 -0
  132. package/dist/modules/wave/wave-muxer.d.ts +27 -0
  133. package/dist/modules/wave/wave-muxer.d.ts.map +1 -0
  134. package/dist/modules/wave/wave-muxer.js +108 -0
  135. package/dist/modules/writer.d.ts +85 -0
  136. package/dist/modules/writer.d.ts.map +1 -0
  137. package/dist/modules/writer.js +347 -0
  138. package/package.json +14 -10
  139. package/src/codec-data.ts +1394 -0
  140. package/src/codec.ts +1392 -0
  141. package/src/conversion.ts +1199 -0
  142. package/src/custom-coder.ts +162 -0
  143. package/src/demuxer.ts +22 -0
  144. package/src/index.ts +148 -0
  145. package/src/input-format.ts +386 -0
  146. package/src/input-track.ts +341 -0
  147. package/src/input.ts +138 -0
  148. package/src/isobmff/isobmff-boxes.ts +1365 -0
  149. package/src/isobmff/isobmff-demuxer.ts +2646 -0
  150. package/src/isobmff/isobmff-misc.ts +29 -0
  151. package/src/isobmff/isobmff-muxer.ts +1210 -0
  152. package/src/isobmff/isobmff-reader.ts +137 -0
  153. package/src/matroska/ebml.ts +595 -0
  154. package/src/matroska/matroska-demuxer.ts +1677 -0
  155. package/src/matroska/matroska-misc.ts +29 -0
  156. package/src/matroska/matroska-muxer.ts +999 -0
  157. package/src/media-sink.ts +1577 -0
  158. package/src/media-source.ts +1406 -0
  159. package/src/misc.ts +584 -0
  160. package/src/mp3/mp3-demuxer.ts +228 -0
  161. package/src/mp3/mp3-misc.ts +154 -0
  162. package/src/mp3/mp3-muxer.ts +153 -0
  163. package/src/mp3/mp3-reader.ts +93 -0
  164. package/src/mp3/mp3-writer.ts +112 -0
  165. package/src/muxer.ts +88 -0
  166. package/src/ogg/ogg-demuxer.ts +985 -0
  167. package/src/ogg/ogg-misc.ts +116 -0
  168. package/src/ogg/ogg-muxer.ts +480 -0
  169. package/src/ogg/ogg-reader.ts +143 -0
  170. package/src/output-format.ts +689 -0
  171. package/src/output.ts +427 -0
  172. package/src/packet.ts +180 -0
  173. package/src/pcm.ts +112 -0
  174. package/src/reader.ts +205 -0
  175. package/src/sample.ts +1029 -0
  176. package/src/source.ts +279 -0
  177. package/src/subtitles.ts +131 -0
  178. package/src/target.ts +106 -0
  179. package/src/tsconfig.json +13 -0
  180. package/src/wave/riff-reader.ts +48 -0
  181. package/src/wave/riff-writer.ts +30 -0
  182. package/src/wave/wave-demuxer.ts +317 -0
  183. package/src/wave/wave-muxer.ts +145 -0
  184. package/src/writer.ts +461 -0
  185. /package/dist/{mediabunny.js → bundles/mediabunny.cjs} +0 -0
  186. /package/dist/{mediabunny.min.js → bundles/mediabunny.min.cjs} +0 -0
  187. /package/dist/{mediabunny.min.mjs → bundles/mediabunny.min.mjs} +0 -0
  188. /package/dist/{mediabunny.mjs → bundles/mediabunny.mjs} +0 -0
@@ -0,0 +1,250 @@
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
+ import { Av1CodecInfo, AvcDecoderConfigurationRecord, HevcDecoderConfigurationRecord, Vp9CodecInfo } from './codec-data';
9
+ import { SubtitleMetadata } from './subtitles';
10
+ /**
11
+ * List of known video codecs, ordered by encoding preference.
12
+ * @public
13
+ */
14
+ export declare const VIDEO_CODECS: readonly ["avc", "hevc", "vp9", "av1", "vp8"];
15
+ /**
16
+ * List of known PCM (uncompressed) audio codecs, ordered by encoding preference.
17
+ * @public
18
+ */
19
+ export declare const PCM_AUDIO_CODECS: readonly ["pcm-s16", "pcm-s16be", "pcm-s24", "pcm-s24be", "pcm-s32", "pcm-s32be", "pcm-f32", "pcm-f32be", "pcm-f64", "pcm-f64be", "pcm-u8", "pcm-s8", "ulaw", "alaw"];
20
+ /**
21
+ * List of known compressed audio codecs, ordered by encoding preference.
22
+ * @public
23
+ */
24
+ export declare const NON_PCM_AUDIO_CODECS: readonly ["aac", "opus", "mp3", "vorbis", "flac"];
25
+ /**
26
+ * List of known audio codecs, ordered by encoding preference.
27
+ * @public
28
+ */
29
+ export declare const AUDIO_CODECS: readonly ["aac", "opus", "mp3", "vorbis", "flac", "pcm-s16", "pcm-s16be", "pcm-s24", "pcm-s24be", "pcm-s32", "pcm-s32be", "pcm-f32", "pcm-f32be", "pcm-f64", "pcm-f64be", "pcm-u8", "pcm-s8", "ulaw", "alaw"];
30
+ /**
31
+ * List of known subtitle codecs, ordered by encoding preference.
32
+ * @public
33
+ */
34
+ export declare const SUBTITLE_CODECS: readonly ["webvtt"];
35
+ /**
36
+ * Union type of known video codecs.
37
+ * @public
38
+ */
39
+ export type VideoCodec = typeof VIDEO_CODECS[number];
40
+ /**
41
+ * Union type of known audio codecs.
42
+ * @public
43
+ */
44
+ export type AudioCodec = typeof AUDIO_CODECS[number];
45
+ export type PcmAudioCodec = typeof PCM_AUDIO_CODECS[number];
46
+ /**
47
+ * Union type of known subtitle codecs.
48
+ * @public
49
+ */
50
+ export type SubtitleCodec = typeof SUBTITLE_CODECS[number];
51
+ /**
52
+ * Union type of known media codecs.
53
+ * @public
54
+ */
55
+ export type MediaCodec = VideoCodec | AudioCodec | SubtitleCodec;
56
+ export declare const VP9_LEVEL_TABLE: {
57
+ maxPictureSize: number;
58
+ maxBitrate: number;
59
+ level: number;
60
+ }[];
61
+ export declare const buildVideoCodecString: (codec: VideoCodec, width: number, height: number, bitrate: number) => string;
62
+ export declare const generateVp9CodecConfigurationFromCodecString: (codecString: string) => number[];
63
+ export declare const generateAv1CodecConfigurationFromCodecString: (codecString: string) => number[];
64
+ export declare const extractVideoCodecString: (trackInfo: {
65
+ width: number;
66
+ height: number;
67
+ codec: VideoCodec | null;
68
+ codecDescription: Uint8Array | null;
69
+ colorSpace: VideoColorSpaceInit | null;
70
+ avcCodecInfo: AvcDecoderConfigurationRecord | null;
71
+ hevcCodecInfo: HevcDecoderConfigurationRecord | null;
72
+ vp9CodecInfo: Vp9CodecInfo | null;
73
+ av1CodecInfo: Av1CodecInfo | null;
74
+ }) => string;
75
+ export declare const buildAudioCodecString: (codec: AudioCodec, numberOfChannels: number, sampleRate: number) => "opus" | "mp3" | "vorbis" | "flac" | "pcm-s16" | "pcm-s16be" | "pcm-s24" | "pcm-s24be" | "pcm-s32" | "pcm-s32be" | "pcm-f32" | "pcm-f32be" | "pcm-f64" | "pcm-f64be" | "pcm-u8" | "pcm-s8" | "ulaw" | "alaw" | "mp4a.40.29" | "mp4a.40.5" | "mp4a.40.2";
76
+ export type AacCodecInfo = {
77
+ isMpeg2: boolean;
78
+ };
79
+ export declare const extractAudioCodecString: (trackInfo: {
80
+ codec: AudioCodec | null;
81
+ codecDescription: Uint8Array | null;
82
+ aacCodecInfo: AacCodecInfo | null;
83
+ }) => string;
84
+ export declare const parseAacAudioSpecificConfig: (bytes: Uint8Array | null) => {
85
+ objectType: number;
86
+ frequencyIndex: number;
87
+ sampleRate: number | null;
88
+ channelConfiguration: number;
89
+ numberOfChannels: number | null;
90
+ };
91
+ export declare const OPUS_INTERNAL_SAMPLE_RATE = 48000;
92
+ export declare const parsePcmCodec: (codec: PcmAudioCodec) => {
93
+ dataType: "ulaw";
94
+ sampleSize: 1;
95
+ littleEndian: boolean;
96
+ silentValue: number;
97
+ } | {
98
+ dataType: "alaw";
99
+ sampleSize: 1;
100
+ littleEndian: boolean;
101
+ silentValue: number;
102
+ } | {
103
+ dataType: "unsigned" | "signed" | "float";
104
+ sampleSize: 8 | 1 | 2 | 4 | 3;
105
+ littleEndian: boolean;
106
+ silentValue: number;
107
+ };
108
+ export declare const inferCodecFromCodecString: (codecString: string) => MediaCodec | null;
109
+ export declare const getVideoEncoderConfigExtension: (codec: VideoCodec) => {
110
+ avc: {
111
+ format: "avc";
112
+ };
113
+ hevc?: undefined;
114
+ } | {
115
+ hevc: {
116
+ format: "hevc";
117
+ };
118
+ avc?: undefined;
119
+ } | {
120
+ avc?: undefined;
121
+ hevc?: undefined;
122
+ };
123
+ export declare const getAudioEncoderConfigExtension: (codec: AudioCodec) => {
124
+ aac: {
125
+ format: "aac";
126
+ };
127
+ opus?: undefined;
128
+ } | {
129
+ opus: {
130
+ format: "opus";
131
+ };
132
+ aac?: undefined;
133
+ } | {
134
+ aac?: undefined;
135
+ opus?: undefined;
136
+ };
137
+ /**
138
+ * Represents a subjective media quality level.
139
+ * @public
140
+ */
141
+ export declare class Quality {
142
+ }
143
+ /**
144
+ * Represents a very low media quality.
145
+ * @public
146
+ */
147
+ export declare const QUALITY_VERY_LOW: Quality;
148
+ /**
149
+ * Represents a low media quality.
150
+ * @public
151
+ */
152
+ export declare const QUALITY_LOW: Quality;
153
+ /**
154
+ * Represents a medium media quality.
155
+ * @public
156
+ */
157
+ export declare const QUALITY_MEDIUM: Quality;
158
+ /**
159
+ * Represents a high media quality.
160
+ * @public
161
+ */
162
+ export declare const QUALITY_HIGH: Quality;
163
+ /**
164
+ * Represents a very high media quality.
165
+ * @public
166
+ */
167
+ export declare const QUALITY_VERY_HIGH: Quality;
168
+ export declare const validateVideoChunkMetadata: (metadata: EncodedVideoChunkMetadata | undefined) => void;
169
+ export declare const validateAudioChunkMetadata: (metadata: EncodedAudioChunkMetadata | undefined) => void;
170
+ export declare const validateSubtitleMetadata: (metadata: SubtitleMetadata | undefined) => void;
171
+ /**
172
+ * Checks if the browser is able to encode the given codec.
173
+ * @public
174
+ */
175
+ export declare const canEncode: (codec: MediaCodec) => Promise<boolean>;
176
+ /**
177
+ * Checks if the browser is able to encode the given video codec with the given parameters.
178
+ * @public
179
+ */
180
+ export declare const canEncodeVideo: (codec: VideoCodec, { width, height, bitrate }?: {
181
+ width?: number;
182
+ height?: number;
183
+ bitrate?: number | Quality;
184
+ }) => Promise<boolean>;
185
+ /**
186
+ * Checks if the browser is able to encode the given audio codec with the given parameters.
187
+ * @public
188
+ */
189
+ export declare const canEncodeAudio: (codec: AudioCodec, { numberOfChannels, sampleRate, bitrate }?: {
190
+ numberOfChannels?: number;
191
+ sampleRate?: number;
192
+ bitrate?: number | Quality;
193
+ }) => Promise<boolean>;
194
+ /**
195
+ * Checks if the browser is able to encode the given subtitle codec.
196
+ * @public
197
+ */
198
+ export declare const canEncodeSubtitles: (codec: SubtitleCodec) => Promise<boolean>;
199
+ /**
200
+ * Returns the list of all media codecs that can be encoded by the browser.
201
+ * @public
202
+ */
203
+ export declare const getEncodableCodecs: () => Promise<MediaCodec[]>;
204
+ /**
205
+ * Returns the list of all video codecs that can be encoded by the browser.
206
+ * @public
207
+ */
208
+ export declare const getEncodableVideoCodecs: (checkedCodecs?: VideoCodec[], options?: {
209
+ width?: number;
210
+ height?: number;
211
+ bitrate?: number | Quality;
212
+ }) => Promise<VideoCodec[]>;
213
+ /**
214
+ * Returns the list of all audio codecs that can be encoded by the browser.
215
+ * @public
216
+ */
217
+ export declare const getEncodableAudioCodecs: (checkedCodecs?: AudioCodec[], options?: {
218
+ numberOfChannels?: number;
219
+ sampleRate?: number;
220
+ bitrate?: number | Quality;
221
+ }) => Promise<AudioCodec[]>;
222
+ /**
223
+ * Returns the list of all subtitle codecs that can be encoded by the browser.
224
+ * @public
225
+ */
226
+ export declare const getEncodableSubtitleCodecs: (checkedCodecs?: SubtitleCodec[]) => Promise<SubtitleCodec[]>;
227
+ /**
228
+ * Returns the first video codec from the given list that can be encoded by the browser.
229
+ * @public
230
+ */
231
+ export declare const getFirstEncodableVideoCodec: (checkedCodecs: VideoCodec[], options?: {
232
+ width?: number;
233
+ height?: number;
234
+ bitrate?: number | Quality;
235
+ }) => Promise<VideoCodec | null>;
236
+ /**
237
+ * Returns the first audio codec from the given list that can be encoded by the browser.
238
+ * @public
239
+ */
240
+ export declare const getFirstEncodableAudioCodec: (checkedCodecs: AudioCodec[], options?: {
241
+ numberOfChannels?: number;
242
+ sampleRate?: number;
243
+ bitrate?: number | Quality;
244
+ }) => Promise<AudioCodec | null>;
245
+ /**
246
+ * Returns the first subtitle codec from the given list that can be encoded by the browser.
247
+ * @public
248
+ */
249
+ export declare const getFirstEncodableSubtitleCodec: (checkedCodecs: SubtitleCodec[]) => Promise<SubtitleCodec | null>;
250
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/codec.ts"],"names":[],"mappings":"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"}