aboutsummaryrefslogtreecommitdiffhomepage
path: root/packages/models/src/videos/studio
diff options
context:
space:
mode:
Diffstat (limited to 'packages/models/src/videos/studio')
-rw-r--r--packages/models/src/videos/studio/index.ts1
-rw-r--r--packages/models/src/videos/studio/video-studio-create-edit.model.ts60
2 files changed, 61 insertions, 0 deletions
diff --git a/packages/models/src/videos/studio/index.ts b/packages/models/src/videos/studio/index.ts
new file mode 100644
index 000000000..0d8ad3227
--- /dev/null
+++ b/packages/models/src/videos/studio/index.ts
@@ -0,0 +1 @@
export * from './video-studio-create-edit.model.js'
diff --git a/packages/models/src/videos/studio/video-studio-create-edit.model.ts b/packages/models/src/videos/studio/video-studio-create-edit.model.ts
new file mode 100644
index 000000000..5e8296dc9
--- /dev/null
+++ b/packages/models/src/videos/studio/video-studio-create-edit.model.ts
@@ -0,0 +1,60 @@
1export interface VideoStudioCreateEdition {
2 tasks: VideoStudioTask[]
3}
4
5export type VideoStudioTask =
6 VideoStudioTaskCut |
7 VideoStudioTaskIntro |
8 VideoStudioTaskOutro |
9 VideoStudioTaskWatermark
10
11export interface VideoStudioTaskCut {
12 name: 'cut'
13
14 options: {
15 start?: number
16 end?: number
17 }
18}
19
20export interface VideoStudioTaskIntro {
21 name: 'add-intro'
22
23 options: {
24 file: Blob | string
25 }
26}
27
28export interface VideoStudioTaskOutro {
29 name: 'add-outro'
30
31 options: {
32 file: Blob | string
33 }
34}
35
36export interface VideoStudioTaskWatermark {
37 name: 'add-watermark'
38
39 options: {
40 file: Blob | string
41 }
42}
43
44// ---------------------------------------------------------------------------
45
46export function isVideoStudioTaskIntro (v: VideoStudioTask): v is VideoStudioTaskIntro {
47 return v.name === 'add-intro'
48}
49
50export function isVideoStudioTaskOutro (v: VideoStudioTask): v is VideoStudioTaskOutro {
51 return v.name === 'add-outro'
52}
53
54export function isVideoStudioTaskWatermark (v: VideoStudioTask): v is VideoStudioTaskWatermark {
55 return v.name === 'add-watermark'
56}
57
58export function hasVideoStudioTaskFile (v: VideoStudioTask): v is VideoStudioTaskIntro | VideoStudioTaskOutro | VideoStudioTaskWatermark {
59 return isVideoStudioTaskIntro(v) || isVideoStudioTaskOutro(v) || isVideoStudioTaskWatermark(v)
60}