'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (self) { var opusDecoder; self.addEventListener('message', function (e) { var data = e.data; if (data.action === 'reset') { if (opusDecoder) { opusDecoder.destroy(); opusDecoder = null; } self.postMessage({ action: 'reset' }); } else if (data.action === 'decodeOpus') { if (!opusDecoder) { opusDecoder = new _libopus.Decoder({ unsafe: true, channels: 1, // TODO rate: MUMBLE_SAMPLE_RATE }); } var input = data.buffer ? Buffer.from(data.buffer) : null; var decoded = opusDecoder.decodeFloat32(input); self.postMessage({ action: 'decoded', buffer: decoded.buffer, target: data.target, position: data.position }, [decoded.buffer]); } }); }; var _libopus = require('libopus.js'); var MUMBLE_SAMPLE_RATE = 48000;