rustdesk/src/codec.js

49 lines
1.7 KiB
JavaScript
Raw Normal View History

2022-01-18 17:05:34 +08:00
// example: https://github.com/rgov/js-theora-decoder/blob/main/index.html
// dev: copy decoder files from node/ogv/dist/* to project dir
// dist: .... to dist
2022-01-18 17:24:36 +08:00
/*
2022-01-20 01:00:35 +08:00
OGVDemuxerOggW: 'ogv-demuxer-ogg-wasm.js',
OGVDemuxerWebMW: 'ogv-demuxer-webm-wasm.js',
OGVDecoderAudioOpusW: 'ogv-decoder-audio-opus-wasm.js',
OGVDecoderAudioVorbisW: 'ogv-decoder-audio-vorbis-wasm.js',
OGVDecoderVideoTheoraW: 'ogv-decoder-video-theora-wasm.js',
OGVDecoderVideoVP8W: 'ogv-decoder-video-vp8-wasm.js',
OGVDecoderVideoVP8MTW: 'ogv-decoder-video-vp8-mt-wasm.js',
OGVDecoderVideoVP9W: 'ogv-decoder-video-vp9-wasm.js',
OGVDecoderVideoVP9SIMDW: 'ogv-decoder-video-vp9-simd-wasm.js',
OGVDecoderVideoVP9MTW: 'ogv-decoder-video-vp9-mt-wasm.js',
OGVDecoderVideoVP9SIMDMTW: 'ogv-decoder-video-vp9-simd-mt-wasm.js',
OGVDecoderVideoAV1W: 'ogv-decoder-video-av1-wasm.js',
OGVDecoderVideoAV1SIMDW: 'ogv-decoder-video-av1-simd-wasm.js',
OGVDecoderVideoAV1MTW: 'ogv-decoder-video-av1-mt-wasm.js',
OGVDecoderVideoAV1SIMDMTW: 'ogv-decoder-video-av1-simd-mt-wasm.js',
2022-01-18 17:24:36 +08:00
*/
2022-01-18 17:05:34 +08:00
2022-01-20 21:58:28 +08:00
export function loadVp9(callback) {
2022-01-20 01:00:35 +08:00
window.OGVLoader.loadClass(
"OGVDecoderVideoVP9W",
(videoCodecClass) => {
2022-01-20 21:58:28 +08:00
window.videoCodecClass = videoCodecClass;
2022-01-21 00:41:02 +08:00
videoCodecClass({ videoFormat: {} }).then((decoder) => {
2022-01-20 01:00:35 +08:00
decoder.init(() => {
2022-01-20 21:58:28 +08:00
callback(decoder);
2022-01-20 01:00:35 +08:00
})
})
},
{ worker: true }
);
2022-01-18 17:05:34 +08:00
}
2022-01-20 21:58:28 +08:00
export function loadOpus(callback) {
2022-01-20 01:00:35 +08:00
window.OGVLoader.loadClass(
"OGVDecoderAudioOpusW",
(audioCodecClass) => {
2022-01-21 00:41:02 +08:00
audioCodecClass({ audioFormat: {} }).then((decoder) => {
2022-01-20 01:00:35 +08:00
decoder.init(() => {
2022-01-20 21:58:28 +08:00
callback(decoder);
2022-01-20 01:00:35 +08:00
})
})
},
{ worker: true }
);
2022-01-18 17:05:34 +08:00
}