This commit is contained in:
Ingvar Stepanyan
2020-09-23 15:54:21 +01:00
parent 4ca7971442
commit c754016ac7

View File

@@ -1,21 +1,26 @@
import mainUrl from 'file-loader!../../../codecs/avif/enc/avif_enc.js';
import avif_enc, { AVIFModule } from '../../../codecs/avif/enc/avif_enc.js';
import { AVIFModule } from '../../../codecs/avif/enc/avif_enc.js';
import wasmUrl from '../../../codecs/avif/enc/avif_enc.wasm';
import workerUrl from 'file-loader!../../../codecs/avif/enc/avif_enc.worker.js';
import { EncodeOptions } from './encoder-meta';
import { initEmscriptenModule } from '../util';
declare const avif_enc: typeof import('../../../codecs/avif/enc/avif_enc.js').default;
let emscriptenModule: Promise<AVIFModule>;
export async function encode(data: ImageData, options: EncodeOptions): Promise<ArrayBuffer> {
if (!emscriptenModule) {
emscriptenModule = initEmscriptenModule(
async function init() {
importScripts(mainUrl as unknown as string);
return initEmscriptenModule<AVIFModule>(
avif_enc,
wasmUrl,
workerUrl,
mainUrl as unknown as string,
);
}
}
export async function encode(data: ImageData, options: EncodeOptions): Promise<ArrayBuffer> {
if (!emscriptenModule) emscriptenModule = init();
const module = await emscriptenModule;
const result = module.encode(data.data, data.width, data.height, options);