import { MUserId, MVideoFile, MVideoFullLight, MVideoWithFileThumbnail } from '@server/types/models'
import { MRunnerJob } from '@server/types/models/runners'
import { ffprobePromise, getVideoStreamDimensionsInfo, getVideoStreamFPS, hasAudioStream, isAudioFile } from '@shared/ffmpeg'
+import { getTranscodingJobPriority } from '../../transcoding-priority'
import { computeResolutionsToTranscode } from '../../transcoding-resolutions'
import { AbstractJobBuilder } from './abstract-job-builder'
: await VideoPathManager.Instance.lockFiles(video.uuid)
try {
+ await video.reload()
+ await videoFile.reload()
+
await VideoPathManager.Instance.makeAvailableVideoFile(videoFile.withVideoOrPlaylist(video), async videoFilePath => {
const probe = await ffprobePromise(videoFilePath)
: resolution
const fps = computeOutputFPS({ inputFPS, resolution: maxResolution })
- const priority = await this.getTranscodingJobPriority({ user, fallback: 0 })
+ const priority = await getTranscodingJobPriority({ user, type: 'vod', fallback: 0 })
const mainRunnerJob = videoFile.isAudio()
? await new VODAudioMergeTranscodingJobHandler().create({ video, resolution: maxResolution, fps, isNewVideo, priority })
fps,
isNewVideo,
dependsOnRunnerJob: mainRunnerJob,
- priority: await this.getTranscodingJobPriority({ user, fallback: 0 })
+ priority: await getTranscodingJobPriority({ user, type: 'vod', fallback: 0 })
})
}
const maxResolution = Math.max(...resolutions)
const { fps: inputFPS } = await video.probeMaxQualityFile()
const maxFPS = computeOutputFPS({ inputFPS, resolution: maxResolution })
- const priority = await this.getTranscodingJobPriority({ user, fallback: 0 })
+ const priority = await getTranscodingJobPriority({ user, type: 'vod', fallback: 0 })
const childrenResolutions = resolutions.filter(r => r !== maxResolution)
isNewVideo,
deleteWebVideoFiles: false,
dependsOnRunnerJob,
- priority: await this.getTranscodingJobPriority({ user, fallback: 0 })
+ priority: await getTranscodingJobPriority({ user, type: 'vod', fallback: 0 })
})
continue
}
fps,
isNewVideo,
dependsOnRunnerJob,
- priority: await this.getTranscodingJobPriority({ user, fallback: 0 })
+ priority: await getTranscodingJobPriority({ user, type: 'vod', fallback: 0 })
})
continue
}
fps,
isNewVideo,
dependsOnRunnerJob: mainRunnerJob,
- priority: await this.getTranscodingJobPriority({ user, fallback: 0 })
+ priority: await getTranscodingJobPriority({ user, type: 'vod', fallback: 0 })
})
}
isNewVideo,
deleteWebVideoFiles: false,
dependsOnRunnerJob: mainRunnerJob,
- priority: await this.getTranscodingJobPriority({ user, fallback: 0 })
+ priority: await getTranscodingJobPriority({ user, type: 'vod', fallback: 0 })
})
}
}