@mediabunny/mp3-encoder 1.11.1 → 1.12.0

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.
@@ -48,22 +48,22 @@ var computeMp3FrameSize = (layer, bitrate, sampleRate, padding) => {
48
48
  return Math.floor(144 * bitrate / sampleRate + padding);
49
49
  }
50
50
  };
51
- var readFrameHeader = (word, reader) => {
52
- const startPos = reader.pos;
51
+ var readFrameHeader = (word, remainingBytes) => {
53
52
  const firstByte = word >>> 24;
54
53
  const secondByte = word >>> 16 & 255;
55
54
  const thirdByte = word >>> 8 & 255;
56
55
  const fourthByte = word & 255;
57
56
  if (firstByte !== 255 && secondByte !== 255 && thirdByte !== 255 && fourthByte !== 255) {
58
- reader.pos += 4;
59
- return null;
57
+ return {
58
+ header: null,
59
+ bytesAdvanced: 4
60
+ };
60
61
  }
61
- reader.pos += 1;
62
62
  if (firstByte !== 255) {
63
- return null;
63
+ return { header: null, bytesAdvanced: 1 };
64
64
  }
65
65
  if ((secondByte & 224) !== 224) {
66
- return null;
66
+ return { header: null, bytesAdvanced: 1 };
67
67
  }
68
68
  const mpegVersionId = secondByte >> 3 & 3;
69
69
  const layer = secondByte >> 1 & 3;
@@ -77,16 +77,16 @@ var readFrameHeader = (word, reader) => {
77
77
  const emphasis = fourthByte & 3;
78
78
  const kilobitRate = mpegVersionId === 3 ? MPEG_V1_BITRATES[layer]?.[bitrateIndex] : MPEG_V2_BITRATES[layer]?.[bitrateIndex];
79
79
  if (!kilobitRate || kilobitRate === -1) {
80
- return null;
80
+ return { header: null, bytesAdvanced: 1 };
81
81
  }
82
82
  const bitrate = kilobitRate * 1e3;
83
83
  const sampleRate = SAMPLING_RATES[mpegVersionId]?.[frequencyIndex];
84
84
  if (!sampleRate || sampleRate === -1) {
85
- return null;
85
+ return { header: null, bytesAdvanced: 1 };
86
86
  }
87
87
  const frameLength = computeMp3FrameSize(layer, bitrate, sampleRate, padding);
88
- if (reader.fileSize !== null && reader.fileSize - startPos < frameLength) {
89
- return null;
88
+ if (remainingBytes !== null && remainingBytes < frameLength) {
89
+ return { header: null, bytesAdvanced: 1 };
90
90
  }
91
91
  let audioSamplesInFrame;
92
92
  if (mpegVersionId === 3) {
@@ -101,19 +101,21 @@ var readFrameHeader = (word, reader) => {
101
101
  }
102
102
  }
103
103
  return {
104
- startPos,
105
- totalSize: frameLength,
106
- mpegVersionId,
107
- layer,
108
- bitrate,
109
- frequencyIndex,
110
- sampleRate,
111
- channel,
112
- modeExtension,
113
- copyright,
114
- original,
115
- emphasis,
116
- audioSamplesInFrame
104
+ header: {
105
+ totalSize: frameLength,
106
+ mpegVersionId,
107
+ layer,
108
+ bitrate,
109
+ frequencyIndex,
110
+ sampleRate,
111
+ channel,
112
+ modeExtension,
113
+ copyright,
114
+ original,
115
+ emphasis,
116
+ audioSamplesInFrame
117
+ },
118
+ bytesAdvanced: 1
117
119
  };
118
120
  };
119
121
 
@@ -243,7 +245,7 @@ var Mp3Encoder = class extends CustomAudioEncoder {
243
245
  let pos = 0;
244
246
  while (pos <= this.currentBufferOffset - FRAME_HEADER_SIZE) {
245
247
  const word = new DataView(this.buffer.buffer).getUint32(pos, false);
246
- const header = readFrameHeader(word, { pos, fileSize: null });
248
+ const header = readFrameHeader(word, null).header;
247
249
  if (!header) {
248
250
  break;
249
251
  }
@@ -119,7 +119,7 @@ class Mp3Encoder extends mediabunny_1.CustomAudioEncoder {
119
119
  let pos = 0;
120
120
  while (pos <= this.currentBufferOffset - mp3_misc_1.FRAME_HEADER_SIZE) {
121
121
  const word = new DataView(this.buffer.buffer).getUint32(pos, false);
122
- const header = (0, mp3_misc_1.readFrameHeader)(word, { pos, fileSize: null });
122
+ const header = (0, mp3_misc_1.readFrameHeader)(word, null).header;
123
123
  if (!header) {
124
124
  break;
125
125
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mediabunny/mp3-encoder",
3
3
  "author": "Vanilagy",
4
- "version": "1.11.1",
4
+ "version": "1.12.0",
5
5
  "description": "MP3 encoder extension for Mediabunny, based on LAME.",
6
6
  "main": "./dist/bundles/mediabunny-mp3-encoder.mjs",
7
7
  "module": "./dist/bundles/mediabunny-mp3-encoder.mjs",
package/src/index.ts CHANGED
@@ -136,7 +136,7 @@ class Mp3Encoder extends CustomAudioEncoder {
136
136
  let pos = 0;
137
137
  while (pos <= this.currentBufferOffset - FRAME_HEADER_SIZE) {
138
138
  const word = new DataView(this.buffer.buffer).getUint32(pos, false);
139
- const header = readFrameHeader(word, { pos, fileSize: null });
139
+ const header = readFrameHeader(word, null).header;
140
140
  if (!header) {
141
141
  break;
142
142
  }