-async function handleHLSJob (job: Job, payload: HLSTranscodingPayload, video: MVideoFullLight, user: MUser) {
- logger.info('Handling HLS transcoding job for %s.', video.uuid, lTags(video.uuid))
-
- const videoFileInput = payload.copyCodecs
- ? video.getWebTorrentFile(payload.resolution)
- : video.getMaxQualityFile()
-
- const videoOrStreamingPlaylist = videoFileInput.getVideoOrStreamingPlaylist()
-
- const inputFileMutexReleaser = await VideoPathManager.Instance.lockFiles(video.uuid)
-
- try {
- await videoFileInput.getVideo().reload()
-
- await VideoPathManager.Instance.makeAvailableVideoFile(videoFileInput.withVideoOrPlaylist(videoOrStreamingPlaylist), videoInputPath => {
- return generateHlsPlaylistResolution({
- video,
- videoInputPath,
- inputFileMutexReleaser,
- resolution: payload.resolution,
- copyCodecs: payload.copyCodecs,
- job
- })
- })
- } finally {
- inputFileMutexReleaser()
- }
-
- logger.info('HLS transcoding job for %s ended.', video.uuid, lTags(video.uuid))
-
- await onHlsPlaylistGeneration(video, user, payload)
-}
-
-async function handleNewWebTorrentResolutionJob (
- job: Job,
- payload: NewWebTorrentResolutionTranscodingPayload,
- video: MVideoFullLight,
- user: MUserId
-) {
- logger.info('Handling WebTorrent transcoding job for %s.', video.uuid, lTags(video.uuid))
-
- await transcodeNewWebTorrentResolution({ video, resolution: payload.resolution, job })
-
- logger.info('WebTorrent transcoding job for %s ended.', video.uuid, lTags(video.uuid))
-
- await onNewWebTorrentFileResolution(video, user, payload)
-}
-