]>
Commit | Line | Data |
---|---|---|
0c9668f7 C |
1 | import { Job } from 'bullmq' |
2 | import { createOptimizeOrMergeAudioJobs } from '@server/lib/transcoding/create-transcoding-job' | |
3 | import { UserModel } from '@server/models/user/user' | |
4 | import { VideoModel } from '@server/models/video/video' | |
5 | import { VideoJobInfoModel } from '@server/models/video/video-job-info' | |
6 | import { pick } from '@shared/core-utils' | |
7 | import { TranscodingJobBuilderPayload } from '@shared/models' | |
8 | import { logger } from '../../../helpers/logger' | |
9 | import { JobQueue } from '../job-queue' | |
10 | ||
11 | async function processTranscodingJobBuilder (job: Job) { | |
12 | const payload = job.data as TranscodingJobBuilderPayload | |
13 | ||
14 | logger.info('Processing transcoding job builder in job %s.', job.id) | |
15 | ||
16 | if (payload.optimizeJob) { | |
17 | const video = await VideoModel.loadFull(payload.videoUUID) | |
18 | const user = await UserModel.loadByVideoId(video.id) | |
19 | const videoFile = video.getMaxQualityFile() | |
20 | ||
21 | await createOptimizeOrMergeAudioJobs({ | |
22 | ...pick(payload.optimizeJob, [ 'isNewVideo' ]), | |
23 | ||
24 | video, | |
25 | videoFile, | |
9a3db678 C |
26 | user, |
27 | videoFileAlreadyLocked: false | |
0c9668f7 C |
28 | }) |
29 | } | |
30 | ||
31 | for (const job of (payload.jobs || [])) { | |
32 | await JobQueue.Instance.createJob(job) | |
33 | ||
34 | await VideoJobInfoModel.increaseOrCreate(payload.videoUUID, 'pendingTranscode') | |
35 | } | |
36 | ||
37 | for (const sequentialJobs of (payload.sequentialJobs || [])) { | |
38 | await JobQueue.Instance.createSequentialJobFlow(...sequentialJobs) | |
39 | ||
cc2abbc3 | 40 | await VideoJobInfoModel.increaseOrCreate(payload.videoUUID, 'pendingTranscode', sequentialJobs.filter(s => !!s).length) |
0c9668f7 C |
41 | } |
42 | } | |
43 | ||
44 | // --------------------------------------------------------------------------- | |
45 | ||
46 | export { | |
47 | processTranscodingJobBuilder | |
48 | } |