1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-04 02:09:37 +02:00

More robust runner update handler

This commit is contained in:
Chocobozzz 2023-06-19 13:45:26 +02:00
parent 7d758898dc
commit a34c612f38
No known key found for this signature in database
GPG key ID: 583A612D890159BE
2 changed files with 25 additions and 5 deletions

View file

@ -21,6 +21,8 @@ export interface FFmpegCommandWrapperOptions {
lTags?: { tags: string[] }
updateJobProgress?: (progress?: number) => void
onEnd?: () => void
onError?: (err: Error) => void
}
export class FFmpegCommandWrapper {
@ -37,6 +39,8 @@ export class FFmpegCommandWrapper {
private readonly lTags: { tags: string[] }
private readonly updateJobProgress: (progress?: number) => void
private readonly onEnd?: () => void
private readonly onError?: (err: Error) => void
private command: FfmpegCommand
@ -48,7 +52,11 @@ export class FFmpegCommandWrapper {
this.threads = options.threads
this.logger = options.logger
this.lTags = options.lTags || { tags: [] }
this.updateJobProgress = options.updateJobProgress
this.onEnd = options.onEnd
this.onError = options.onError
}
getAvailableEncoders () {
@ -101,12 +109,16 @@ export class FFmpegCommandWrapper {
this.command.on('error', (err, stdout, stderr) => {
if (silent !== true) this.logger.error('Error in ffmpeg.', { stdout, stderr, shellCommand, ...this.lTags })
if (this.onError) this.onError(err)
rej(err)
})
this.command.on('end', (stdout, stderr) => {
this.logger.debug('FFmpeg command ended.', { stdout, stderr, shellCommand, ...this.lTags })
if (this.onEnd) this.onEnd()
res()
})