add ffmpeg worker type

This commit is contained in:
Abhinav 2022-09-18 02:11:13 +05:30
parent 757241b38d
commit 4341a16938
2 changed files with 13 additions and 15 deletions

View file

@ -1,21 +1,19 @@
import * as Comlink from 'comlink';
import { ComlinkWorker } from 'utils/comlink/comlinkWorker';
import { runningInBrowser } from 'utils/common';
import { DedicatedConvertWorker } from 'worker/convert.worker';
import { DedicatedCryptoWorker } from 'worker/crypto.worker';
import { DedicatedFFmpegWorker } from 'worker/ffmpeg.worker';
const getDedicatedFFmpegWorker = (): ComlinkWorker => {
const getDedicatedFFmpegWorker = () => {
if (runningInBrowser()) {
const worker = new Worker(
new URL('worker/ffmpeg.worker.js', import.meta.url),
{ name: 'ente-ffmpeg-worker' }
);
const comlink = Comlink.wrap(worker);
return { comlink, worker };
const cryptoComlinkWorker = new ComlinkWorker<
typeof DedicatedFFmpegWorker
>('ente-ffmpeg-worker', 'worker/ffmpeg.worker.ts');
return cryptoComlinkWorker;
}
};
export const FFmpegWorker: any = getDedicatedFFmpegWorker()?.comlink;
export const FFmpegWorker = getDedicatedFFmpegWorker()?.remote;
export const getDedicatedCryptoWorker = () => {
if (runningInBrowser()) {

View file

@ -1,21 +1,21 @@
import * as Comlink from 'comlink';
import FFmpegClient from 'services/ffmpeg/ffmpegClient';
export class FFmpeg {
ffmpegClient;
export class DedicatedFFmpegWorker {
ffmpegClient: FFmpegClient;
constructor() {
this.ffmpegClient = new FFmpegClient();
}
async generateThumbnail(file) {
async generateThumbnail(file: File) {
return this.ffmpegClient.generateThumbnail(file);
}
async extractVideoMetadata(file) {
async extractVideoMetadata(file: File) {
return this.ffmpegClient.extractVideoMetadata(file);
}
async convertToMP4(file, inputFileName) {
async convertToMP4(file: Uint8Array, inputFileName: string) {
return this.ffmpegClient.convertToMP4(file, inputFileName);
}
}
Comlink.expose(FFmpeg);
Comlink.expose(DedicatedFFmpegWorker, self);