This repository has been archived on 2026-03-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
bot/node_modules/prism-media/src/vorbis/WebmDemuxer.js
2020-12-12 16:58:15 +01:00

23 lines
719 B
JavaScript

const WebmBaseDemuxer = require('../core/WebmBase');
const VORBIS_HEAD = Buffer.from([...'vorbis'].map(x => x.charCodeAt(0)));
/**
* Demuxes a Webm stream (containing Vorbis audio) to output a Vorbis stream.
* @memberof vorbis
* @extends core.WebmBaseDemuxer
*/
class WebmDemuxer extends WebmBaseDemuxer {
_checkHead(data) {
if (data.readUInt8(0) !== 2 || !data.slice(4, 10).equals(VORBIS_HEAD)) {
throw Error('Audio codec is not Vorbis!');
}
this.push(data.slice(3, 3 + data.readUInt8(1)));
this.push(data.slice(3 + data.readUInt8(1), 3 + data.readUInt8(1) + data.readUInt8(2)));
this.push(data.slice(3 + data.readUInt8(1) + data.readUInt8(2)));
}
}
module.exports = WebmDemuxer;