From c729caf6cc34630877a0e5a1bda1719384cd0c8a Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 11 Feb 2022 10:51:33 +0100 Subject: Add basic video editor support --- shared/models/server/custom-config.model.ts | 4 +++ shared/models/server/job.model.ts | 39 +++++++++++++++++++++++++++++ shared/models/server/server-config.model.ts | 4 +++ 3 files changed, 47 insertions(+) (limited to 'shared/models/server') diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts index 52d3d9588..c9e7654de 100644 --- a/shared/models/server/custom-config.model.ts +++ b/shared/models/server/custom-config.model.ts @@ -143,6 +143,10 @@ export interface CustomConfig { } } + videoEditor: { + enabled: boolean + } + import: { videos: { concurrency: number diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts index 1519d1c3e..d0293f542 100644 --- a/shared/models/server/job.model.ts +++ b/shared/models/server/job.model.ts @@ -1,4 +1,5 @@ import { ContextType } from '../activitypub/context' +import { VideoEditorTaskCut } from '../videos/editor' import { VideoResolution } from '../videos/file/video-resolution.enum' import { SendEmailOptions } from './emailer.model' @@ -20,6 +21,7 @@ export type JobType = | 'video-live-ending' | 'actor-keys' | 'move-to-object-storage' + | 'video-edition' export interface Job { id: number @@ -155,3 +157,40 @@ export interface MoveObjectStoragePayload { videoUUID: string isNewVideo: boolean } + +export type VideoEditorTaskCutPayload = VideoEditorTaskCut + +export type VideoEditorTaskIntroPayload = { + name: 'add-intro' + + options: { + file: string + } +} + +export type VideoEditorTaskOutroPayload = { + name: 'add-outro' + + options: { + file: string + } +} + +export type VideoEditorTaskWatermarkPayload = { + name: 'add-watermark' + + options: { + file: string + } +} + +export type VideoEditionTaskPayload = + VideoEditorTaskCutPayload | + VideoEditorTaskIntroPayload | + VideoEditorTaskOutroPayload | + VideoEditorTaskWatermarkPayload + +export interface VideoEditionPayload { + videoUUID: string + tasks: VideoEditionTaskPayload[] +} diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts index 32be96b9d..0fe8b0de8 100644 --- a/shared/models/server/server-config.model.ts +++ b/shared/models/server/server-config.model.ts @@ -167,6 +167,10 @@ export interface ServerConfig { } } + videoEditor: { + enabled: boolean + } + import: { videos: { http: { -- cgit v1.2.3