UNPKG

tav-media

Version:

Cross platform media editing framework

63 lines (62 loc) 2.77 kB
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; } }); }