nextTranscodingSequentialJobPayloads = [ ...nextTranscodingSequentialJobPayloads, ...lowerResolutionJobPayloads ]
+ const hasChildren = nextTranscodingSequentialJobPayloads.length !== 0
mergeOrOptimizePayload = videoFile.isAudio()
- ? this.buildMergeAudioPayload({ videoUUID: video.uuid, isNewVideo })
- : this.buildOptimizePayload({ videoUUID: video.uuid, isNewVideo, quickTranscode })
+ ? this.buildMergeAudioPayload({ videoUUID: video.uuid, isNewVideo, hasChildren })
+ : this.buildOptimizePayload({ videoUUID: video.uuid, isNewVideo, quickTranscode, hasChildren })
})
} finally {
mutexReleaser()
const mergeOrOptimizeJob = await this.buildTranscodingJob({ payload: mergeOrOptimizePayload, user })
- return JobQueue.Instance.createSequentialJobFlow(...[ mergeOrOptimizeJob, transcodingJobBuilderJob ])
+ await JobQueue.Instance.createSequentialJobFlow(...[ mergeOrOptimizeJob, transcodingJobBuilderJob ])
+
+ await VideoJobInfoModel.increaseOrCreate(video.uuid, 'pendingTranscode')
}
// ---------------------------------------------------------------------------
private buildMergeAudioPayload (options: {
videoUUID: string
isNewVideo: boolean
+ hasChildren: boolean
}): MergeAudioTranscodingPayload {
- const { videoUUID, isNewVideo } = options
+ const { videoUUID, isNewVideo, hasChildren } = options
return {
type: 'merge-audio-to-webtorrent',
resolution: DEFAULT_AUDIO_RESOLUTION,
fps: VIDEO_TRANSCODING_FPS.AUDIO_MERGE,
videoUUID,
- isNewVideo
+ isNewVideo,
+ hasChildren
}
}
videoUUID: string
quickTranscode: boolean
isNewVideo: boolean
+ hasChildren: boolean
}): OptimizeTranscodingPayload {
- const { videoUUID, quickTranscode, isNewVideo } = options
+ const { videoUUID, quickTranscode, isNewVideo, hasChildren } = options
return {
type: 'optimize-to-webtorrent',
videoUUID,
isNewVideo,
+ hasChildren,
quickTranscode
}
}