summaryrefslogtreecommitdiff
path: root/node_modules/prism-media/src/opus/WebmDemuxer.js
blob: 4d78f9c8abf395b5aea3603a0de5aa88a0dc9776 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const WebmBaseDemuxer = require('../core/WebmBase');

const OPUS_HEAD = Buffer.from([...'OpusHead'].map(x => x.charCodeAt(0)));

/**
 * Demuxes a Webm stream (containing Opus audio) to output an Opus stream.
 * @extends core.WebmBaseDemuxer
 * @memberof opus
 * @example
 * const fs = require('fs');
 * const file = fs.createReadStream('./audio.webm');
 * const demuxer = new prism.opus.WebmDemuxer();
 * const opus = file.pipe(demuxer);
 * // opus is now a ReadableStream in object mode outputting Opus packets
 */
class WebmDemuxer extends WebmBaseDemuxer {
  _checkHead(data) {
    if (!data.slice(0, 8).equals(OPUS_HEAD)) {
      throw Error('Audio codec is not Opus!');
    }
  }
}

module.exports = WebmDemuxer;