export type VideoFilePayload = {
videoUUID: string
- resolution?: VideoResolution,
+ isNewVideo: boolean
+ resolution?: VideoResolution
isPortraitMode?: boolean
}
await onVideoFileTranscoderSuccess(video)
} else {
await video.optimizeOriginalVideofile()
- await onVideoFileOptimizerSuccess(video)
+ await onVideoFileOptimizerSuccess(video, payload.isNewVideo)
}
return video
return undefined
}
-async function onVideoFileOptimizerSuccess (video: VideoModel) {
+async function onVideoFileOptimizerSuccess (video: VideoModel, isNewVideo: boolean) {
if (video === undefined) return undefined
// Maybe the video changed in database, refresh it
if (!videoDatabase) return undefined
if (video.privacy !== VideoPrivacy.PRIVATE) {
- // Now we'll add the video's meta data to our followers
- await sendCreateVideo(video, undefined)
- await shareVideoByServerAndChannel(video, undefined)
+ if (isNewVideo === true) {
+ // Now we'll add the video's meta data to our followers
+ await sequelizeTypescript.transaction(async t => {
+ await sendCreateVideo(video, t)
+ await shareVideoByServerAndChannel(video, t)
+ })
+ } else {
+ await sendUpdateVideo(video, undefined)
+ }
}
const { videoFileResolution } = await videoDatabase.getOriginalFileResolution()
)
if (resolutionsEnabled.length !== 0) {
- try {
- await sequelizeTypescript.transaction(async t => {
- const tasks: Promise<any>[] = []
+ const tasks: Promise<any>[] = []
- for (const resolution of resolutionsEnabled) {
- const dataInput = {
- videoUUID: videoDatabase.uuid,
- resolution
- }
+ for (const resolution of resolutionsEnabled) {
+ const dataInput = {
+ videoUUID: videoDatabase.uuid,
+ resolution,
+ isNewVideo
+ }
- const p = JobQueue.Instance.createJob({ type: 'video-file', payload: dataInput })
- tasks.push(p)
- }
+ const p = JobQueue.Instance.createJob({ type: 'video-file', payload: dataInput })
+ tasks.push(p)
+ }
- await Promise.all(tasks)
- })
+ await Promise.all(tasks)
- logger.info('Transcoding jobs created for uuid %s.', videoDatabase.uuid, { resolutionsEnabled })
- } catch (err) {
- logger.warn('Cannot transcode the video.', err)
- }
+ logger.info('Transcoding jobs created for uuid %s.', videoDatabase.uuid, { resolutionsEnabled })
} else {
logger.info('No transcoding jobs created for video %s (no resolutions enabled).')
return undefined