From b759fd88081f14f36e3e54434a285d9af8ba14e9 Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Sun, 26 Jan 2025 12:03:23 +0100 Subject: [PATCH] Add toDataView --- src/codec.ts | 3 ++- src/media-sink.ts | 3 ++- src/misc.ts | 4 ++++ src/mp3/mp3-muxer.ts | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/codec.ts b/src/codec.ts index 2d33f18..62fa5c0 100644 --- a/src/codec.ts +++ b/src/codec.ts @@ -8,6 +8,7 @@ import { last, readBits, reverseBitsU32, + toDataView, } from './misc'; import { SubtitleMetadata } from './subtitles'; @@ -306,7 +307,7 @@ export const extractVideoCodecString = (trackInfo: { throw new TypeError('HEVC description must be provided.'); } - const view = new DataView(description.buffer, description.byteOffset, description.byteLength); + const view = toDataView(description); let codecString = 'hev1.'; // general_profile_space and general_profile_idc diff --git a/src/media-sink.ts b/src/media-sink.ts index e472844..3572c8d 100644 --- a/src/media-sink.ts +++ b/src/media-sink.ts @@ -9,6 +9,7 @@ import { mapAsyncGenerator, promiseWithResolvers, toAsyncIterator, + toDataView, validateAnyIterable, } from './misc'; import { fromAlaw, fromUlaw } from './pcm'; @@ -1015,7 +1016,7 @@ class PcmAudioDecoderWrapper extends DecoderWrapper { } }; +export const toDataView = (bytes: Uint8Array) => { + return new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); +}; + export const textEncoder = new TextEncoder(); const invertObject = (object: Record) => { diff --git a/src/mp3/mp3-muxer.ts b/src/mp3/mp3-muxer.ts index 47ae310..4d5f5ad 100644 --- a/src/mp3/mp3-muxer.ts +++ b/src/mp3/mp3-muxer.ts @@ -1,4 +1,4 @@ -import { assert } from '../misc'; +import { assert, toDataView } from '../misc'; import { Muxer } from '../muxer'; import { Output, OutputAudioTrack } from '../output'; import { EncodedAudioSample } from '../sample'; @@ -36,7 +36,7 @@ export class Mp3Muxer extends Muxer { try { if (!this.xingFrameData) { - const view = new DataView(sample.data.buffer, sample.data.byteOffset, sample.data.byteLength); + const view = toDataView(sample.data); if (view.byteLength < 4) { throw new Error('Invalid MP3 header in sample.'); }