@norskvideo/norsk-studio-built-ins 1.27.0-2025-07-06-336ac6c6 → 1.27.0-2025-07-09-f9b24945
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/info.js +665 -284
- package/client/style.css +46 -0
- package/lib/info.js +3 -1
- package/lib/info.js.map +1 -1
- package/lib/input.rtmp/info.d.ts +20 -1
- package/lib/input.rtmp/runtime.d.ts +20 -1
- package/lib/input.rtmp/types.d.ts +47 -27
- package/lib/input.rtmp/types.source.yaml +319 -0
- package/lib/input.rtmp/types.yaml +206 -131
- package/lib/input.silence/info.d.ts +4 -2
- package/lib/input.silence/types.d.ts +4 -7
- package/lib/input.silence/types.source.yaml +27 -0
- package/lib/input.silence/types.yaml +82 -4
- package/lib/input.srt-caller/info.d.ts +41 -4
- package/lib/input.srt-caller/types.d.ts +51 -43
- package/lib/input.srt-caller/types.source.yaml +70 -0
- package/lib/input.srt-caller/types.yaml +138 -24
- package/lib/input.srt-listener/info.d.ts +41 -4
- package/lib/input.srt-listener/runtime.d.ts +34 -3
- package/lib/input.srt-listener/types.d.ts +74 -44
- package/lib/input.srt-listener/types.source.yaml +329 -0
- package/lib/input.srt-listener/types.yaml +259 -132
- package/lib/input.udp-ts/info.d.ts +20 -1
- package/lib/input.udp-ts/types.d.ts +20 -25
- package/lib/input.udp-ts/types.source.yaml +40 -0
- package/lib/input.udp-ts/types.yaml +81 -3
- package/lib/input.videoTestCard/info.d.ts +8 -2
- package/lib/input.videoTestCard/types.d.ts +8 -10
- package/lib/input.videoTestCard/types.source.yaml +32 -0
- package/lib/input.videoTestCard/types.yaml +30 -6
- package/lib/input.whip/info.d.ts +7 -1
- package/lib/input.whip/types.d.ts +44 -28
- package/lib/input.whip/types.source.yaml +190 -0
- package/lib/input.whip/types.yaml +179 -104
- package/lib/output.autoCmaf/fullscreen.js +46 -1
- package/lib/output.autoCmaf/fullscreen.js.map +1 -1
- package/lib/output.autoCmaf/info.js +20 -0
- package/lib/output.autoCmaf/info.js.map +1 -1
- package/lib/output.autoCmaf/inline-view.d.ts +3 -2
- package/lib/output.autoCmaf/inline-view.js +72 -2
- package/lib/output.autoCmaf/inline-view.js.map +1 -1
- package/lib/output.autoCmaf/runtime.d.ts +2 -1
- package/lib/output.autoCmaf/runtime.js +41 -11
- package/lib/output.autoCmaf/runtime.js.map +1 -1
- package/lib/output.autoCmaf/types.d.ts +2 -0
- package/lib/output.autoCmaf/types.yaml +6 -0
- package/lib/output.cmafMultiVariant/runtime.js +2 -2
- package/lib/output.cmafMultiVariant/runtime.js.map +1 -1
- package/lib/output.cmafPlaylist/info.js +19 -0
- package/lib/output.cmafPlaylist/info.js.map +1 -1
- package/lib/output.cmafPlaylist/runtime.js +6 -3
- package/lib/output.cmafPlaylist/runtime.js.map +1 -1
- package/lib/output.cmafPlaylist/types.d.ts +1 -0
- package/lib/output.cmafPlaylist/types.yaml +3 -0
- package/lib/output.preview/inline-view.js +1 -1
- package/lib/output.preview/inline-view.js.map +1 -1
- package/lib/output.preview/runtime.js +2 -2
- package/lib/output.preview/runtime.js.map +1 -1
- package/lib/output.statistics/info.d.ts +172 -2
- package/lib/output.statistics/types.d.ts +400 -72
- package/lib/output.statistics/types.source.yaml +119 -0
- package/lib/output.statistics/types.yaml +333 -91
- package/lib/output.tsMediaPlaylist/runtime.js +2 -2
- package/lib/output.tsMediaPlaylist/runtime.js.map +1 -1
- package/lib/output.tsMultiVariant/runtime.js +1 -1
- package/lib/output.tsMultiVariant/runtime.js.map +1 -1
- package/lib/output.whep/runtime.js +3 -1
- package/lib/output.whep/runtime.js.map +1 -1
- package/lib/processor.audioEncoder/info.d.ts +10 -2
- package/lib/processor.audioEncoder/types.d.ts +23 -12
- package/lib/processor.audioEncoder/types.source.yaml +78 -0
- package/lib/processor.audioEncoder/types.yaml +103 -29
- package/lib/processor.browserOverlay/info.js +5 -3
- package/lib/processor.browserOverlay/info.js.map +1 -1
- package/lib/processor.browserOverlay/runtime.d.ts +2 -1
- package/lib/processor.browserOverlay/runtime.js +16 -2
- package/lib/processor.browserOverlay/runtime.js.map +1 -1
- package/lib/processor.fixedLadder/info.d.ts +182 -7
- package/lib/processor.fixedLadder/types.d.ts +619 -19
- package/lib/processor.fixedLadder/types.source.yaml +462 -0
- package/lib/processor.fixedLadder/types.yaml +336 -115
- package/lib/processor.makeProgram/info.d.ts +1 -0
- package/lib/processor.makeProgram/info.js +9 -0
- package/lib/processor.makeProgram/info.js.map +1 -1
- package/lib/processor.makeProgram/runtime.d.ts +2 -1
- package/lib/processor.makeProgram/runtime.js +14 -1
- package/lib/processor.makeProgram/runtime.js.map +1 -1
- package/lib/processor.makeProgram/types.d.ts +1 -0
- package/lib/processor.makeProgram/types.yaml +3 -1
- package/lib/processor.smartSingleMediaSwitch/info.d.ts +12 -4
- package/lib/processor.smartSingleMediaSwitch/types.d.ts +22 -18
- package/lib/processor.smartSingleMediaSwitch/types.source.yaml +115 -0
- package/lib/processor.smartSingleMediaSwitch/types.yaml +147 -50
- package/lib/processor.smartSourceSwitch/form-views.d.ts +6 -0
- package/lib/processor.smartSourceSwitch/form-views.js +11 -0
- package/lib/processor.smartSourceSwitch/form-views.js.map +1 -0
- package/lib/processor.smartSourceSwitch/info.d.ts +18 -4
- package/lib/processor.smartSourceSwitch/info.js +30 -0
- package/lib/processor.smartSourceSwitch/info.js.map +1 -1
- package/lib/processor.smartSourceSwitch/inline-view.js +9 -8
- package/lib/processor.smartSourceSwitch/inline-view.js.map +1 -1
- package/lib/processor.smartSourceSwitch/runtime.d.ts +4 -1
- package/lib/processor.smartSourceSwitch/runtime.js +56 -27
- package/lib/processor.smartSourceSwitch/runtime.js.map +1 -1
- package/lib/processor.smartSourceSwitch/types.d.ts +41 -18
- package/lib/processor.smartSourceSwitch/types.source.yaml +129 -0
- package/lib/processor.smartSourceSwitch/types.yaml +177 -48
- package/lib/processor.syncExternalAudio/info.d.ts +1 -0
- package/lib/processor.syncExternalAudio/types.d.ts +1 -0
- package/lib/processor.videoDecoder/info.js +4 -2
- package/lib/processor.videoDecoder/info.js.map +1 -1
- package/lib/processor.zoomTo/info.d.ts +54 -0
- package/lib/processor.zoomTo/info.js +174 -0
- package/lib/processor.zoomTo/info.js.map +1 -0
- package/lib/processor.zoomTo/runtime-types.d.ts +11 -0
- package/lib/processor.zoomTo/runtime-types.js +3 -0
- package/lib/processor.zoomTo/runtime-types.js.map +1 -0
- package/lib/processor.zoomTo/runtime.d.ts +45 -0
- package/lib/processor.zoomTo/runtime.js +323 -0
- package/lib/processor.zoomTo/runtime.js.map +1 -0
- package/lib/processor.zoomTo/types.d.ts +182 -0
- package/lib/processor.zoomTo/types.js +3 -0
- package/lib/processor.zoomTo/types.js.map +1 -0
- package/lib/processor.zoomTo/types.yaml +356 -0
- package/lib/test/auto-cmaf.js +7 -4
- package/lib/test/auto-cmaf.js.map +1 -1
- package/lib/test/smart-source-switch.js +117 -2
- package/lib/test/smart-source-switch.js.map +1 -1
- package/lib/test/zoom-to.d.ts +1 -0
- package/lib/test/zoom-to.js +345 -0
- package/lib/test/zoom-to.js.map +1 -0
- package/package.json +5 -5
- package/lib/output.autoCmaf/summary.d.ts +0 -6
- package/lib/output.autoCmaf/summary.js +0 -57
- package/lib/output.autoCmaf/summary.js.map +0 -1
@@ -1,10 +1,10 @@
|
|
1
|
+
# This file has been generated, please edit types.source.yaml instead
|
2
|
+
|
1
3
|
openapi: 3.0.0
|
2
4
|
info:
|
3
5
|
title: UDP TS Input
|
4
6
|
version: 1.0.0
|
5
|
-
|
6
7
|
paths: {}
|
7
|
-
|
8
8
|
components:
|
9
9
|
schemas:
|
10
10
|
Config:
|
@@ -37,4 +37,82 @@ components:
|
|
37
37
|
type: number
|
38
38
|
description: The port the remote server is listening on
|
39
39
|
streamMappings:
|
40
|
-
|
40
|
+
type: object
|
41
|
+
description: Configuration for mapping input streams to output streams
|
42
|
+
properties:
|
43
|
+
streams:
|
44
|
+
type: array
|
45
|
+
items:
|
46
|
+
type: object
|
47
|
+
description: Individual stream mapping entry
|
48
|
+
properties:
|
49
|
+
outputKey:
|
50
|
+
type: object
|
51
|
+
properties:
|
52
|
+
streamId:
|
53
|
+
type: integer
|
54
|
+
programNumber:
|
55
|
+
type: integer
|
56
|
+
sourceName:
|
57
|
+
type: string
|
58
|
+
renditionName:
|
59
|
+
type: string
|
60
|
+
required:
|
61
|
+
- streamId
|
62
|
+
- programNumber
|
63
|
+
- sourceName
|
64
|
+
- renditionName
|
65
|
+
displayName:
|
66
|
+
type: string
|
67
|
+
description: Optional display name for this stream
|
68
|
+
media:
|
69
|
+
type: string
|
70
|
+
enum:
|
71
|
+
- video
|
72
|
+
- audio
|
73
|
+
- subtitle
|
74
|
+
- ancillary
|
75
|
+
- playlist
|
76
|
+
description: Media type for stream mapping
|
77
|
+
filters:
|
78
|
+
type: array
|
79
|
+
items:
|
80
|
+
oneOf:
|
81
|
+
- type: object
|
82
|
+
properties:
|
83
|
+
type:
|
84
|
+
type: string
|
85
|
+
enum:
|
86
|
+
- sourceName
|
87
|
+
- language
|
88
|
+
- codec
|
89
|
+
- renditionName
|
90
|
+
value:
|
91
|
+
type: string
|
92
|
+
required:
|
93
|
+
- type
|
94
|
+
- value
|
95
|
+
- type: object
|
96
|
+
properties:
|
97
|
+
type:
|
98
|
+
type: string
|
99
|
+
enum:
|
100
|
+
- streamId
|
101
|
+
- programNumber
|
102
|
+
value:
|
103
|
+
type: integer
|
104
|
+
required:
|
105
|
+
- type
|
106
|
+
- value
|
107
|
+
description: Optional conditions for stream selection
|
108
|
+
missingBehaviour:
|
109
|
+
type: string
|
110
|
+
enum:
|
111
|
+
- fill
|
112
|
+
- skip
|
113
|
+
description: Behavior when no matching stream is found
|
114
|
+
required:
|
115
|
+
- outputKey
|
116
|
+
- media
|
117
|
+
required:
|
118
|
+
- streams
|
@@ -3,7 +3,13 @@ export default function ({ defineComponent, common: { Resolutions, FrameRates }
|
|
3
3
|
id: string;
|
4
4
|
displayName: string;
|
5
5
|
notes?: string;
|
6
|
-
resolution:
|
7
|
-
|
6
|
+
resolution: {
|
7
|
+
width: number;
|
8
|
+
height: number;
|
9
|
+
};
|
10
|
+
frameRate: {
|
11
|
+
frames: number;
|
12
|
+
seconds: number;
|
13
|
+
};
|
8
14
|
pattern: "black" | "smpte75" | "smpte100";
|
9
15
|
}, object, object, object>;
|
@@ -6,18 +6,16 @@ export interface components {
|
|
6
6
|
id: string;
|
7
7
|
displayName: string;
|
8
8
|
notes?: string;
|
9
|
-
resolution:
|
10
|
-
|
9
|
+
resolution: {
|
10
|
+
width: number;
|
11
|
+
height: number;
|
12
|
+
};
|
13
|
+
frameRate: {
|
14
|
+
frames: number;
|
15
|
+
seconds: number;
|
16
|
+
};
|
11
17
|
pattern: "black" | "smpte75" | "smpte100";
|
12
18
|
};
|
13
|
-
Resolution: {
|
14
|
-
width: number;
|
15
|
-
height: number;
|
16
|
-
};
|
17
|
-
FrameRate: {
|
18
|
-
frames: number;
|
19
|
-
seconds: number;
|
20
|
-
};
|
21
19
|
};
|
22
20
|
responses: never;
|
23
21
|
parameters: never;
|
@@ -0,0 +1,32 @@
|
|
1
|
+
openapi: 3.0.0
|
2
|
+
info:
|
3
|
+
title: Video Test Card Input
|
4
|
+
version: 1.0.0
|
5
|
+
|
6
|
+
paths: {}
|
7
|
+
|
8
|
+
components:
|
9
|
+
schemas:
|
10
|
+
Config:
|
11
|
+
type: object
|
12
|
+
required:
|
13
|
+
- id
|
14
|
+
- displayName
|
15
|
+
- resolution
|
16
|
+
- frameRate
|
17
|
+
- pattern
|
18
|
+
properties:
|
19
|
+
id:
|
20
|
+
type: string
|
21
|
+
displayName:
|
22
|
+
type: string
|
23
|
+
notes:
|
24
|
+
type: string
|
25
|
+
resolution:
|
26
|
+
$ref: '../../../core/src/types/base.yml#/components/schemas/Resolution'
|
27
|
+
frameRate:
|
28
|
+
$ref: '../../../core/src/types/base.yml#/components/schemas/FrameRate'
|
29
|
+
pattern:
|
30
|
+
type: string
|
31
|
+
enum: ["black", "smpte75", "smpte100"]
|
32
|
+
description: The pattern to use on the test card
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# This file has been generated, please edit types.source.yaml instead
|
2
|
+
|
1
3
|
openapi: 3.0.0
|
2
4
|
info:
|
3
5
|
title: Video Test Card Input
|
4
6
|
version: 1.0.0
|
5
|
-
|
6
7
|
paths: {}
|
7
|
-
|
8
8
|
components:
|
9
9
|
schemas:
|
10
10
|
Config:
|
@@ -23,10 +23,34 @@ components:
|
|
23
23
|
notes:
|
24
24
|
type: string
|
25
25
|
resolution:
|
26
|
-
|
26
|
+
type: object
|
27
|
+
description: Video resolution with width and height dimensions
|
28
|
+
properties:
|
29
|
+
width:
|
30
|
+
type: integer
|
31
|
+
minimum: 1
|
32
|
+
description: Width in pixels
|
33
|
+
height:
|
34
|
+
type: integer
|
35
|
+
minimum: 1
|
36
|
+
description: Height in pixels
|
37
|
+
required:
|
38
|
+
- width
|
39
|
+
- height
|
27
40
|
frameRate:
|
28
|
-
|
41
|
+
type: object
|
42
|
+
properties:
|
43
|
+
frames:
|
44
|
+
type: integer
|
45
|
+
seconds:
|
46
|
+
type: integer
|
47
|
+
required:
|
48
|
+
- frames
|
49
|
+
- seconds
|
29
50
|
pattern:
|
30
51
|
type: string
|
31
|
-
enum:
|
32
|
-
|
52
|
+
enum:
|
53
|
+
- black
|
54
|
+
- smpte75
|
55
|
+
- smpte100
|
56
|
+
description: The pattern to use on the test card
|
package/lib/input.whip/info.d.ts
CHANGED
@@ -4,7 +4,13 @@ export default function ({ defineComponent, singleAvStreamMapping, singleAvStrea
|
|
4
4
|
connectionCount: number;
|
5
5
|
endpointUrl: string;
|
6
6
|
clientUrl: string;
|
7
|
-
activeSessions?:
|
7
|
+
activeSessions?: {
|
8
|
+
sessionId: string;
|
9
|
+
sourceName: string;
|
10
|
+
programNumber?: number;
|
11
|
+
status: "connected" | "disconnected";
|
12
|
+
connectedAt: string;
|
13
|
+
}[];
|
8
14
|
}, {
|
9
15
|
type: "close-session";
|
10
16
|
sessionId: string;
|
@@ -64,13 +64,38 @@ export interface components {
|
|
64
64
|
notes?: string;
|
65
65
|
hostIps?: string[];
|
66
66
|
serverReflexiveIps?: string[];
|
67
|
-
streamMappings?:
|
67
|
+
streamMappings?: {
|
68
|
+
streams: {
|
69
|
+
outputKey: {
|
70
|
+
streamId: number;
|
71
|
+
programNumber: number;
|
72
|
+
sourceName: string;
|
73
|
+
renditionName: string;
|
74
|
+
};
|
75
|
+
displayName?: string;
|
76
|
+
media: "video" | "audio" | "subtitle" | "ancillary" | "playlist";
|
77
|
+
filters?: ({
|
78
|
+
type: "sourceName" | "language" | "codec" | "renditionName";
|
79
|
+
value: string;
|
80
|
+
} | {
|
81
|
+
type: "streamId" | "programNumber";
|
82
|
+
value: number;
|
83
|
+
})[];
|
84
|
+
missingBehaviour?: "fill" | "skip";
|
85
|
+
}[];
|
86
|
+
};
|
68
87
|
};
|
69
88
|
State: {
|
70
89
|
connectionCount: number;
|
71
90
|
endpointUrl: string;
|
72
91
|
clientUrl: string;
|
73
|
-
activeSessions?:
|
92
|
+
activeSessions?: {
|
93
|
+
sessionId: string;
|
94
|
+
sourceName: string;
|
95
|
+
programNumber?: number;
|
96
|
+
status: "connected" | "disconnected";
|
97
|
+
connectedAt: string;
|
98
|
+
}[];
|
74
99
|
};
|
75
100
|
ActiveSession: {
|
76
101
|
sessionId: string;
|
@@ -79,12 +104,27 @@ export interface components {
|
|
79
104
|
status: "connected" | "disconnected";
|
80
105
|
connectedAt: string;
|
81
106
|
};
|
82
|
-
Commands:
|
107
|
+
Commands: {
|
108
|
+
type: "close-session";
|
109
|
+
sessionId: string;
|
110
|
+
};
|
83
111
|
CloseSessionCommand: {
|
84
112
|
type: "close-session";
|
85
113
|
sessionId: string;
|
86
114
|
};
|
87
|
-
Events:
|
115
|
+
Events: {
|
116
|
+
type: "connection-established";
|
117
|
+
sessionId: string;
|
118
|
+
sourceName: string;
|
119
|
+
programNumber?: number;
|
120
|
+
} | {
|
121
|
+
type: "connection-closed";
|
122
|
+
sessionId: string;
|
123
|
+
} | {
|
124
|
+
type: "endpoint-published";
|
125
|
+
endpointUrl: string;
|
126
|
+
clientUrl: string;
|
127
|
+
};
|
88
128
|
ConnectionEstablishedEvent: {
|
89
129
|
type: "connection-established";
|
90
130
|
sessionId: string;
|
@@ -100,30 +140,6 @@ export interface components {
|
|
100
140
|
endpointUrl: string;
|
101
141
|
clientUrl: string;
|
102
142
|
};
|
103
|
-
StreamKey: {
|
104
|
-
streamId: number;
|
105
|
-
programNumber: number;
|
106
|
-
sourceName: string;
|
107
|
-
renditionName: string;
|
108
|
-
};
|
109
|
-
MediaType: "video" | "audio" | "subtitle" | "ancillary" | "playlist";
|
110
|
-
StreamMappingFilter: {
|
111
|
-
type: "sourceName" | "language" | "codec" | "renditionName";
|
112
|
-
value: string;
|
113
|
-
} | {
|
114
|
-
type: "streamId" | "programNumber";
|
115
|
-
value: number;
|
116
|
-
};
|
117
|
-
StreamMappingEntry: {
|
118
|
-
outputKey: components["schemas"]["StreamKey"];
|
119
|
-
displayName?: string;
|
120
|
-
media: components["schemas"]["MediaType"];
|
121
|
-
filters?: components["schemas"]["StreamMappingFilter"][];
|
122
|
-
missingBehaviour?: "fill" | "skip";
|
123
|
-
};
|
124
|
-
StreamMappingConfiguration: {
|
125
|
-
streams: components["schemas"]["StreamMappingEntry"][];
|
126
|
-
};
|
127
143
|
};
|
128
144
|
responses: never;
|
129
145
|
parameters: never;
|
@@ -0,0 +1,190 @@
|
|
1
|
+
openapi: 3.0.0
|
2
|
+
info:
|
3
|
+
title: WHIP Input
|
4
|
+
version: 1.0.0
|
5
|
+
|
6
|
+
paths:
|
7
|
+
/close-session:
|
8
|
+
post:
|
9
|
+
summary: Close a specific WHIP client session
|
10
|
+
description: Forcibly closes an active client session
|
11
|
+
x-route-type: instance
|
12
|
+
requestBody:
|
13
|
+
required: true
|
14
|
+
content:
|
15
|
+
application/json:
|
16
|
+
schema:
|
17
|
+
type: object
|
18
|
+
required:
|
19
|
+
- sessionId
|
20
|
+
properties:
|
21
|
+
sessionId:
|
22
|
+
type: string
|
23
|
+
description: The session ID to close
|
24
|
+
responses:
|
25
|
+
200:
|
26
|
+
description: Session successfully closed
|
27
|
+
content:
|
28
|
+
application/json:
|
29
|
+
schema:
|
30
|
+
type: object
|
31
|
+
properties:
|
32
|
+
success:
|
33
|
+
type: boolean
|
34
|
+
sessionId:
|
35
|
+
type: string
|
36
|
+
400:
|
37
|
+
description: Invalid session ID or session not found
|
38
|
+
500:
|
39
|
+
description: Server error while closing session
|
40
|
+
|
41
|
+
components:
|
42
|
+
schemas:
|
43
|
+
Config:
|
44
|
+
type: object
|
45
|
+
required:
|
46
|
+
- id
|
47
|
+
- displayName
|
48
|
+
properties:
|
49
|
+
id:
|
50
|
+
type: string
|
51
|
+
description: Component ID
|
52
|
+
displayName:
|
53
|
+
type: string
|
54
|
+
description: Component display name
|
55
|
+
notes:
|
56
|
+
type: string
|
57
|
+
description: Optional notes about the component
|
58
|
+
hostIps:
|
59
|
+
type: array
|
60
|
+
items:
|
61
|
+
type: string
|
62
|
+
description: List of IPs to advertise as host address
|
63
|
+
serverReflexiveIps:
|
64
|
+
type: array
|
65
|
+
items:
|
66
|
+
type: string
|
67
|
+
description: List of server reflexive candidates for ICE
|
68
|
+
streamMappings:
|
69
|
+
$ref: '../../../core/src/types/base.yml#/components/schemas/StreamMappingConfiguration'
|
70
|
+
|
71
|
+
State:
|
72
|
+
type: object
|
73
|
+
required:
|
74
|
+
- connectionCount
|
75
|
+
- endpointUrl
|
76
|
+
- clientUrl
|
77
|
+
properties:
|
78
|
+
connectionCount:
|
79
|
+
type: number
|
80
|
+
description: Number of active client connections
|
81
|
+
endpointUrl:
|
82
|
+
type: string
|
83
|
+
description: WHIP endpoint URL for clients to connect to
|
84
|
+
clientUrl:
|
85
|
+
type: string
|
86
|
+
description: URL for local test client
|
87
|
+
activeSessions:
|
88
|
+
type: array
|
89
|
+
items:
|
90
|
+
$ref: '#/components/schemas/ActiveSession'
|
91
|
+
description: List of active client sessions
|
92
|
+
|
93
|
+
ActiveSession:
|
94
|
+
type: object
|
95
|
+
required:
|
96
|
+
- sessionId
|
97
|
+
- sourceName
|
98
|
+
- status
|
99
|
+
- connectedAt
|
100
|
+
properties:
|
101
|
+
sessionId:
|
102
|
+
type: string
|
103
|
+
description: Unique session identifier
|
104
|
+
sourceName:
|
105
|
+
type: string
|
106
|
+
description: Source name for the session streams
|
107
|
+
programNumber:
|
108
|
+
type: number
|
109
|
+
description: Program number for the session
|
110
|
+
status:
|
111
|
+
type: string
|
112
|
+
enum: ["connected", "disconnected"]
|
113
|
+
description: Current connection status
|
114
|
+
connectedAt:
|
115
|
+
type: string
|
116
|
+
format: date-time
|
117
|
+
description: When the session was established
|
118
|
+
|
119
|
+
Commands:
|
120
|
+
oneOf:
|
121
|
+
- $ref: '#/components/schemas/CloseSessionCommand'
|
122
|
+
|
123
|
+
CloseSessionCommand:
|
124
|
+
type: object
|
125
|
+
required:
|
126
|
+
- type
|
127
|
+
- sessionId
|
128
|
+
properties:
|
129
|
+
type:
|
130
|
+
type: string
|
131
|
+
enum: ["close-session"]
|
132
|
+
sessionId:
|
133
|
+
type: string
|
134
|
+
description: Session ID to close
|
135
|
+
|
136
|
+
Events:
|
137
|
+
oneOf:
|
138
|
+
- $ref: '#/components/schemas/ConnectionEstablishedEvent'
|
139
|
+
- $ref: '#/components/schemas/ConnectionClosedEvent'
|
140
|
+
- $ref: '#/components/schemas/EndpointPublishedEvent'
|
141
|
+
|
142
|
+
ConnectionEstablishedEvent:
|
143
|
+
type: object
|
144
|
+
required:
|
145
|
+
- type
|
146
|
+
- sessionId
|
147
|
+
- sourceName
|
148
|
+
properties:
|
149
|
+
type:
|
150
|
+
type: string
|
151
|
+
enum: ["connection-established"]
|
152
|
+
sessionId:
|
153
|
+
type: string
|
154
|
+
description: Unique session identifier
|
155
|
+
sourceName:
|
156
|
+
type: string
|
157
|
+
description: Source name for the connection
|
158
|
+
programNumber:
|
159
|
+
type: number
|
160
|
+
description: Program number for the connection
|
161
|
+
|
162
|
+
ConnectionClosedEvent:
|
163
|
+
type: object
|
164
|
+
required:
|
165
|
+
- type
|
166
|
+
- sessionId
|
167
|
+
properties:
|
168
|
+
type:
|
169
|
+
type: string
|
170
|
+
enum: ["connection-closed"]
|
171
|
+
sessionId:
|
172
|
+
type: string
|
173
|
+
description: Session identifier that was closed
|
174
|
+
|
175
|
+
EndpointPublishedEvent:
|
176
|
+
type: object
|
177
|
+
required:
|
178
|
+
- type
|
179
|
+
- endpointUrl
|
180
|
+
- clientUrl
|
181
|
+
properties:
|
182
|
+
type:
|
183
|
+
type: string
|
184
|
+
enum: ["endpoint-published"]
|
185
|
+
endpointUrl:
|
186
|
+
type: string
|
187
|
+
description: WHIP endpoint URL
|
188
|
+
clientUrl:
|
189
|
+
type: string
|
190
|
+
description: Local test client URL
|