{"version":3,"file":"StreamFilter.mjs","sources":["../../src/filters/StreamFilter.ts"],"sourcesContent":["import { getInstance } from '../instance';\nimport { Filter } from './Filter';\n\n/**\n * Export a MediaStream to be recorded\n *\n * @memberof filters\n */\nclass StreamFilter extends Filter\n{\n    private _stream: MediaStream;\n\n    constructor()\n    {\n        let destination: MediaStreamAudioDestinationNode;\n        let source: MediaStreamAudioSourceNode;\n\n        if (!getInstance().useLegacy)\n        {\n            const { audioContext } = getInstance().context;\n\n            destination = audioContext.createMediaStreamDestination();\n            source = audioContext.createMediaStreamSource(destination.stream);\n        }\n\n        super(destination, source);\n        this._stream = destination?.stream;\n    }\n\n    public get stream(): MediaStream\n    {\n        return this._stream;\n    }\n\n    public destroy(): void\n    {\n        this._stream = null;\n        super.destroy();\n    }\n}\n\nexport { StreamFilter };\n"],"names":[],"mappings":";;;AAQA,MAAM,qBAAqB,MAC3B,CAAA;AAAA,EAGI,WACA,GAAA;AACI,IAAI,IAAA,WAAA,CAAA;AACJ,IAAI,IAAA,MAAA,CAAA;AAEJ,IAAI,IAAA,CAAC,WAAY,EAAA,CAAE,SACnB,EAAA;AACI,MAAA,MAAM,EAAE,YAAA,EAAiB,GAAA,WAAA,EAAc,CAAA,OAAA,CAAA;AAEvC,MAAA,WAAA,GAAc,aAAa,4BAA6B,EAAA,CAAA;AACxD,MAAS,MAAA,GAAA,YAAA,CAAa,uBAAwB,CAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAAA,KACpE;AAEA,IAAA,KAAA,CAAM,aAAa,MAAM,CAAA,CAAA;AACzB,IAAA,IAAA,CAAK,UAAU,WAAa,EAAA,MAAA,CAAA;AAAA,GAChC;AAAA,EAEA,IAAW,MACX,GAAA;AACI,IAAA,OAAO,IAAK,CAAA,OAAA,CAAA;AAAA,GAChB;AAAA,EAEO,OACP,GAAA;AACI,IAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AACf,IAAA,KAAA,CAAM,OAAQ,EAAA,CAAA;AAAA,GAClB;AACJ;;;;"}