tav-media
Version:
Cross platform media editing framework
63 lines (62 loc) • 2.77 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
/* eslint-disable no-param-reassign */
import { binding as BindPAGClasses } from '../../libpag/src/binding';
import { WebAssemblyQueue } from '../../libpag/src/utils/queue';
import createTAVMedia from '../../bin/wasm/tav-media-wasm';
import { setTAVModule } from '../tav';
import { WebAudioReader } from './web-audio-reader';
import { setFS } from '../io/file-system';
import { ImageReader } from './image-reader';
import { WxImageReader } from './wx-image-reader';
import { WxVideoReader } from './wx-video-reader';
import { TAVBitmapExecutor } from './tav-bitmap-executor';
import { Http } from '../io/http';
import { AudioReader } from './audio-reader';
import { PAGFont } from '../../libpag/src/pag-font';
import { tav } from '../tav';
import { MediaReader } from './media-reader';
export { FileSystem } from '../io/file-system';
/**
* Initialize the TAVMediaWasm.
* @param wasmModule The TAVWasmOptions object
*/
export function initializeWasm(wasmModule) {
return __awaiter(this, void 0, void 0, function* () {
let offscreenCanvas;
const platform = typeof (wx) === 'undefined' ? 'wx' : 'browser';
setTAVModule(wasmModule);
yield createTAVMedia(wasmModule);
const module = wasmModule;
setFS(module.FS);
Object.defineProperty(wasmModule, 'webAssemblyQueue', {
value: new WebAssemblyQueue(),
enumerable: true,
writable: true,
});
BindPAGClasses(wasmModule);
PAGFont.registerFallbackFontNames();
tav.TAVBitmapExecutor = TAVBitmapExecutor;
if (platform === 'wx') {
tav.TAVImageReader = ImageReader;
tav.TAVVideoFrameReader = MediaReader;
tav.TAVAudioFrameReader = AudioReader;
tav.TAVWebAudioReader = WebAudioReader;
tav.TAVMovieAudioReader = MediaReader;
}
else {
tav.TAVImageReader = WxImageReader;
tav.TAVVideoFrameReader = WxVideoReader;
}
if (wasmModule.baseUrl) {
Http.baseUrl = wasmModule.baseUrl;
}
});
}