add dontTimeout ffmpeg param

This commit is contained in:
Abhinav 2023-06-05 10:45:38 +05:30
parent 924d263076
commit e6e73f94a3
5 changed files with 26 additions and 13 deletions

View file

@ -13,13 +13,15 @@ export class ElectronFFmpeg implements IFFmpeg {
async run(
cmd: string[],
inputFile: ElectronFile | File,
outputFilename: string
outputFilename: string,
dontTimeout?: boolean
) {
if (this.electronAPIs?.runFFmpegCmd) {
return this.electronAPIs.runFFmpegCmd(
cmd,
inputFile,
outputFilename
outputFilename,
dontTimeout
);
}
}

View file

@ -7,7 +7,8 @@ export interface IFFmpeg {
run: (
cmd: string[],
inputFile: File | ElectronFile,
outputFilename: string
outputFilename: string,
dontTimeout?: boolean
) => Promise<File | ElectronFile>;
}

View file

@ -32,13 +32,22 @@ export class WasmFFmpeg {
}
}
async run(cmd: string[], inputFile: File, outputFileName: string) {
const response = this.ffmpegTaskQueue.queueUpRequest(() =>
promiseWithTimeout<File>(
this.execute(cmd, inputFile, outputFileName),
FFMPEG_EXECUTION_WAIT_TIME
)
);
async run(
cmd: string[],
inputFile: File,
outputFileName: string,
dontTimeout = false
) {
const response = this.ffmpegTaskQueue.queueUpRequest(() => {
if (dontTimeout) {
return this.execute(cmd, inputFile, outputFileName);
} else {
promiseWithTimeout<File>(
this.execute(cmd, inputFile, outputFileName),
FFMPEG_EXECUTION_WAIT_TIME
);
}
});
try {
return await response.promise;
} catch (e) {

View file

@ -74,7 +74,8 @@ export interface ElectronAPIs {
runFFmpegCmd: (
cmd: string[],
inputFile: File | ElectronFile,
outputFileName: string
outputFileName: string,
dontTimeout?: boolean
) => Promise<File>;
muteUpdateNotification: (version: string) => void;
generateImageThumbnail: (

View file

@ -7,8 +7,8 @@ export class DedicatedFFmpegWorker {
this.wasmFFmpeg = new WasmFFmpeg();
}
run(cmd, inputFile, outputFileName) {
return this.wasmFFmpeg.run(cmd, inputFile, outputFileName);
run(cmd, inputFile, outputFileName, dontTimeout) {
return this.wasmFFmpeg.run(cmd, inputFile, outputFileName, dontTimeout);
}
}