summaryrefslogtreecommitdiff
path: root/node_modules/prism-media/src/opus/WebmDemuxer.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/prism-media/src/opus/WebmDemuxer.js')
-rw-r--r--node_modules/prism-media/src/opus/WebmDemuxer.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/node_modules/prism-media/src/opus/WebmDemuxer.js b/node_modules/prism-media/src/opus/WebmDemuxer.js
new file mode 100644
index 0000000..4d78f9c
--- /dev/null
+++ b/node_modules/prism-media/src/opus/WebmDemuxer.js
@@ -0,0 +1,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;