UNPKG

atem-connection

Version:

Typescript Node.js library for connecting with an ATEM switcher.

34 lines 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertWAVToRaw = void 0; const Enums = require("../../enums"); const WaveFile = require("wavefile"); function convertWAVToRaw(inputBuffer, model) { const wav = new WaveFile(inputBuffer); if (wav.fmt.bitsPerSample !== 24) { throw new Error(`Invalid wav bit bits per sample: ${wav.fmt.bitsPerSample}`); } if (wav.fmt.numChannels !== 2) { throw new Error(`Invalid number of wav channels: ${wav.fmt.numChannel}`); } const buffer = Buffer.from(wav.data.samples); const buffer2 = Buffer.alloc(buffer.length); for (let i = 0; i < buffer.length; i += 3) { // 24bit samples, change endian from wavfile to atem requirements buffer2.writeUIntBE(buffer.readUIntLE(i, 3), i, 3); } if (model === undefined || model >= Enums.Model.PS4K) { // If we don't know the model, assume we want the newer mode as that is more likely // Newer models want a weird byte order const buffer3 = Buffer.alloc(buffer2.length); for (let i = 0; i < buffer.length; i += 4) { buffer3.writeUIntBE(buffer2.readUIntLE(i, 4), i, 4); } return buffer3; } else { return buffer2; } } exports.convertWAVToRaw = convertWAVToRaw; //# sourceMappingURL=wavAudio.js.map