@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.
Files changed (135) hide show
  1. package/client/info.js +665 -284
  2. package/client/style.css +46 -0
  3. package/lib/info.js +3 -1
  4. package/lib/info.js.map +1 -1
  5. package/lib/input.rtmp/info.d.ts +20 -1
  6. package/lib/input.rtmp/runtime.d.ts +20 -1
  7. package/lib/input.rtmp/types.d.ts +47 -27
  8. package/lib/input.rtmp/types.source.yaml +319 -0
  9. package/lib/input.rtmp/types.yaml +206 -131
  10. package/lib/input.silence/info.d.ts +4 -2
  11. package/lib/input.silence/types.d.ts +4 -7
  12. package/lib/input.silence/types.source.yaml +27 -0
  13. package/lib/input.silence/types.yaml +82 -4
  14. package/lib/input.srt-caller/info.d.ts +41 -4
  15. package/lib/input.srt-caller/types.d.ts +51 -43
  16. package/lib/input.srt-caller/types.source.yaml +70 -0
  17. package/lib/input.srt-caller/types.yaml +138 -24
  18. package/lib/input.srt-listener/info.d.ts +41 -4
  19. package/lib/input.srt-listener/runtime.d.ts +34 -3
  20. package/lib/input.srt-listener/types.d.ts +74 -44
  21. package/lib/input.srt-listener/types.source.yaml +329 -0
  22. package/lib/input.srt-listener/types.yaml +259 -132
  23. package/lib/input.udp-ts/info.d.ts +20 -1
  24. package/lib/input.udp-ts/types.d.ts +20 -25
  25. package/lib/input.udp-ts/types.source.yaml +40 -0
  26. package/lib/input.udp-ts/types.yaml +81 -3
  27. package/lib/input.videoTestCard/info.d.ts +8 -2
  28. package/lib/input.videoTestCard/types.d.ts +8 -10
  29. package/lib/input.videoTestCard/types.source.yaml +32 -0
  30. package/lib/input.videoTestCard/types.yaml +30 -6
  31. package/lib/input.whip/info.d.ts +7 -1
  32. package/lib/input.whip/types.d.ts +44 -28
  33. package/lib/input.whip/types.source.yaml +190 -0
  34. package/lib/input.whip/types.yaml +179 -104
  35. package/lib/output.autoCmaf/fullscreen.js +46 -1
  36. package/lib/output.autoCmaf/fullscreen.js.map +1 -1
  37. package/lib/output.autoCmaf/info.js +20 -0
  38. package/lib/output.autoCmaf/info.js.map +1 -1
  39. package/lib/output.autoCmaf/inline-view.d.ts +3 -2
  40. package/lib/output.autoCmaf/inline-view.js +72 -2
  41. package/lib/output.autoCmaf/inline-view.js.map +1 -1
  42. package/lib/output.autoCmaf/runtime.d.ts +2 -1
  43. package/lib/output.autoCmaf/runtime.js +41 -11
  44. package/lib/output.autoCmaf/runtime.js.map +1 -1
  45. package/lib/output.autoCmaf/types.d.ts +2 -0
  46. package/lib/output.autoCmaf/types.yaml +6 -0
  47. package/lib/output.cmafMultiVariant/runtime.js +2 -2
  48. package/lib/output.cmafMultiVariant/runtime.js.map +1 -1
  49. package/lib/output.cmafPlaylist/info.js +19 -0
  50. package/lib/output.cmafPlaylist/info.js.map +1 -1
  51. package/lib/output.cmafPlaylist/runtime.js +6 -3
  52. package/lib/output.cmafPlaylist/runtime.js.map +1 -1
  53. package/lib/output.cmafPlaylist/types.d.ts +1 -0
  54. package/lib/output.cmafPlaylist/types.yaml +3 -0
  55. package/lib/output.preview/inline-view.js +1 -1
  56. package/lib/output.preview/inline-view.js.map +1 -1
  57. package/lib/output.preview/runtime.js +2 -2
  58. package/lib/output.preview/runtime.js.map +1 -1
  59. package/lib/output.statistics/info.d.ts +172 -2
  60. package/lib/output.statistics/types.d.ts +400 -72
  61. package/lib/output.statistics/types.source.yaml +119 -0
  62. package/lib/output.statistics/types.yaml +333 -91
  63. package/lib/output.tsMediaPlaylist/runtime.js +2 -2
  64. package/lib/output.tsMediaPlaylist/runtime.js.map +1 -1
  65. package/lib/output.tsMultiVariant/runtime.js +1 -1
  66. package/lib/output.tsMultiVariant/runtime.js.map +1 -1
  67. package/lib/output.whep/runtime.js +3 -1
  68. package/lib/output.whep/runtime.js.map +1 -1
  69. package/lib/processor.audioEncoder/info.d.ts +10 -2
  70. package/lib/processor.audioEncoder/types.d.ts +23 -12
  71. package/lib/processor.audioEncoder/types.source.yaml +78 -0
  72. package/lib/processor.audioEncoder/types.yaml +103 -29
  73. package/lib/processor.browserOverlay/info.js +5 -3
  74. package/lib/processor.browserOverlay/info.js.map +1 -1
  75. package/lib/processor.browserOverlay/runtime.d.ts +2 -1
  76. package/lib/processor.browserOverlay/runtime.js +16 -2
  77. package/lib/processor.browserOverlay/runtime.js.map +1 -1
  78. package/lib/processor.fixedLadder/info.d.ts +182 -7
  79. package/lib/processor.fixedLadder/types.d.ts +619 -19
  80. package/lib/processor.fixedLadder/types.source.yaml +462 -0
  81. package/lib/processor.fixedLadder/types.yaml +336 -115
  82. package/lib/processor.makeProgram/info.d.ts +1 -0
  83. package/lib/processor.makeProgram/info.js +9 -0
  84. package/lib/processor.makeProgram/info.js.map +1 -1
  85. package/lib/processor.makeProgram/runtime.d.ts +2 -1
  86. package/lib/processor.makeProgram/runtime.js +14 -1
  87. package/lib/processor.makeProgram/runtime.js.map +1 -1
  88. package/lib/processor.makeProgram/types.d.ts +1 -0
  89. package/lib/processor.makeProgram/types.yaml +3 -1
  90. package/lib/processor.smartSingleMediaSwitch/info.d.ts +12 -4
  91. package/lib/processor.smartSingleMediaSwitch/types.d.ts +22 -18
  92. package/lib/processor.smartSingleMediaSwitch/types.source.yaml +115 -0
  93. package/lib/processor.smartSingleMediaSwitch/types.yaml +147 -50
  94. package/lib/processor.smartSourceSwitch/form-views.d.ts +6 -0
  95. package/lib/processor.smartSourceSwitch/form-views.js +11 -0
  96. package/lib/processor.smartSourceSwitch/form-views.js.map +1 -0
  97. package/lib/processor.smartSourceSwitch/info.d.ts +18 -4
  98. package/lib/processor.smartSourceSwitch/info.js +30 -0
  99. package/lib/processor.smartSourceSwitch/info.js.map +1 -1
  100. package/lib/processor.smartSourceSwitch/inline-view.js +9 -8
  101. package/lib/processor.smartSourceSwitch/inline-view.js.map +1 -1
  102. package/lib/processor.smartSourceSwitch/runtime.d.ts +4 -1
  103. package/lib/processor.smartSourceSwitch/runtime.js +56 -27
  104. package/lib/processor.smartSourceSwitch/runtime.js.map +1 -1
  105. package/lib/processor.smartSourceSwitch/types.d.ts +41 -18
  106. package/lib/processor.smartSourceSwitch/types.source.yaml +129 -0
  107. package/lib/processor.smartSourceSwitch/types.yaml +177 -48
  108. package/lib/processor.syncExternalAudio/info.d.ts +1 -0
  109. package/lib/processor.syncExternalAudio/types.d.ts +1 -0
  110. package/lib/processor.videoDecoder/info.js +4 -2
  111. package/lib/processor.videoDecoder/info.js.map +1 -1
  112. package/lib/processor.zoomTo/info.d.ts +54 -0
  113. package/lib/processor.zoomTo/info.js +174 -0
  114. package/lib/processor.zoomTo/info.js.map +1 -0
  115. package/lib/processor.zoomTo/runtime-types.d.ts +11 -0
  116. package/lib/processor.zoomTo/runtime-types.js +3 -0
  117. package/lib/processor.zoomTo/runtime-types.js.map +1 -0
  118. package/lib/processor.zoomTo/runtime.d.ts +45 -0
  119. package/lib/processor.zoomTo/runtime.js +323 -0
  120. package/lib/processor.zoomTo/runtime.js.map +1 -0
  121. package/lib/processor.zoomTo/types.d.ts +182 -0
  122. package/lib/processor.zoomTo/types.js +3 -0
  123. package/lib/processor.zoomTo/types.js.map +1 -0
  124. package/lib/processor.zoomTo/types.yaml +356 -0
  125. package/lib/test/auto-cmaf.js +7 -4
  126. package/lib/test/auto-cmaf.js.map +1 -1
  127. package/lib/test/smart-source-switch.js +117 -2
  128. package/lib/test/smart-source-switch.js.map +1 -1
  129. package/lib/test/zoom-to.d.ts +1 -0
  130. package/lib/test/zoom-to.js +345 -0
  131. package/lib/test/zoom-to.js.map +1 -0
  132. package/package.json +5 -5
  133. package/lib/output.autoCmaf/summary.d.ts +0 -6
  134. package/lib/output.autoCmaf/summary.js +0 -57
  135. package/lib/output.autoCmaf/summary.js.map +0 -1
@@ -8,95 +8,423 @@ export interface components {
8
8
  notes?: string;
9
9
  };
10
10
  State: {
11
- previous?: components["schemas"]["MultiStreamStatistics"];
11
+ previous?: {
12
+ allStreams: ({
13
+ sampleSizeSeconds: number;
14
+ bitsForSample: number;
15
+ bitrate: number;
16
+ framesForSample: number;
17
+ framerate: number;
18
+ keyFramesForSample: number;
19
+ } & {
20
+ streamKey: {
21
+ streamId: number;
22
+ programNumber: number;
23
+ sourceName: string;
24
+ renditionName: string;
25
+ };
26
+ metadata: {
27
+ case: "audio";
28
+ value: {
29
+ codec: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
30
+ sampleRate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 64000 | 88200 | 96000;
31
+ channelLayout?: ("mono" | "stereo" | "surround" | "4.0" | "5.0" | "5.1" | "7.1" | "5.1.4" | "7.1.4") | ("l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown")[] | {
32
+ single: "l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown";
33
+ };
34
+ bitrate: number;
35
+ language?: string;
36
+ };
37
+ } | {
38
+ case: "video";
39
+ value: {
40
+ codec: string;
41
+ width: number;
42
+ height: number;
43
+ bitrate: number;
44
+ frameRate?: {
45
+ frames: number;
46
+ seconds: number;
47
+ };
48
+ };
49
+ } | {
50
+ case: "subtitle";
51
+ value: {
52
+ format?: "transcribed" | "translated" | "webvtt" | "cta608" | "cta708" | "teletext" | "ttml";
53
+ language?: string;
54
+ };
55
+ } | {
56
+ case: "playlist";
57
+ value: Record<string, never>;
58
+ } | {
59
+ case: "ancillary";
60
+ value: {
61
+ type?: ("scte35" | "smpte2038") | {
62
+ metadata: "klv" | "id3" | "other";
63
+ };
64
+ };
65
+ } | {
66
+ case?: string | null;
67
+ value?: unknown;
68
+ };
69
+ })[];
70
+ sampleSizeSeconds: number;
71
+ label: string;
72
+ total: {
73
+ sampleSizeSeconds: number;
74
+ bitsForSample: number;
75
+ bitrate: number;
76
+ framesForSample: number;
77
+ framerate: number;
78
+ keyFramesForSample: number;
79
+ };
80
+ audio: {
81
+ sampleSizeSeconds: number;
82
+ bitsForSample: number;
83
+ bitrate: number;
84
+ framesForSample: number;
85
+ framerate: number;
86
+ keyFramesForSample: number;
87
+ };
88
+ video: {
89
+ sampleSizeSeconds: number;
90
+ bitsForSample: number;
91
+ bitrate: number;
92
+ framesForSample: number;
93
+ framerate: number;
94
+ keyFramesForSample: number;
95
+ };
96
+ };
12
97
  };
13
98
  Commands: Record<string, never>;
14
- Events: components["schemas"]["SummaryEvent"];
99
+ Events: {
100
+ type: "summary";
101
+ summary: {
102
+ allStreams: ({
103
+ sampleSizeSeconds: number;
104
+ bitsForSample: number;
105
+ bitrate: number;
106
+ framesForSample: number;
107
+ framerate: number;
108
+ keyFramesForSample: number;
109
+ } & {
110
+ streamKey: {
111
+ streamId: number;
112
+ programNumber: number;
113
+ sourceName: string;
114
+ renditionName: string;
115
+ };
116
+ metadata: {
117
+ case: "audio";
118
+ value: {
119
+ codec: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
120
+ sampleRate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 64000 | 88200 | 96000;
121
+ channelLayout?: ("mono" | "stereo" | "surround" | "4.0" | "5.0" | "5.1" | "7.1" | "5.1.4" | "7.1.4") | ("l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown")[] | {
122
+ single: "l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown";
123
+ };
124
+ bitrate: number;
125
+ language?: string;
126
+ };
127
+ } | {
128
+ case: "video";
129
+ value: {
130
+ codec: string;
131
+ width: number;
132
+ height: number;
133
+ bitrate: number;
134
+ frameRate?: {
135
+ frames: number;
136
+ seconds: number;
137
+ };
138
+ };
139
+ } | {
140
+ case: "subtitle";
141
+ value: {
142
+ format?: "transcribed" | "translated" | "webvtt" | "cta608" | "cta708" | "teletext" | "ttml";
143
+ language?: string;
144
+ };
145
+ } | {
146
+ case: "playlist";
147
+ value: Record<string, never>;
148
+ } | {
149
+ case: "ancillary";
150
+ value: {
151
+ type?: ("scte35" | "smpte2038") | {
152
+ metadata: "klv" | "id3" | "other";
153
+ };
154
+ };
155
+ } | {
156
+ case?: string | null;
157
+ value?: unknown;
158
+ };
159
+ })[];
160
+ sampleSizeSeconds: number;
161
+ label: string;
162
+ total: {
163
+ sampleSizeSeconds: number;
164
+ bitsForSample: number;
165
+ bitrate: number;
166
+ framesForSample: number;
167
+ framerate: number;
168
+ keyFramesForSample: number;
169
+ };
170
+ audio: {
171
+ sampleSizeSeconds: number;
172
+ bitsForSample: number;
173
+ bitrate: number;
174
+ framesForSample: number;
175
+ framerate: number;
176
+ keyFramesForSample: number;
177
+ };
178
+ video: {
179
+ sampleSizeSeconds: number;
180
+ bitsForSample: number;
181
+ bitrate: number;
182
+ framesForSample: number;
183
+ framerate: number;
184
+ keyFramesForSample: number;
185
+ };
186
+ };
187
+ };
15
188
  SummaryEvent: {
16
189
  type: "summary";
17
- summary: components["schemas"]["MultiStreamStatistics"];
190
+ summary: {
191
+ allStreams: ({
192
+ sampleSizeSeconds: number;
193
+ bitsForSample: number;
194
+ bitrate: number;
195
+ framesForSample: number;
196
+ framerate: number;
197
+ keyFramesForSample: number;
198
+ } & {
199
+ streamKey: {
200
+ streamId: number;
201
+ programNumber: number;
202
+ sourceName: string;
203
+ renditionName: string;
204
+ };
205
+ metadata: {
206
+ case: "audio";
207
+ value: {
208
+ codec: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
209
+ sampleRate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 64000 | 88200 | 96000;
210
+ channelLayout?: ("mono" | "stereo" | "surround" | "4.0" | "5.0" | "5.1" | "7.1" | "5.1.4" | "7.1.4") | ("l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown")[] | {
211
+ single: "l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown";
212
+ };
213
+ bitrate: number;
214
+ language?: string;
215
+ };
216
+ } | {
217
+ case: "video";
218
+ value: {
219
+ codec: string;
220
+ width: number;
221
+ height: number;
222
+ bitrate: number;
223
+ frameRate?: {
224
+ frames: number;
225
+ seconds: number;
226
+ };
227
+ };
228
+ } | {
229
+ case: "subtitle";
230
+ value: {
231
+ format?: "transcribed" | "translated" | "webvtt" | "cta608" | "cta708" | "teletext" | "ttml";
232
+ language?: string;
233
+ };
234
+ } | {
235
+ case: "playlist";
236
+ value: Record<string, never>;
237
+ } | {
238
+ case: "ancillary";
239
+ value: {
240
+ type?: ("scte35" | "smpte2038") | {
241
+ metadata: "klv" | "id3" | "other";
242
+ };
243
+ };
244
+ } | {
245
+ case?: string | null;
246
+ value?: unknown;
247
+ };
248
+ })[];
249
+ sampleSizeSeconds: number;
250
+ label: string;
251
+ total: {
252
+ sampleSizeSeconds: number;
253
+ bitsForSample: number;
254
+ bitrate: number;
255
+ framesForSample: number;
256
+ framerate: number;
257
+ keyFramesForSample: number;
258
+ };
259
+ audio: {
260
+ sampleSizeSeconds: number;
261
+ bitsForSample: number;
262
+ bitrate: number;
263
+ framesForSample: number;
264
+ framerate: number;
265
+ keyFramesForSample: number;
266
+ };
267
+ video: {
268
+ sampleSizeSeconds: number;
269
+ bitsForSample: number;
270
+ bitrate: number;
271
+ framesForSample: number;
272
+ framerate: number;
273
+ keyFramesForSample: number;
274
+ };
275
+ };
18
276
  };
19
277
  MultiStreamStatistics: {
20
- allStreams: components["schemas"]["SingleStreamStatistics"][];
278
+ allStreams: ({
279
+ sampleSizeSeconds: number;
280
+ bitsForSample: number;
281
+ bitrate: number;
282
+ framesForSample: number;
283
+ framerate: number;
284
+ keyFramesForSample: number;
285
+ } & {
286
+ streamKey: {
287
+ streamId: number;
288
+ programNumber: number;
289
+ sourceName: string;
290
+ renditionName: string;
291
+ };
292
+ metadata: {
293
+ case: "audio";
294
+ value: {
295
+ codec: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
296
+ sampleRate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 64000 | 88200 | 96000;
297
+ channelLayout?: ("mono" | "stereo" | "surround" | "4.0" | "5.0" | "5.1" | "7.1" | "5.1.4" | "7.1.4") | ("l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown")[] | {
298
+ single: "l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown";
299
+ };
300
+ bitrate: number;
301
+ language?: string;
302
+ };
303
+ } | {
304
+ case: "video";
305
+ value: {
306
+ codec: string;
307
+ width: number;
308
+ height: number;
309
+ bitrate: number;
310
+ frameRate?: {
311
+ frames: number;
312
+ seconds: number;
313
+ };
314
+ };
315
+ } | {
316
+ case: "subtitle";
317
+ value: {
318
+ format?: "transcribed" | "translated" | "webvtt" | "cta608" | "cta708" | "teletext" | "ttml";
319
+ language?: string;
320
+ };
321
+ } | {
322
+ case: "playlist";
323
+ value: Record<string, never>;
324
+ } | {
325
+ case: "ancillary";
326
+ value: {
327
+ type?: ("scte35" | "smpte2038") | {
328
+ metadata: "klv" | "id3" | "other";
329
+ };
330
+ };
331
+ } | {
332
+ case?: string | null;
333
+ value?: unknown;
334
+ };
335
+ })[];
21
336
  sampleSizeSeconds: number;
22
337
  label: string;
23
- total: components["schemas"]["StreamStatistics"];
24
- audio: components["schemas"]["StreamStatistics"];
25
- video: components["schemas"]["StreamStatistics"];
26
- };
27
- SingleStreamStatistics: components["schemas"]["StreamStatistics"] & {
28
- streamKey: components["schemas"]["StreamKey"];
29
- metadata: components["schemas"]["StreamMetadataMessage"];
338
+ total: {
339
+ sampleSizeSeconds: number;
340
+ bitsForSample: number;
341
+ bitrate: number;
342
+ framesForSample: number;
343
+ framerate: number;
344
+ keyFramesForSample: number;
345
+ };
346
+ audio: {
347
+ sampleSizeSeconds: number;
348
+ bitsForSample: number;
349
+ bitrate: number;
350
+ framesForSample: number;
351
+ framerate: number;
352
+ keyFramesForSample: number;
353
+ };
354
+ video: {
355
+ sampleSizeSeconds: number;
356
+ bitsForSample: number;
357
+ bitrate: number;
358
+ framesForSample: number;
359
+ framerate: number;
360
+ keyFramesForSample: number;
361
+ };
30
362
  };
31
- StreamStatistics: {
363
+ SingleStreamStatistics: {
32
364
  sampleSizeSeconds: number;
33
365
  bitsForSample: number;
34
366
  bitrate: number;
35
367
  framesForSample: number;
36
368
  framerate: number;
37
369
  keyFramesForSample: number;
370
+ } & {
371
+ streamKey: {
372
+ streamId: number;
373
+ programNumber: number;
374
+ sourceName: string;
375
+ renditionName: string;
376
+ };
377
+ metadata: {
378
+ case: "audio";
379
+ value: {
380
+ codec: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
381
+ sampleRate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 64000 | 88200 | 96000;
382
+ channelLayout?: ("mono" | "stereo" | "surround" | "4.0" | "5.0" | "5.1" | "7.1" | "5.1.4" | "7.1.4") | ("l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown")[] | {
383
+ single: "l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown";
384
+ };
385
+ bitrate: number;
386
+ language?: string;
387
+ };
388
+ } | {
389
+ case: "video";
390
+ value: {
391
+ codec: string;
392
+ width: number;
393
+ height: number;
394
+ bitrate: number;
395
+ frameRate?: {
396
+ frames: number;
397
+ seconds: number;
398
+ };
399
+ };
400
+ } | {
401
+ case: "subtitle";
402
+ value: {
403
+ format?: "transcribed" | "translated" | "webvtt" | "cta608" | "cta708" | "teletext" | "ttml";
404
+ language?: string;
405
+ };
406
+ } | {
407
+ case: "playlist";
408
+ value: Record<string, never>;
409
+ } | {
410
+ case: "ancillary";
411
+ value: {
412
+ type?: ("scte35" | "smpte2038") | {
413
+ metadata: "klv" | "id3" | "other";
414
+ };
415
+ };
416
+ } | {
417
+ case?: string | null;
418
+ value?: unknown;
419
+ };
38
420
  };
39
- StreamKey: {
40
- streamId: number;
41
- programNumber: number;
42
- sourceName: string;
43
- renditionName: string;
44
- };
45
- AudioCodec: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
46
- SampleRate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 64000 | 88200 | 96000;
47
- ChannelName: "l" | "r" | "c" | "lfe" | "ls" | "rs" | "lc" | "rc" | "lsr" | "rsr" | "cs" | "lsd" | "rsd" | "lss" | "rss" | "lw" | "rw" | "lv" | "rv" | "cv" | "lvr" | "rvr" | "cvr" | "lvss" | "rvss" | "ts" | "lfe2" | "lb" | "rb" | "cb" | "lvs" | "rvs" | "lfe3" | "leos" | "reos" | "hwbcal" | "hwbcar" | "lbs" | "rbs" | "unknown";
48
- ChannelLayout: ("mono" | "stereo" | "surround" | "4.0" | "5.0" | "5.1" | "7.1" | "5.1.4" | "7.1.4") | components["schemas"]["ChannelName"][] | {
49
- single: components["schemas"]["ChannelName"];
50
- };
51
- AudioStreamMetadata: {
52
- codec: components["schemas"]["AudioCodec"];
53
- sampleRate: components["schemas"]["SampleRate"];
54
- channelLayout?: components["schemas"]["ChannelLayout"];
55
- bitrate: number;
56
- language?: string;
57
- };
58
- FrameRate: {
59
- frames: number;
60
- seconds: number;
61
- };
62
- VideoStreamMetadata: {
63
- codec: string;
64
- width: number;
65
- height: number;
421
+ StreamStatistics: {
422
+ sampleSizeSeconds: number;
423
+ bitsForSample: number;
66
424
  bitrate: number;
67
- frameRate?: components["schemas"]["FrameRate"];
68
- };
69
- SubtitleFormat: "transcribed" | "translated" | "webvtt" | "cta608" | "cta708" | "teletext" | "ttml";
70
- SubtitleStreamMetadata: {
71
- format?: components["schemas"]["SubtitleFormat"];
72
- language?: string;
73
- };
74
- PlaylistStreamMetadata: Record<string, never>;
75
- MetadataType: "klv" | "id3" | "other";
76
- AncillaryType: ("scte35" | "smpte2038") | {
77
- metadata: components["schemas"]["MetadataType"];
78
- };
79
- AncillaryStreamMetadata: {
80
- type?: components["schemas"]["AncillaryType"];
81
- };
82
- StreamMetadataMessage: {
83
- case: "audio";
84
- value: components["schemas"]["AudioStreamMetadata"];
85
- } | {
86
- case: "video";
87
- value: components["schemas"]["VideoStreamMetadata"];
88
- } | {
89
- case: "subtitle";
90
- value: components["schemas"]["SubtitleStreamMetadata"];
91
- } | {
92
- case: "playlist";
93
- value: components["schemas"]["PlaylistStreamMetadata"];
94
- } | {
95
- case: "ancillary";
96
- value: components["schemas"]["AncillaryStreamMetadata"];
97
- } | {
98
- case?: string | null;
99
- value?: unknown;
425
+ framesForSample: number;
426
+ framerate: number;
427
+ keyFramesForSample: number;
100
428
  };
101
429
  };
102
430
  responses: never;
@@ -0,0 +1,119 @@
1
+ openapi: 3.0.0
2
+ info:
3
+ title: Statistics Output
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
+ properties:
16
+ id:
17
+ type: string
18
+ displayName:
19
+ type: string
20
+ notes:
21
+ type: string
22
+
23
+ State:
24
+ type: object
25
+ properties:
26
+ previous:
27
+ $ref: '#/components/schemas/MultiStreamStatistics'
28
+
29
+ Commands:
30
+ type: object
31
+ additionalProperties: false
32
+
33
+ Events:
34
+ oneOf:
35
+ - $ref: '#/components/schemas/SummaryEvent'
36
+
37
+ SummaryEvent:
38
+ type: object
39
+ required:
40
+ - type
41
+ - summary
42
+ properties:
43
+ type:
44
+ type: string
45
+ enum: ['summary']
46
+ summary:
47
+ $ref: '#/components/schemas/MultiStreamStatistics'
48
+
49
+ MultiStreamStatistics:
50
+ type: object
51
+ description: Statistics for multiple streams
52
+ properties:
53
+ allStreams:
54
+ type: array
55
+ items:
56
+ $ref: '#/components/schemas/SingleStreamStatistics'
57
+ description: Statistics for each individual stream
58
+ sampleSizeSeconds:
59
+ type: number
60
+ description: The size of the sample window in seconds
61
+ label:
62
+ type: string
63
+ description: Either "default", if there is only one direction, or "input"/"output" for duplex nodes
64
+ total:
65
+ $ref: '#/components/schemas/StreamStatistics'
66
+ audio:
67
+ $ref: '#/components/schemas/StreamStatistics'
68
+ video:
69
+ $ref: '#/components/schemas/StreamStatistics'
70
+ required:
71
+ - allStreams
72
+ - sampleSizeSeconds
73
+ - label
74
+ - total
75
+ - audio
76
+ - video
77
+
78
+ SingleStreamStatistics:
79
+ allOf:
80
+ - $ref: '#/components/schemas/StreamStatistics'
81
+ - type: object
82
+ properties:
83
+ streamKey:
84
+ $ref: '../../../core/src/types/base.yml#/components/schemas/StreamKey'
85
+ metadata:
86
+ $ref: '../../../core/src/types/base.yml#/components/schemas/StreamMetadataMessage'
87
+ required:
88
+ - streamKey
89
+ - metadata
90
+
91
+ StreamStatistics:
92
+ type: object
93
+ description: Statistical data for a stream
94
+ properties:
95
+ sampleSizeSeconds:
96
+ type: number
97
+ description: The size of the sample window in seconds
98
+ bitsForSample:
99
+ type: number
100
+ description: The number of bits over the sample window
101
+ bitrate:
102
+ type: number
103
+ description: The bitrate, in bits per second
104
+ framesForSample:
105
+ type: number
106
+ description: The number of frames over the sample window
107
+ framerate:
108
+ type: number
109
+ description: The frame rate, in frames per second
110
+ keyFramesForSample:
111
+ type: number
112
+ description: The number of key frames over the sample window
113
+ required:
114
+ - sampleSizeSeconds
115
+ - bitsForSample
116
+ - bitrate
117
+ - framesForSample
118
+ - framerate
119
+ - keyFramesForSample