@norskvideo/norsk-studio-built-ins 1.19.0 → 1.26.0-2025-02-19-e81e84b9

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 (247) hide show
  1. package/client/info.js +5983 -699
  2. package/client/output.preview/styles.css +69 -69
  3. package/client/output.whep/styles.css +9 -0
  4. package/client/style.css +283 -856
  5. package/lib/info.js +14 -14
  6. package/lib/info.js.map +1 -1
  7. package/lib/input.rtmp/info.js +19 -5
  8. package/lib/input.rtmp/info.js.map +1 -1
  9. package/lib/input.rtmp/inline-view.js +3 -3
  10. package/lib/input.rtmp/runtime.d.ts +46 -7
  11. package/lib/input.rtmp/runtime.js +245 -59
  12. package/lib/input.rtmp/runtime.js.map +1 -1
  13. package/lib/input.rtmp/summary-view.d.ts +3 -5
  14. package/lib/input.rtmp/summary-view.js +51 -6
  15. package/lib/input.rtmp/summary-view.js.map +1 -1
  16. package/lib/input.rtmp/types.d.ts +193 -0
  17. package/lib/{processor.browserOverlay/openApi.js → input.rtmp/types.js} +1 -1
  18. package/lib/input.rtmp/types.js.map +1 -0
  19. package/lib/input.rtmp/types.yaml +147 -0
  20. package/lib/input.silence/info.js +9 -2
  21. package/lib/input.silence/info.js.map +1 -1
  22. package/lib/input.silence/runtime.d.ts +1 -0
  23. package/lib/input.silence/runtime.js.map +1 -1
  24. package/lib/input.srt-caller/info.js +8 -1
  25. package/lib/input.srt-caller/info.js.map +1 -1
  26. package/lib/input.srt-caller/runtime.d.ts +1 -0
  27. package/lib/input.srt-caller/runtime.js.map +1 -1
  28. package/lib/input.srt-listener/info.js +15 -2
  29. package/lib/input.srt-listener/info.js.map +1 -1
  30. package/lib/input.srt-listener/runtime.d.ts +41 -5
  31. package/lib/input.srt-listener/runtime.js +236 -57
  32. package/lib/input.srt-listener/runtime.js.map +1 -1
  33. package/lib/input.srt-listener/summary-view.d.ts +3 -5
  34. package/lib/input.srt-listener/summary-view.js +45 -6
  35. package/lib/input.srt-listener/summary-view.js.map +1 -1
  36. package/lib/input.srt-listener/types.d.ts +193 -0
  37. package/lib/input.srt-listener/types.js +3 -0
  38. package/lib/input.srt-listener/types.js.map +1 -0
  39. package/lib/input.srt-listener/types.yaml +145 -0
  40. package/lib/input.udp-ts/info.js +2 -1
  41. package/lib/input.udp-ts/info.js.map +1 -1
  42. package/lib/input.udp-ts/runtime.d.ts +1 -0
  43. package/lib/input.udp-ts/runtime.js.map +1 -1
  44. package/lib/input.videoTestCard/info.d.ts +1 -1
  45. package/lib/input.videoTestCard/info.js +17 -4
  46. package/lib/input.videoTestCard/info.js.map +1 -1
  47. package/lib/input.videoTestCard/runtime.d.ts +1 -0
  48. package/lib/output.autoCmaf/form-views.d.ts +2 -2
  49. package/lib/output.autoCmaf/form-views.js +13 -3
  50. package/lib/output.autoCmaf/form-views.js.map +1 -1
  51. package/lib/output.autoCmaf/info.d.ts +21 -2
  52. package/lib/output.autoCmaf/info.js +106 -32
  53. package/lib/output.autoCmaf/info.js.map +1 -1
  54. package/lib/output.autoCmaf/inline-view.d.ts +6 -0
  55. package/lib/output.autoCmaf/inline-view.js +8 -0
  56. package/lib/output.autoCmaf/inline-view.js.map +1 -0
  57. package/lib/output.autoCmaf/runtime.d.ts +29 -43
  58. package/lib/output.autoCmaf/runtime.js +314 -96
  59. package/lib/output.autoCmaf/runtime.js.map +1 -1
  60. package/lib/output.autoCmaf/summary-view.d.ts +4 -0
  61. package/lib/output.autoCmaf/summary-view.js +24 -0
  62. package/lib/output.autoCmaf/summary-view.js.map +1 -0
  63. package/lib/output.autoCmaf/summary.js +3 -0
  64. package/lib/output.autoCmaf/summary.js.map +1 -1
  65. package/lib/output.autoCmaf/types.d.ts +158 -0
  66. package/lib/output.autoCmaf/types.js +3 -0
  67. package/lib/output.autoCmaf/types.js.map +1 -0
  68. package/lib/output.autoCmaf/types.yaml +182 -0
  69. package/lib/output.autoHls/info.d.ts +3 -0
  70. package/lib/output.autoHls/info.js +22 -0
  71. package/lib/output.autoHls/info.js.map +1 -0
  72. package/lib/output.autoHls/runtime.d.ts +6 -0
  73. package/lib/output.autoHls/runtime.js +13 -0
  74. package/lib/output.autoHls/runtime.js.map +1 -0
  75. package/lib/output.preview/info.d.ts +5 -2
  76. package/lib/output.preview/info.js +23 -3
  77. package/lib/output.preview/info.js.map +1 -1
  78. package/lib/output.preview/inline-view.d.ts +2 -4
  79. package/lib/output.preview/inline-view.js +65 -7
  80. package/lib/output.preview/inline-view.js.map +1 -1
  81. package/lib/output.preview/runtime.d.ts +18 -12
  82. package/lib/output.preview/runtime.js +122 -33
  83. package/lib/output.preview/runtime.js.map +1 -1
  84. package/lib/output.preview/types.d.ts +56 -0
  85. package/lib/output.preview/types.js +3 -0
  86. package/lib/output.preview/types.js.map +1 -0
  87. package/lib/output.preview/types.yaml +37 -0
  88. package/lib/output.rtmp/info.js +14 -2
  89. package/lib/output.rtmp/info.js.map +1 -1
  90. package/lib/output.rtmp/inline-view.js +5 -2
  91. package/lib/output.rtmp/inline-view.js.map +1 -1
  92. package/lib/output.rtmp/runtime.d.ts +31 -5
  93. package/lib/output.rtmp/runtime.js +169 -34
  94. package/lib/output.rtmp/runtime.js.map +1 -1
  95. package/lib/output.rtmp/summary-view.d.ts +4 -0
  96. package/lib/output.rtmp/summary-view.js +24 -0
  97. package/lib/output.rtmp/summary-view.js.map +1 -0
  98. package/lib/output.rtmp/types.d.ts +101 -0
  99. package/lib/output.rtmp/types.js +3 -0
  100. package/lib/output.rtmp/types.js.map +1 -0
  101. package/lib/output.rtmp/types.yaml +30 -0
  102. package/lib/output.srt/info.d.ts +2 -2
  103. package/lib/output.srt/info.js +29 -1
  104. package/lib/output.srt/info.js.map +1 -1
  105. package/lib/output.srt/inline-view.d.ts +6 -0
  106. package/lib/output.srt/inline-view.js +8 -0
  107. package/lib/output.srt/inline-view.js.map +1 -0
  108. package/lib/output.srt/runtime.d.ts +35 -5
  109. package/lib/output.srt/runtime.js +174 -6
  110. package/lib/output.srt/runtime.js.map +1 -1
  111. package/lib/output.srt/summary-view.d.ts +4 -0
  112. package/lib/output.srt/summary-view.js +24 -0
  113. package/lib/output.srt/summary-view.js.map +1 -0
  114. package/lib/output.srt/types.d.ts +101 -0
  115. package/lib/output.srt/types.js +3 -0
  116. package/lib/output.srt/types.js.map +1 -0
  117. package/lib/output.srt/types.yaml +31 -0
  118. package/lib/output.statistics/info.js +3 -1
  119. package/lib/output.statistics/info.js.map +1 -1
  120. package/lib/output.statistics/inline-view.js +3 -2
  121. package/lib/output.statistics/inline-view.js.map +1 -1
  122. package/lib/output.statistics/runtime.d.ts +1 -0
  123. package/lib/output.statistics/runtime.js.map +1 -1
  124. package/lib/output.udpTs/info.js +4 -0
  125. package/lib/output.udpTs/info.js.map +1 -1
  126. package/lib/output.udpTs/runtime.d.ts +1 -0
  127. package/lib/output.udpTs/runtime.js.map +1 -1
  128. package/lib/output.whep/info.d.ts +2 -2
  129. package/lib/output.whep/info.js +61 -1
  130. package/lib/output.whep/info.js.map +1 -1
  131. package/lib/output.whep/inline-view.d.ts +4 -0
  132. package/lib/output.whep/inline-view.js +57 -0
  133. package/lib/output.whep/inline-view.js.map +1 -0
  134. package/lib/output.whep/runtime.d.ts +39 -5
  135. package/lib/output.whep/runtime.js +175 -13
  136. package/lib/output.whep/runtime.js.map +1 -1
  137. package/lib/output.whep/summary-view.d.ts +4 -0
  138. package/lib/output.whep/summary-view.js +24 -0
  139. package/lib/output.whep/summary-view.js.map +1 -0
  140. package/lib/output.whep/types.d.ts +101 -0
  141. package/lib/output.whep/types.js +3 -0
  142. package/lib/output.whep/types.js.map +1 -0
  143. package/lib/output.whep/types.yaml +30 -0
  144. package/lib/processor.audioEncoder/form-views.d.ts +8 -0
  145. package/lib/processor.audioEncoder/form-views.js +8 -0
  146. package/lib/processor.audioEncoder/form-views.js.map +1 -0
  147. package/lib/processor.audioEncoder/info.d.ts +3 -0
  148. package/lib/processor.audioEncoder/info.js +160 -0
  149. package/lib/processor.audioEncoder/info.js.map +1 -0
  150. package/lib/processor.audioEncoder/runtime.d.ts +21 -0
  151. package/lib/processor.audioEncoder/runtime.js +20 -0
  152. package/lib/processor.audioEncoder/runtime.js.map +1 -0
  153. package/lib/processor.browserOverlay/info.js +1 -0
  154. package/lib/processor.browserOverlay/info.js.map +1 -1
  155. package/lib/processor.browserOverlay/runtime.d.ts +1 -0
  156. package/lib/processor.browserOverlay/runtime.js +6 -26
  157. package/lib/processor.browserOverlay/runtime.js.map +1 -1
  158. package/lib/processor.browserOverlay/types.js +3 -0
  159. package/lib/processor.browserOverlay/types.js.map +1 -0
  160. package/lib/processor.cascadingSwitch/info.js +3 -2
  161. package/lib/processor.cascadingSwitch/info.js.map +1 -1
  162. package/lib/processor.cascadingSwitch/inline-view.js +3 -3
  163. package/lib/processor.cascadingSwitch/runtime.d.ts +1 -0
  164. package/lib/processor.cascadingSwitch/runtime.js +2 -2
  165. package/lib/processor.cascadingSwitch/runtime.js.map +1 -1
  166. package/lib/processor.fixedLadder/codec-editor.js +1 -1
  167. package/lib/processor.fixedLadder/codec-editor.js.map +1 -1
  168. package/lib/processor.fixedLadder/codec-view.d.ts +1 -1
  169. package/lib/processor.fixedLadder/codec-view.js +1 -1
  170. package/lib/processor.fixedLadder/codec-view.js.map +1 -1
  171. package/lib/processor.fixedLadder/info.d.ts +33 -7
  172. package/lib/processor.fixedLadder/info.js +19 -6
  173. package/lib/processor.fixedLadder/info.js.map +1 -1
  174. package/lib/processor.fixedLadder/runtime.d.ts +16 -29
  175. package/lib/processor.fixedLadder/runtime.js +16 -1
  176. package/lib/processor.fixedLadder/runtime.js.map +1 -1
  177. package/lib/processor.fixedLadder/types.d.ts +240 -0
  178. package/lib/processor.fixedLadder/types.js +3 -0
  179. package/lib/processor.fixedLadder/types.js.map +1 -0
  180. package/lib/processor.fixedLadder/types.yaml +541 -0
  181. package/lib/processor.onscreenGraphic/info.js +11 -5
  182. package/lib/processor.onscreenGraphic/info.js.map +1 -1
  183. package/lib/processor.onscreenGraphic/runtime.d.ts +27 -2
  184. package/lib/processor.onscreenGraphic/runtime.js +116 -52
  185. package/lib/processor.onscreenGraphic/runtime.js.map +1 -1
  186. package/lib/processor.onscreenGraphic/summary-view.d.ts +1 -1
  187. package/lib/processor.onscreenGraphic/summary-view.js +235 -11
  188. package/lib/processor.onscreenGraphic/summary-view.js.map +1 -1
  189. package/lib/processor.onscreenGraphic/types.d.ts +15 -1
  190. package/lib/processor.onscreenGraphic/types.yaml +63 -14
  191. package/lib/processor.streamKeyOverride/info.d.ts +3 -0
  192. package/lib/processor.streamKeyOverride/info.js +151 -0
  193. package/lib/processor.streamKeyOverride/info.js.map +1 -0
  194. package/lib/processor.streamKeyOverride/runtime.d.ts +55 -0
  195. package/lib/processor.streamKeyOverride/runtime.js +226 -0
  196. package/lib/processor.streamKeyOverride/runtime.js.map +1 -0
  197. package/lib/shared/api.d.ts +35 -0
  198. package/lib/shared/api.js +34 -0
  199. package/lib/shared/api.js.map +1 -0
  200. package/lib/test/auto-cmaf.js +219 -43
  201. package/lib/test/auto-cmaf.js.map +1 -1
  202. package/lib/test/onscreen-graphic.js +79 -42
  203. package/lib/test/onscreen-graphic.js.map +1 -1
  204. package/lib/test/preview.js +69 -64
  205. package/lib/test/preview.js.map +1 -1
  206. package/lib/test/rtmp-input.js +6 -3
  207. package/lib/test/rtmp-input.js.map +1 -1
  208. package/lib/test/rtmp-output.js +105 -1
  209. package/lib/test/rtmp-output.js.map +1 -1
  210. package/lib/test/srt-input-listener.js +331 -0
  211. package/lib/test/srt-input-listener.js.map +1 -1
  212. package/lib/test/srt-output.js +93 -4
  213. package/lib/test/srt-output.js.map +1 -1
  214. package/lib/test/whep-output.js +192 -5
  215. package/lib/test/whep-output.js.map +1 -1
  216. package/lib/util.stats.latency/info.js +1 -0
  217. package/lib/util.stats.latency/info.js.map +1 -1
  218. package/lib/util.stats.latency/runtime.d.ts +1 -0
  219. package/lib/util.stats.latency/runtime.js +2 -2
  220. package/lib/util.stats.latency/runtime.js.map +1 -1
  221. package/package.json +4 -4
  222. package/lib/processor.browserOverlay/openApi.js.map +0 -1
  223. package/lib/processor.whisper-transcribe/info.d.ts +0 -3
  224. package/lib/processor.whisper-transcribe/info.js +0 -44
  225. package/lib/processor.whisper-transcribe/info.js.map +0 -1
  226. package/lib/processor.whisper-transcribe/runtime.d.ts +0 -29
  227. package/lib/processor.whisper-transcribe/runtime.js +0 -83
  228. package/lib/processor.whisper-transcribe/runtime.js.map +0 -1
  229. package/lib/util.stats.ma35d/info.d.ts +0 -3
  230. package/lib/util.stats.ma35d/info.js +0 -79
  231. package/lib/util.stats.ma35d/info.js.map +0 -1
  232. package/lib/util.stats.ma35d/inline-view.d.ts +0 -6
  233. package/lib/util.stats.ma35d/inline-view.js +0 -76
  234. package/lib/util.stats.ma35d/inline-view.js.map +0 -1
  235. package/lib/util.stats.ma35d/runtime.d.ts +0 -21
  236. package/lib/util.stats.ma35d/runtime.js +0 -49
  237. package/lib/util.stats.ma35d/runtime.js.map +0 -1
  238. package/lib/util.timestamps/info.d.ts +0 -5
  239. package/lib/util.timestamps/info.js +0 -87
  240. package/lib/util.timestamps/info.js.map +0 -1
  241. package/lib/util.timestamps/inline-view.d.ts +0 -6
  242. package/lib/util.timestamps/inline-view.js +0 -94
  243. package/lib/util.timestamps/inline-view.js.map +0 -1
  244. package/lib/util.timestamps/runtime.d.ts +0 -29
  245. package/lib/util.timestamps/runtime.js +0 -40
  246. package/lib/util.timestamps/runtime.js.map +0 -1
  247. /package/lib/processor.browserOverlay/{openApi.d.ts → types.d.ts} +0 -0
@@ -35,23 +35,25 @@ const execution_1 = __importDefault(require("@norskvideo/norsk-studio/lib/runtim
35
35
  const chai_1 = require("chai");
36
36
  const sources_1 = require("@norskvideo/norsk-studio/lib/test/_util/sources");
37
37
  const HLS = __importStar(require("hls-parser"));
38
- const node_fetch_1 = __importDefault(require("node-fetch"));
39
38
  const info_1 = __importDefault(require("../output.autoCmaf/info"));
39
+ const info_2 = __importDefault(require("../output.autoHls/info"));
40
40
  const client_types_1 = require("@norskvideo/norsk-studio/lib/extension/client-types");
41
41
  const runtime_types_1 = require("@norskvideo/norsk-studio/lib/extension/runtime-types");
42
42
  const runtime_1 = require("@norskvideo/norsk-studio/lib/test/_util/runtime");
43
43
  const util_1 = require("@norskvideo/norsk-studio/lib/shared/util");
44
44
  const sinks_1 = require("@norskvideo/norsk-studio/lib/test/_util/sinks");
45
+ const node_fetch_1 = __importDefault(require("node-fetch"));
46
+ const express_1 = __importDefault(require("express"));
45
47
  async function defaultRuntime() {
46
48
  const runtime = await (0, runtime_1.testRuntime)();
47
49
  await (0, __1.registerAll)(runtime);
48
50
  return runtime;
49
51
  }
50
52
  describe("Auto CMAF Output", () => {
51
- async function sharedSetup(norsk, sources) {
53
+ async function sharedSetup(norsk, sources, mode, cfg) {
52
54
  const runtime = await defaultRuntime();
53
55
  const yaml = new builder_1.YamlBuilder()
54
- .addNode(new builder_1.YamlNodeBuilder('cmaf', (0, info_1.default)(client_types_1.RegistrationConsts), {
56
+ .addNode(new builder_1.YamlNodeBuilder("cmaf", (mode == 'cmaf' ? (0, info_1.default)(client_types_1.RegistrationConsts) : (0, info_2.default)(client_types_1.RegistrationConsts)), {
55
57
  name: 'default',
56
58
  sessionId: false,
57
59
  segments: {
@@ -59,7 +61,10 @@ describe("Auto CMAF Output", () => {
59
61
  targetPartDuration: 0.5,
60
62
  targetSegmentDuration: 2,
61
63
  },
62
- s3Destinations: [],
64
+ destinations: [],
65
+ multiplePrograms: true,
66
+ initialState: 'enabled',
67
+ ...cfg
63
68
  }).reify())
64
69
  .reify();
65
70
  const compiled = document.load(__filename, runtime, yaml_1.default.stringify(yaml));
@@ -85,30 +90,42 @@ describe("Auto CMAF Output", () => {
85
90
  return { doSubscribe, setSources, ...result };
86
91
  }
87
92
  async function awaitCompleteManifest(url, expectedStreams) {
88
- return new Promise((r) => {
89
- const i = setInterval(async () => {
90
- const request = await (0, node_fetch_1.default)(url);
91
- if (request.ok) {
92
- const hls = await request.text();
93
- const parsed = HLS.parse(hls);
94
- if (parsed.isMasterPlaylist) {
95
- const master = parsed;
96
- const current = master.variants.reduce((acc, v) => {
97
- acc.add(v.uri);
98
- v.audio.forEach((a) => { if (a.uri)
99
- acc.add(a.uri); });
100
- return acc;
101
- }, new Set());
102
- if (current.size === expectedStreams) {
103
- clearInterval(i);
104
- r(master);
93
+ return new Promise((resolve) => {
94
+ const checkManifest = async () => {
95
+ try {
96
+ const request = await (0, node_fetch_1.default)(url);
97
+ if (request.ok) {
98
+ const hls = await request.text();
99
+ const parsed = HLS.parse(hls);
100
+ if (parsed.isMasterPlaylist) {
101
+ const master = parsed;
102
+ const current = master.variants.reduce((acc, v) => {
103
+ acc.add(v.uri);
104
+ v.audio.forEach((a) => { if (a.uri)
105
+ acc.add(a.uri); });
106
+ return acc;
107
+ }, new Set());
108
+ if (current.size === expectedStreams) {
109
+ clearInterval(intervalId);
110
+ resolve(master);
111
+ }
105
112
  }
106
113
  }
107
114
  }
115
+ catch (error) {
116
+ console.error("Error checking manifest:", error);
117
+ }
118
+ };
119
+ const intervalId = setInterval(() => {
120
+ void checkManifest();
108
121
  }, 10.0);
109
122
  });
110
123
  }
111
- describe("A single video and audio stream", () => {
124
+ function describeTest(title, cb) {
125
+ describe(`${title} - CMAF`, cb('cmaf'));
126
+ describe(`${title} - TS`, cb('ts'));
127
+ }
128
+ describeTest("A single video and audio stream", (mode) => () => {
112
129
  let norsk = undefined;
113
130
  let result = undefined;
114
131
  afterEach(async () => {
@@ -117,7 +134,7 @@ describe("Auto CMAF Output", () => {
117
134
  beforeEach(async () => {
118
135
  norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
119
136
  const source = await (0, sources_1.videoAndAudio)(norsk, 'source');
120
- result = await sharedSetup(norsk, [source]);
137
+ result = await sharedSetup(norsk, [source], mode);
121
138
  });
122
139
  it("Spins up a multi-variant playlist with the one stream", async () => {
123
140
  const mv = result?.registeredOutputs.find((s) => s.url?.endsWith("default.m3u8"));
@@ -129,7 +146,28 @@ describe("Auto CMAF Output", () => {
129
146
  }
130
147
  });
131
148
  });
132
- describe("Two videos and one audio stream", () => {
149
+ describeTest("Starting up disabled", (mode) => () => {
150
+ let norsk = undefined;
151
+ let result = undefined;
152
+ afterEach(async () => {
153
+ await norsk?.close();
154
+ });
155
+ beforeEach(async () => {
156
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
157
+ const source = await (0, sources_1.videoAndAudio)(norsk, 'source');
158
+ result = await sharedSetup(norsk, [source], mode, { initialState: 'disabled' });
159
+ });
160
+ it("Doesn't spin anything up", async () => {
161
+ const mv = result?.registeredOutputs.find((s) => s.url?.endsWith("default.m3u8"));
162
+ const disabledResponse = await (0, node_fetch_1.default)(mv.url);
163
+ (0, chai_1.expect)(disabledResponse.status).to.not.equal(200);
164
+ });
165
+ it("Has the disabled state", async () => {
166
+ const cmaf = result.components["cmaf"];
167
+ (0, chai_1.expect)(cmaf.runtime.updates.latest().enabled).to.be.false;
168
+ });
169
+ });
170
+ describeTest("Two videos and one audio stream", (mode) => () => {
133
171
  let norsk = undefined;
134
172
  let result = undefined;
135
173
  afterEach(async () => {
@@ -140,7 +178,7 @@ describe("Auto CMAF Output", () => {
140
178
  const video1 = await (0, sources_1.video)(norsk, 'source1', { renditionName: "high", sourceName: "source" });
141
179
  const video2 = await (0, sources_1.video)(norsk, 'source2', { renditionName: "low", sourceName: "source" });
142
180
  const audio1 = await (0, sources_1.audio)(norsk, 'source3', { renditionName: "default", sourceName: "source" });
143
- result = await sharedSetup(norsk, [video1, video2, audio1]);
181
+ result = await sharedSetup(norsk, [video1, video2, audio1], mode);
144
182
  });
145
183
  it("Spins up a multi-variant playlist with all the streams", async () => {
146
184
  const mv = result?.registeredOutputs.find((s) => s.url?.endsWith("default.m3u8"));
@@ -152,7 +190,7 @@ describe("Auto CMAF Output", () => {
152
190
  }
153
191
  });
154
192
  });
155
- describe("Two sources", () => {
193
+ describeTest("Two sources", (mode) => () => {
156
194
  let norsk = undefined;
157
195
  let result = undefined;
158
196
  afterEach(async () => {
@@ -164,7 +202,7 @@ describe("Auto CMAF Output", () => {
164
202
  const video2 = await (0, sources_1.video)(norsk, 'source2-video', { renditionName: "high", sourceName: "source2" });
165
203
  const audio1 = await (0, sources_1.audio)(norsk, 'source1-audio', { renditionName: "default", sourceName: "source1" });
166
204
  const audio2 = await (0, sources_1.audio)(norsk, 'source2-audio', { renditionName: "default", sourceName: "source2" });
167
- result = await sharedSetup(norsk, [video1, video2, audio1, audio2]);
205
+ result = await sharedSetup(norsk, [video1, video2, audio1, audio2], mode);
168
206
  });
169
207
  it("Spins up a multi-variant playlist with all the streams", async () => {
170
208
  await (0, util_1.waitForCondition)(() => result?.registeredOutputs.length === 3);
@@ -185,7 +223,7 @@ describe("Auto CMAF Output", () => {
185
223
  (0, chai_1.expect)(sourceTwoManifest.variants[0]?.audio).length(1);
186
224
  });
187
225
  });
188
- describe("Stream within a source goes away", () => {
226
+ describeTest("Stream within a source goes away", (mode) => () => {
189
227
  let norsk = undefined;
190
228
  let result = undefined;
191
229
  let video1 = undefined;
@@ -203,7 +241,7 @@ describe("Auto CMAF Output", () => {
203
241
  video3 = await (0, sources_1.video)(norsk, 'source1-video-low', { renditionName: "low", sourceName: "source1" });
204
242
  audio1 = await (0, sources_1.audio)(norsk, 'source1-audio', { renditionName: "default", sourceName: "source1" });
205
243
  audio2 = await (0, sources_1.audio)(norsk, 'source2-audio', { renditionName: "default", sourceName: "source2" });
206
- result = await sharedSetup(norsk, [video1, video2, audio1, audio2, video3]);
244
+ result = await sharedSetup(norsk, [video1, video2, audio1, audio2, video3], mode);
207
245
  });
208
246
  it("Removes the media stream from the multivariant", async () => {
209
247
  await (0, util_1.waitForCondition)(() => result?.registeredOutputs.length === 3);
@@ -220,7 +258,7 @@ describe("Auto CMAF Output", () => {
220
258
  (0, chai_1.expect)(sourceTwoManifest.variants[0]?.audio).length(1);
221
259
  });
222
260
  });
223
- function streamGoesAwayAndComesBack(wait) {
261
+ function streamGoesAwayAndComesBack(wait, mode) {
224
262
  let norsk = undefined;
225
263
  let result = undefined;
226
264
  let video1 = undefined;
@@ -234,7 +272,7 @@ describe("Auto CMAF Output", () => {
234
272
  video1 = await (0, sources_1.video)(norsk, 'source1-video', { renditionName: "high", sourceName: "source1" });
235
273
  video2 = await (0, sources_1.video)(norsk, 'source2-video', { renditionName: "medium", sourceName: "source1" });
236
274
  audio1 = await (0, sources_1.audio)(norsk, 'source1-audio', { renditionName: "default", sourceName: "source1" });
237
- result = await sharedSetup(norsk, [video1, video2, audio1]);
275
+ result = await sharedSetup(norsk, [video1, video2, audio1], mode);
238
276
  });
239
277
  it("Removes the stream from the multi-variant then re-adds it", async () => {
240
278
  await (0, util_1.waitForCondition)(() => result?.registeredOutputs.length === 2);
@@ -250,13 +288,13 @@ describe("Auto CMAF Output", () => {
250
288
  (0, chai_1.expect)(sourceOneManifest.variants[0]?.audio).length(1);
251
289
  });
252
290
  }
253
- describe("Stream within a source goes away and comes back, wait", () => {
254
- streamGoesAwayAndComesBack(true);
291
+ describeTest("Stream within a source goes away and comes back, wait", (mode) => () => {
292
+ streamGoesAwayAndComesBack(true, mode);
255
293
  });
256
- describe("Stream within a source goes away and comes back, no wait", () => {
257
- streamGoesAwayAndComesBack(true);
294
+ describeTest("Stream within a source goes away and comes back, no wait", (mode) => () => {
295
+ streamGoesAwayAndComesBack(true, mode);
258
296
  });
259
- describe("Whole source goes away", () => {
297
+ describeTest("Whole source goes away", (mode) => () => {
260
298
  let norsk = undefined;
261
299
  let result = undefined;
262
300
  let video1 = undefined;
@@ -270,7 +308,7 @@ describe("Auto CMAF Output", () => {
270
308
  video1 = await (0, sources_1.video)(norsk, 'source1-video', { renditionName: "high", sourceName: "source1" });
271
309
  video2 = await (0, sources_1.video)(norsk, 'source2-video', { renditionName: "medium", sourceName: "source1" });
272
310
  audio1 = await (0, sources_1.audio)(norsk, 'source1-audio', { renditionName: "default", sourceName: "source1" });
273
- result = await sharedSetup(norsk, [video1, video2, audio1]);
311
+ result = await sharedSetup(norsk, [video1, video2, audio1], mode);
274
312
  });
275
313
  it("Removes the multivariant", async () => {
276
314
  await (0, util_1.waitForCondition)(() => result?.registeredOutputs.length === 2);
@@ -286,7 +324,7 @@ describe("Auto CMAF Output", () => {
286
324
  await (0, sinks_1.waitForAssert)(async () => !(await playlistExists()), async () => !(await playlistExists()));
287
325
  });
288
326
  });
289
- function wholeSourceGoesAwayComesBack(wait) {
327
+ function wholeSourceGoesAwayComesBack(wait, mode) {
290
328
  let norsk = undefined;
291
329
  let result = undefined;
292
330
  let video1 = undefined;
@@ -300,7 +338,7 @@ describe("Auto CMAF Output", () => {
300
338
  video1 = await (0, sources_1.video)(norsk, 'source1-video', { renditionName: "high", sourceName: "source1" });
301
339
  video2 = await (0, sources_1.video)(norsk, 'source2-video', { renditionName: "medium", sourceName: "source1" });
302
340
  audio1 = await (0, sources_1.audio)(norsk, 'source1-audio', { renditionName: "default", sourceName: "source1" });
303
- result = await sharedSetup(norsk, [video1, video2, audio1]);
341
+ result = await sharedSetup(norsk, [video1, video2, audio1], mode);
304
342
  });
305
343
  it("Re-creates the multivariant", async () => {
306
344
  await (0, util_1.waitForCondition)(() => result?.registeredOutputs.length === 2);
@@ -324,11 +362,149 @@ describe("Auto CMAF Output", () => {
324
362
  (0, chai_1.expect)(finalManifest.variants[0]?.audio).length(1);
325
363
  });
326
364
  }
327
- describe("Whole source goes away and comes back again, wait", () => {
328
- wholeSourceGoesAwayComesBack(true);
365
+ describeTest("Whole source goes away and comes back again, wait", (mode) => () => {
366
+ wholeSourceGoesAwayComesBack(true, mode);
367
+ });
368
+ describeTest("Whole source goes away and comes back again, no wait", (mode) => () => {
369
+ wholeSourceGoesAwayComesBack(false, mode);
329
370
  });
330
- describe("Whole source goes away and comes back again, no wait", () => {
331
- wholeSourceGoesAwayComesBack(false);
371
+ describeTest("Auto CMAF state management", (mode) => () => {
372
+ let norsk = undefined;
373
+ let result = undefined;
374
+ let app;
375
+ let server;
376
+ let port;
377
+ let source;
378
+ beforeEach(async () => {
379
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
380
+ app = (0, express_1.default)();
381
+ app.use(express_1.default.json());
382
+ server = app.listen(0);
383
+ port = server.address().port;
384
+ source = await (0, sources_1.videoAndAudio)(norsk, 'source');
385
+ const runtime = await defaultRuntime();
386
+ const yaml = new builder_1.YamlBuilder()
387
+ .addNode(new builder_1.YamlNodeBuilder("cmaf", (mode == 'cmaf' ? (0, info_1.default)(client_types_1.RegistrationConsts) : (0, info_2.default)(client_types_1.RegistrationConsts)), {
388
+ name: 'default',
389
+ sessionId: false,
390
+ segments: {
391
+ retentionPeriod: 60,
392
+ targetPartDuration: 0.5,
393
+ targetSegmentDuration: 2,
394
+ },
395
+ destinations: [],
396
+ multiplePrograms: true,
397
+ initialState: 'enabled'
398
+ }).reify())
399
+ .reify();
400
+ const compiled = document.load(__filename, runtime, yaml_1.default.stringify(yaml));
401
+ result = await (0, execution_1.default)(norsk, compiled, app);
402
+ const cmaf = result.components["cmaf"];
403
+ cmaf.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), { type: 'take-first-stream', select: ["video", "audio"] })]);
404
+ });
405
+ afterEach(async () => {
406
+ try {
407
+ if (server) {
408
+ await new Promise((resolve) => {
409
+ server?.close(() => resolve());
410
+ });
411
+ }
412
+ if (source) {
413
+ await source.close().catch(() => { });
414
+ }
415
+ if (norsk) {
416
+ await norsk.close().catch(() => { });
417
+ }
418
+ await new Promise(f => setTimeout(f, 500));
419
+ }
420
+ catch (error) {
421
+ console.error('Error in afterEach cleanup:', error);
422
+ }
423
+ });
424
+ it("should handle initial state correctly", async () => {
425
+ const cmaf = result.components["cmaf"];
426
+ const initialState = cmaf.runtime.updates.latest();
427
+ (0, chai_1.expect)(initialState.enabled).to.be.true;
428
+ const mv = result?.registeredOutputs.find((s) => s.url?.endsWith("default.m3u8"));
429
+ (0, chai_1.expect)(mv).to.exist;
430
+ (0, chai_1.expect)(mv?.url).to.exist;
431
+ const initialManifest = await awaitCompleteManifest(mv.url, 2);
432
+ (0, chai_1.expect)(initialManifest.variants).length(1);
433
+ (0, chai_1.expect)(initialManifest.variants[0]?.audio).length(1);
434
+ });
435
+ it("should handle disable and enable cycle", async () => {
436
+ const cmaf = result.components["cmaf"];
437
+ const mv = result?.registeredOutputs.find((s) => s.url?.endsWith("default.m3u8"));
438
+ (0, chai_1.expect)(mv).to.exist;
439
+ (0, chai_1.expect)(cmaf.runtime.updates.latest().enabled).to.be.true;
440
+ const disableResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/disable`, {
441
+ method: 'POST'
442
+ });
443
+ (0, chai_1.expect)(disableResponse.status).to.equal(204);
444
+ const enableResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/enable`, {
445
+ method: 'POST'
446
+ });
447
+ (0, chai_1.expect)(enableResponse.status).to.equal(204);
448
+ });
449
+ it("should handle invalid API requests appropriately", async () => {
450
+ const cmaf = result.components["cmaf"];
451
+ const alreadyEnabledResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/enable`, {
452
+ method: 'POST'
453
+ });
454
+ (0, chai_1.expect)(alreadyEnabledResponse.status).to.equal(400);
455
+ const disableResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/disable`, {
456
+ method: 'POST'
457
+ });
458
+ (0, chai_1.expect)(disableResponse.status).to.equal(204);
459
+ const alreadyDisabledResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/disable`, {
460
+ method: 'POST'
461
+ });
462
+ (0, chai_1.expect)(alreadyDisabledResponse.status).to.equal(400);
463
+ });
464
+ it("should maintain disabled state across source changes", async () => {
465
+ const cmaf = result.components["cmaf"];
466
+ const mv = result?.registeredOutputs.find((s) => s.url?.endsWith("default.m3u8"));
467
+ (0, chai_1.expect)(mv).to.exist;
468
+ const disableResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/disable`, {
469
+ method: 'POST'
470
+ });
471
+ (0, chai_1.expect)(disableResponse.status).to.equal(204);
472
+ const newSource = await (0, sources_1.videoAndAudio)(norsk, 'new-source');
473
+ cmaf.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(newSource, (0, sources_1.testSourceDescription)(), { type: 'take-first-stream', select: ["video", "audio"] })]);
474
+ const disabledResponse = await (0, node_fetch_1.default)(mv.url);
475
+ (0, chai_1.expect)(disabledResponse.status).to.not.equal(200);
476
+ });
477
+ it("should emit appropriate events on state changes", async () => {
478
+ const cmaf = result.components["cmaf"];
479
+ const disabledEventPromise = new Promise((resolve) => {
480
+ const originalRaiseEvent = cmaf.runtime.updates.raiseEvent;
481
+ cmaf.runtime.updates.raiseEvent = (event) => {
482
+ if (event.type === 'output-disabled') {
483
+ resolve();
484
+ }
485
+ return originalRaiseEvent.call(cmaf.runtime.updates, event);
486
+ };
487
+ });
488
+ const disableResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/disable`, {
489
+ method: 'POST'
490
+ });
491
+ (0, chai_1.expect)(disableResponse.status).to.equal(204);
492
+ await disabledEventPromise;
493
+ const enabledEventPromise = new Promise((resolve) => {
494
+ const originalRaiseEvent = cmaf.runtime.updates.raiseEvent;
495
+ cmaf.runtime.updates.raiseEvent = (event) => {
496
+ if (event.type === 'output-enabled') {
497
+ resolve();
498
+ }
499
+ return originalRaiseEvent.call(cmaf.runtime.updates, event);
500
+ };
501
+ });
502
+ const enableResponse = await (0, node_fetch_1.default)(`http://localhost:${port}/${cmaf.id}/enable`, {
503
+ method: 'POST'
504
+ });
505
+ (0, chai_1.expect)(enableResponse.status).to.equal(204);
506
+ await enabledEventPromise;
507
+ });
332
508
  });
333
509
  });
334
510
  //# sourceMappingURL=auto-cmaf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-cmaf.js","sourceRoot":"","sources":["../../src/test/auto-cmaf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-cmaf.js","sourceRoot":"","sources":["../../src/test/auto-cmaf.ts"],"names":[],"mappings":"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"}