@norskvideo/norsk-studio-built-ins 1.27.0-2025-05-09-832c7b88 → 1.27.0-2025-05-14-7d3dbd14

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 (49) hide show
  1. package/client/info.js +39762 -1235
  2. package/client/processor.smartSourceSwitch/extra.css +0 -0
  3. package/lib/info.js +10 -8
  4. package/lib/info.js.map +1 -1
  5. package/lib/input.srt-listener/info.js +2 -0
  6. package/lib/input.srt-listener/info.js.map +1 -1
  7. package/lib/processor.smartSingleMediaSwitch/info.d.ts +3 -0
  8. package/lib/{processor.cascadingSwitch → processor.smartSingleMediaSwitch}/info.js +45 -40
  9. package/lib/processor.smartSingleMediaSwitch/info.js.map +1 -0
  10. package/lib/processor.smartSingleMediaSwitch/inline-view.d.ts +6 -0
  11. package/lib/processor.smartSingleMediaSwitch/inline-view.js +15 -0
  12. package/lib/processor.smartSingleMediaSwitch/inline-view.js.map +1 -0
  13. package/lib/processor.smartSingleMediaSwitch/runtime.d.ts +64 -0
  14. package/lib/processor.smartSingleMediaSwitch/runtime.js +135 -0
  15. package/lib/processor.smartSingleMediaSwitch/runtime.js.map +1 -0
  16. package/lib/processor.smartSingleMediaSwitch/source-selection.d.ts +8 -0
  17. package/lib/processor.smartSingleMediaSwitch/source-selection.js +36 -0
  18. package/lib/processor.smartSingleMediaSwitch/source-selection.js.map +1 -0
  19. package/lib/processor.smartSourceSwitch/info.d.ts +3 -0
  20. package/lib/processor.smartSourceSwitch/info.js +155 -0
  21. package/lib/processor.smartSourceSwitch/info.js.map +1 -0
  22. package/lib/processor.smartSourceSwitch/inline-view.d.ts +6 -0
  23. package/lib/processor.smartSourceSwitch/inline-view.js.map +1 -0
  24. package/lib/{processor.cascadingSwitch → processor.smartSourceSwitch}/runtime.d.ts +16 -13
  25. package/lib/{processor.cascadingSwitch → processor.smartSourceSwitch}/runtime.js +17 -13
  26. package/lib/processor.smartSourceSwitch/runtime.js.map +1 -0
  27. package/lib/processor.smartSourceSwitch/source-selection.js.map +1 -0
  28. package/lib/processor.videoDecoder/info.js +1 -1
  29. package/lib/processor.videoDecoder/info.js.map +1 -1
  30. package/lib/shared/whep.js +2 -1
  31. package/lib/shared/whep.js.map +1 -1
  32. package/lib/test/smart-single-media-switch.js +288 -0
  33. package/lib/test/smart-single-media-switch.js.map +1 -0
  34. package/lib/test/smart-source-switch.d.ts +1 -0
  35. package/lib/test/{cascading-switch.js → smart-source-switch.js} +41 -49
  36. package/lib/test/smart-source-switch.js.map +1 -0
  37. package/package.json +3 -3
  38. package/lib/processor.cascadingSwitch/info.d.ts +0 -3
  39. package/lib/processor.cascadingSwitch/info.js.map +0 -1
  40. package/lib/processor.cascadingSwitch/inline-view.d.ts +0 -6
  41. package/lib/processor.cascadingSwitch/inline-view.js.map +0 -1
  42. package/lib/processor.cascadingSwitch/runtime.js.map +0 -1
  43. package/lib/processor.cascadingSwitch/source-selection.js.map +0 -1
  44. package/lib/test/cascading-switch.js.map +0 -1
  45. /package/client/{processor.cascadingSwitch → processor.smartSingleMediaSwitch}/extra.css +0 -0
  46. /package/lib/{processor.cascadingSwitch → processor.smartSourceSwitch}/inline-view.js +0 -0
  47. /package/lib/{processor.cascadingSwitch → processor.smartSourceSwitch}/source-selection.d.ts +0 -0
  48. /package/lib/{processor.cascadingSwitch → processor.smartSourceSwitch}/source-selection.js +0 -0
  49. /package/lib/test/{cascading-switch.d.ts → smart-single-media-switch.d.ts} +0 -0
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const norsk_sdk_1 = require("@norskvideo/norsk-sdk");
30
+ const builder_1 = require("@norskvideo/norsk-studio/lib/test/_util/builder");
31
+ const document = __importStar(require("@norskvideo/norsk-studio/lib/runtime/document"));
32
+ const yaml_1 = __importDefault(require("yaml"));
33
+ const execution_1 = __importDefault(require("@norskvideo/norsk-studio/lib/runtime/execution"));
34
+ const sinks_1 = require("@norskvideo/norsk-studio/lib/test/_util/sinks");
35
+ const info_1 = __importDefault(require("../processor.smartSingleMediaSwitch/info"));
36
+ const chai_1 = require("chai");
37
+ const runtime_1 = require("@norskvideo/norsk-studio/lib/test/_util/runtime");
38
+ const session_1 = __importDefault(require("@norskvideo/norsk-studio/lib/client/session"));
39
+ const client_types_1 = require("@norskvideo/norsk-studio/lib/extension/client-types");
40
+ const document_1 = require("@norskvideo/norsk-studio/lib/shared/document");
41
+ const __1 = __importDefault(require(".."));
42
+ const SmartSingleMediaInfo = (0, info_1.default)(client_types_1.RegistrationConsts);
43
+ async function createRuntime() {
44
+ const runtime = await (0, runtime_1.testRuntime)();
45
+ await (0, __1.default)(runtime);
46
+ return runtime;
47
+ }
48
+ async function createLibrary() {
49
+ const runtime = await createRuntime();
50
+ return (0, runtime_1.extractLibraryFromRuntime)(runtime);
51
+ }
52
+ describe("SmartSingleMedia Switch", () => {
53
+ describe("SmartSingleMedia Design time", () => {
54
+ const yaml = new builder_1.YamlBuilder().reify();
55
+ let session = undefined;
56
+ const initialConfig = {
57
+ id: "switch",
58
+ displayName: "Switch",
59
+ resolution: {
60
+ width: 1920,
61
+ height: 1080
62
+ },
63
+ frameRate: {
64
+ frames: 25,
65
+ seconds: 1
66
+ },
67
+ sampleRate: 48000,
68
+ channelLayout: "mono",
69
+ sources: []
70
+ };
71
+ function getSwitch() {
72
+ return session?.description.findNode(initialConfig.id);
73
+ }
74
+ beforeEach(async () => {
75
+ const library = await createLibrary();
76
+ session = new session_1.default(library, new document_1.DocumentDescription(library, yaml), {});
77
+ session.addNode(SmartSingleMediaInfo.identifier);
78
+ session.finishEditingNode("", { config: initialConfig });
79
+ });
80
+ describe("Adding the first source", () => {
81
+ beforeEach(async () => {
82
+ const source = session.addNode(runtime_1.AudioInput.info.identifier);
83
+ session?.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
84
+ session?.addSubscription(source, getSwitch());
85
+ });
86
+ it("Adds the source to the config", () => {
87
+ (0, chai_1.expect)(getSwitch().config.sources).lengthOf(1);
88
+ (0, chai_1.expect)(getSwitch().config.sources[0].sourceName).equals('source1');
89
+ });
90
+ });
91
+ describe("Adding two sources", () => {
92
+ beforeEach(async () => {
93
+ const source1 = session.addNode(runtime_1.AudioInput.info.identifier);
94
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
95
+ const source2 = session.addNode(runtime_1.AudioInput.info.identifier);
96
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
97
+ session.addSubscription(source1, getSwitch());
98
+ session.addSubscription(source2, getSwitch());
99
+ });
100
+ it("Adds the sources to the config in order", () => {
101
+ (0, chai_1.expect)(getSwitch().config.sources).lengthOf(2);
102
+ (0, chai_1.expect)(getSwitch().config.sources[0].sourceName).equals('source1');
103
+ (0, chai_1.expect)(getSwitch().config.sources[1].sourceName).equals('source2');
104
+ });
105
+ });
106
+ describe("Removing a source", () => {
107
+ beforeEach(async () => {
108
+ const source1 = session.addNode(runtime_1.AudioInput.info.identifier);
109
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
110
+ const source2 = session.addNode(runtime_1.AudioInput.info.identifier);
111
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
112
+ session.addSubscription(source1, getSwitch());
113
+ session.addSubscription(source2, getSwitch());
114
+ session.removeSubscription(source1.id, getSwitch().id);
115
+ });
116
+ it("Removes the source from config", () => {
117
+ (0, chai_1.expect)(getSwitch().config.sources).lengthOf(1);
118
+ (0, chai_1.expect)(getSwitch().config.sources[0].sourceName).equals('source2');
119
+ });
120
+ });
121
+ describe("Source is renamed", () => {
122
+ beforeEach(async () => {
123
+ const source1 = session.addNode(runtime_1.AudioInput.info.identifier);
124
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
125
+ const source2 = session.addNode(runtime_1.AudioInput.info.identifier);
126
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
127
+ session.addSubscription(source1, getSwitch());
128
+ session.addSubscription(source2, getSwitch());
129
+ const testConfig = { ...source1.config };
130
+ testConfig.id = 'renamed';
131
+ session.finishEditingNode("source1", { config: testConfig });
132
+ });
133
+ it("re-adds the source", () => {
134
+ (0, chai_1.expect)(getSwitch().config.sources).lengthOf(2);
135
+ (0, chai_1.expect)(getSwitch().config.sources[0].sourceName).equals('source2');
136
+ (0, chai_1.expect)(getSwitch().config.sources[1].sourceName).equals('renamed');
137
+ });
138
+ });
139
+ describe("Source is deleted", () => {
140
+ beforeEach(async () => {
141
+ const source1 = session.addNode(runtime_1.AudioInput.info.identifier);
142
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
143
+ const source2 = session.addNode(runtime_1.AudioInput.info.identifier);
144
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
145
+ const source3 = session.addNode(runtime_1.AudioInput.info.identifier);
146
+ session.finishEditingNode("", { config: { id: 'source3', sourceName: true } });
147
+ session.addSubscription(source1, getSwitch());
148
+ session.addSubscription(source2, getSwitch());
149
+ session.addSubscription(source3, getSwitch());
150
+ session.removeNode("source2");
151
+ });
152
+ it("Removes the source in place", () => {
153
+ (0, chai_1.expect)(getSwitch().config.sources).lengthOf(2);
154
+ (0, chai_1.expect)(getSwitch().config.sources[0].sourceName).equals('source1');
155
+ (0, chai_1.expect)(getSwitch().config.sources[1].sourceName).equals('source3');
156
+ });
157
+ });
158
+ });
159
+ describe("Runtime", () => {
160
+ async function testDocument(media, cb) {
161
+ const config = {
162
+ id: 'foo',
163
+ displayName: 'Foo',
164
+ resolution: { width: 640, height: 360 },
165
+ frameRate: { frames: 25, seconds: 1 },
166
+ sampleRate: 48000,
167
+ channelLayout: 'stereo',
168
+ sources: [
169
+ { displayName: "Primary", sourceName: "primary", media },
170
+ { displayName: "Backup", sourceName: "backup", media }
171
+ ]
172
+ };
173
+ const runtime = await createRuntime();
174
+ const yaml = new builder_1.YamlBuilder();
175
+ const ss = new builder_1.YamlNodeBuilder('switch', SmartSingleMediaInfo, config);
176
+ yaml.addNode((new builder_1.YamlNodeBuilder('primary', runtime_1.AvInput.info, { sourceName: true })).reify());
177
+ yaml.addNode((new builder_1.YamlNodeBuilder('backup', runtime_1.AvInput.info, { sourceName: true })).reify());
178
+ ss.subscribe("primary", [media]);
179
+ ss.subscribe("backup", [media]);
180
+ cb?.(yaml, ss);
181
+ yaml.addNode(ss.reify());
182
+ const compiled = document.load(__filename, runtime, yaml_1.default.stringify(yaml.reify()));
183
+ return compiled;
184
+ }
185
+ let norsk = undefined;
186
+ let result = undefined;
187
+ afterEach(async () => {
188
+ await norsk?.close();
189
+ await new Promise((r) => {
190
+ setTimeout(() => {
191
+ r();
192
+ }, 10.0);
193
+ });
194
+ norsk = undefined;
195
+ result = undefined;
196
+ });
197
+ const latestState = () => {
198
+ return result?.runtimeState.getNodeState('switch');
199
+ };
200
+ sharedTests("audio");
201
+ sharedTests("video");
202
+ function sharedTests(media) {
203
+ describe("No active inputs", () => {
204
+ it(`Should output ${media} from the fallback source`, async () => {
205
+ const compiled = await testDocument(media);
206
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
207
+ result = await (0, execution_1.default)(norsk, compiled);
208
+ const switcher = result.components['switch'];
209
+ const primary = result.components['primary'];
210
+ const backup = result.components['backup'];
211
+ await primary.close();
212
+ await backup.close();
213
+ await Promise.all([
214
+ media == "audio" ? (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch')
215
+ : (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
216
+ (0, sinks_1.waitForAssert)(() => switcher.activeSource == 'fallback', () => (0, chai_1.expect)(switcher.activeSource).equals('fallback'), 10000.0, 10.0)
217
+ ]);
218
+ });
219
+ });
220
+ describe("primary source is active only", () => {
221
+ it(`Should output ${media} from the primary source`, async () => {
222
+ const compiled = await testDocument(media);
223
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
224
+ result = await (0, execution_1.default)(norsk, compiled);
225
+ const switcher = result.components['switch'];
226
+ const backup = result.components['backup'];
227
+ await backup.close();
228
+ console.log('here');
229
+ await Promise.all([
230
+ media == "audio" ? (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch')
231
+ : (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
232
+ (0, sinks_1.waitForAssert)(() => switcher.activeSource == `${media}-primary`, () => (0, chai_1.expect)(switcher.activeSource).equals(`${media}-primary`), 10000.0, 10.0),
233
+ (0, sinks_1.waitForAssert)(() => (latestState())?.activeSource == 0, () => (0, chai_1.expect)(latestState()?.activeSource).equals(0), 10000.0, 10.0)
234
+ ]);
235
+ });
236
+ });
237
+ describe("backup source is active only", () => {
238
+ it(`Should output ${media} from the backup source`, async () => {
239
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
240
+ const compiled = await testDocument(media);
241
+ result = await (0, execution_1.default)(norsk, compiled);
242
+ const switcher = result.components['switch'];
243
+ const primary = result.components['primary'];
244
+ await primary.close();
245
+ await Promise.all([
246
+ media == "audio" ? (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch')
247
+ : (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
248
+ (0, sinks_1.waitForAssert)(() => switcher.activeSource == `${media}-backup`, () => (0, chai_1.expect)(switcher.activeSource).equals(`${media}-backup`), 10000.0, 10.0),
249
+ (0, sinks_1.waitForAssert)(() => (latestState())?.activeSource == 1, () => (0, chai_1.expect)(latestState()?.activeSource).equals(1), 10000.0, 10.0)
250
+ ]);
251
+ });
252
+ });
253
+ describe("primary and backup sources are active", () => {
254
+ it(`Should output ${media} from the primary source`, async () => {
255
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
256
+ const compiled = await testDocument(media);
257
+ result = await (0, execution_1.default)(norsk, compiled);
258
+ const switcher = result.components['switch'];
259
+ await Promise.all([
260
+ media == "audio" ? (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch')
261
+ : (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
262
+ (0, sinks_1.waitForAssert)(() => switcher.activeSource == `${media}-primary`, () => (0, chai_1.expect)(switcher.activeSource).equals(`${media}-primary`), 10000.0, 10.0),
263
+ (0, sinks_1.waitForAssert)(() => (latestState())?.activeSource == 0, () => (0, chai_1.expect)(latestState()?.activeSource).equals(0), 10000.0, 10.0)
264
+ ]);
265
+ });
266
+ });
267
+ describe("Switch from backup to primary", () => {
268
+ it(`Should output ${media} from the primary source`, async () => {
269
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
270
+ const compiled = await testDocument(media);
271
+ result = await (0, execution_1.default)(norsk, compiled);
272
+ const switcher = result.components['switch'];
273
+ const primary = result.components['primary'];
274
+ primary.pause();
275
+ await (0, sinks_1.waitForAssert)(() => switcher.activeSource == `${media}-backup`, () => (0, chai_1.expect)(switcher.activeSource).equals(`${media}-backup`), 10000.0, 10.0);
276
+ primary.start();
277
+ await Promise.all([
278
+ media == "audio" ? (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch')
279
+ : (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
280
+ (0, sinks_1.waitForAssert)(() => switcher.activeSource == `${media}-primary`, () => (0, chai_1.expect)(switcher.activeSource).equals(`${media}-primary`), 10000.0, 10.0),
281
+ (0, sinks_1.waitForAssert)(() => (latestState())?.activeSource == 0, () => (0, chai_1.expect)(latestState()?.activeSource).equals(0), 10000.0, 10.0)
282
+ ]);
283
+ });
284
+ });
285
+ }
286
+ });
287
+ });
288
+ //# sourceMappingURL=smart-single-media-switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-single-media-switch.js","sourceRoot":"","sources":["../../src/test/smart-single-media-switch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -30,17 +30,16 @@ const norsk_sdk_1 = require("@norskvideo/norsk-sdk");
30
30
  const builder_1 = require("@norskvideo/norsk-studio/lib/test/_util/builder");
31
31
  const document = __importStar(require("@norskvideo/norsk-studio/lib/runtime/document"));
32
32
  const yaml_1 = __importDefault(require("yaml"));
33
- const execution_1 = __importStar(require("@norskvideo/norsk-studio/lib/runtime/execution"));
33
+ const execution_1 = __importDefault(require("@norskvideo/norsk-studio/lib/runtime/execution"));
34
34
  const sinks_1 = require("@norskvideo/norsk-studio/lib/test/_util/sinks");
35
- const info_1 = __importDefault(require("../processor.cascadingSwitch/info"));
35
+ const info_1 = __importDefault(require("../processor.smartSourceSwitch/info"));
36
36
  const chai_1 = require("chai");
37
- const sources_1 = require("@norskvideo/norsk-studio/lib/test/_util/sources");
38
37
  const runtime_1 = require("@norskvideo/norsk-studio/lib/test/_util/runtime");
39
38
  const session_1 = __importDefault(require("@norskvideo/norsk-studio/lib/client/session"));
40
39
  const client_types_1 = require("@norskvideo/norsk-studio/lib/extension/client-types");
41
40
  const document_1 = require("@norskvideo/norsk-studio/lib/shared/document");
42
41
  const __1 = __importDefault(require(".."));
43
- const CascadingInfo = (0, info_1.default)(client_types_1.RegistrationConsts);
42
+ const SmartSourceInfo = (0, info_1.default)(client_types_1.RegistrationConsts);
44
43
  async function createRuntime() {
45
44
  const runtime = await (0, runtime_1.testRuntime)();
46
45
  await (0, __1.default)(runtime);
@@ -50,7 +49,7 @@ async function createLibrary() {
50
49
  const runtime = await createRuntime();
51
50
  return (0, runtime_1.extractLibraryFromRuntime)(runtime);
52
51
  }
53
- describe("Cascading Switch", () => {
52
+ describe("SmartSource Switch", () => {
54
53
  describe("Design time", () => {
55
54
  const yaml = new builder_1.YamlBuilder().reify();
56
55
  let session = undefined;
@@ -75,13 +74,13 @@ describe("Cascading Switch", () => {
75
74
  beforeEach(async () => {
76
75
  const library = await createLibrary();
77
76
  session = new session_1.default(library, new document_1.DocumentDescription(library, yaml), {});
78
- session.addNode(CascadingInfo.identifier);
77
+ session.addNode(SmartSourceInfo.identifier);
79
78
  session.finishEditingNode("", { config: initialConfig });
80
79
  });
81
80
  describe("Adding the first source", () => {
82
81
  beforeEach(async () => {
83
82
  const source = session.addNode(runtime_1.AvInput.info.identifier);
84
- session?.finishEditingNode("", { config: { id: 'source1' } });
83
+ session?.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
85
84
  session?.addSubscription(source, getSwitch());
86
85
  });
87
86
  it("Adds the source to the config", () => {
@@ -92,9 +91,9 @@ describe("Cascading Switch", () => {
92
91
  describe("Adding two sources", () => {
93
92
  beforeEach(async () => {
94
93
  const source1 = session.addNode(runtime_1.AvInput.info.identifier);
95
- session.finishEditingNode("", { config: { id: 'source1' } });
94
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
96
95
  const source2 = session.addNode(runtime_1.AvInput.info.identifier);
97
- session.finishEditingNode("", { config: { id: 'source2' } });
96
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
98
97
  session.addSubscription(source1, getSwitch());
99
98
  session.addSubscription(source2, getSwitch());
100
99
  });
@@ -107,9 +106,9 @@ describe("Cascading Switch", () => {
107
106
  describe("Removing a source", () => {
108
107
  beforeEach(async () => {
109
108
  const source1 = session.addNode(runtime_1.AvInput.info.identifier);
110
- session.finishEditingNode("", { config: { id: 'source1' } });
109
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
111
110
  const source2 = session.addNode(runtime_1.AvInput.info.identifier);
112
- session.finishEditingNode("", { config: { id: 'source2' } });
111
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
113
112
  session.addSubscription(source1, getSwitch());
114
113
  session.addSubscription(source2, getSwitch());
115
114
  session.removeSubscription(source1.id, getSwitch().id);
@@ -122,29 +121,29 @@ describe("Cascading Switch", () => {
122
121
  describe("Source is renamed", () => {
123
122
  beforeEach(async () => {
124
123
  const source1 = session.addNode(runtime_1.AvInput.info.identifier);
125
- session.finishEditingNode("", { config: { id: 'source1' } });
124
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
126
125
  const source2 = session.addNode(runtime_1.AvInput.info.identifier);
127
- session.finishEditingNode("", { config: { id: 'source2' } });
126
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
128
127
  session.addSubscription(source1, getSwitch());
129
128
  session.addSubscription(source2, getSwitch());
130
129
  const testConfig = { ...source1.config };
131
130
  testConfig.id = 'renamed';
132
131
  session.finishEditingNode("source1", { config: testConfig });
133
132
  });
134
- it("Renames the source in place", () => {
133
+ it("re-adds the source", () => {
135
134
  (0, chai_1.expect)(getSwitch().config.sources).lengthOf(2);
136
- (0, chai_1.expect)(getSwitch().config.sources[0]).equals('renamed');
137
- (0, chai_1.expect)(getSwitch().config.sources[1]).equals('source2');
135
+ (0, chai_1.expect)(getSwitch().config.sources[0]).equals('source2');
136
+ (0, chai_1.expect)(getSwitch().config.sources[1]).equals('renamed');
138
137
  });
139
138
  });
140
139
  describe("Source is deleted", () => {
141
140
  beforeEach(async () => {
142
141
  const source1 = session.addNode(runtime_1.AvInput.info.identifier);
143
- session.finishEditingNode("", { config: { id: 'source1' } });
142
+ session.finishEditingNode("", { config: { id: 'source1', sourceName: true } });
144
143
  const source2 = session.addNode(runtime_1.AvInput.info.identifier);
145
- session.finishEditingNode("", { config: { id: 'source2' } });
144
+ session.finishEditingNode("", { config: { id: 'source2', sourceName: true } });
146
145
  const source3 = session.addNode(runtime_1.AvInput.info.identifier);
147
- session.finishEditingNode("", { config: { id: 'source3' } });
146
+ session.finishEditingNode("", { config: { id: 'source3', sourceName: true } });
148
147
  session.addSubscription(source1, getSwitch());
149
148
  session.addSubscription(source2, getSwitch());
150
149
  session.addSubscription(source3, getSwitch());
@@ -170,12 +169,17 @@ describe("Cascading Switch", () => {
170
169
  ]
171
170
  };
172
171
  describe("Runtime", () => {
173
- async function testDocument() {
172
+ async function testDocument(cb) {
174
173
  const runtime = await createRuntime();
175
- const yaml = new builder_1.YamlBuilder()
176
- .addNode(new builder_1.YamlNodeBuilder('switch', CascadingInfo, config).reify())
177
- .reify();
178
- const compiled = document.load(__filename, runtime, yaml_1.default.stringify(yaml));
174
+ const yaml = new builder_1.YamlBuilder();
175
+ const ss = new builder_1.YamlNodeBuilder('switch', SmartSourceInfo, config);
176
+ yaml.addNode((new builder_1.YamlNodeBuilder('primary', runtime_1.AvInput.info, { sourceName: true })).reify());
177
+ yaml.addNode((new builder_1.YamlNodeBuilder('backup', runtime_1.AvInput.info, { sourceName: true })).reify());
178
+ ss.subscribe("primary", ["video", "audio"]);
179
+ ss.subscribe("backup", ["video", "audio"]);
180
+ cb?.(yaml, ss);
181
+ yaml.addNode(ss.reify());
182
+ const compiled = document.load(__filename, runtime, yaml_1.default.stringify(yaml.reify()));
179
183
  return compiled;
180
184
  }
181
185
  let norsk = undefined;
@@ -193,12 +197,16 @@ describe("Cascading Switch", () => {
193
197
  const latestState = () => {
194
198
  return result?.runtimeState.getNodeState('switch');
195
199
  };
196
- describe("No inputs", () => {
200
+ describe("No active inputs", () => {
197
201
  it("Should output A/V from the fallback source", async () => {
198
202
  const compiled = await testDocument();
199
203
  norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
200
204
  result = await (0, execution_1.default)(norsk, compiled);
201
205
  const switcher = result.components['switch'];
206
+ const primary = result.components['primary'];
207
+ const backup = result.components['backup'];
208
+ await primary.close();
209
+ await backup.close();
202
210
  await Promise.all([
203
211
  (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch'),
204
212
  (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
@@ -210,11 +218,10 @@ describe("Cascading Switch", () => {
210
218
  it("Should output A/V from the primary source", async () => {
211
219
  const compiled = await testDocument();
212
220
  norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
213
- const source = await (0, sources_1.videoAndAudio)(norsk, "primary");
214
221
  result = await (0, execution_1.default)(norsk, compiled);
215
222
  const switcher = result.components['switch'];
216
- const sub = new execution_1.ComponentSubscriptions(norsk, switcher);
217
- sub.setSources([new execution_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), { type: 'take-all-streams', filter: [{ media: "audio" }, { media: 'video' }] })]);
223
+ const backup = result.components['backup'];
224
+ await backup.close();
218
225
  await Promise.all([
219
226
  (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch'),
220
227
  (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
@@ -227,11 +234,10 @@ describe("Cascading Switch", () => {
227
234
  it("Should output A/V from the backup source", async () => {
228
235
  norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
229
236
  const compiled = await testDocument();
230
- const source = await (0, sources_1.videoAndAudio)(norsk, "backup");
231
237
  result = await (0, execution_1.default)(norsk, compiled);
232
238
  const switcher = result.components['switch'];
233
- const sub = new execution_1.ComponentSubscriptions(norsk, switcher);
234
- sub.setSources([new execution_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), { type: 'take-all-streams', filter: [{ media: "audio" }, { media: 'video' }] })]);
239
+ const primary = result.components['primary'];
240
+ await primary.close();
235
241
  await Promise.all([
236
242
  (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch'),
237
243
  (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
@@ -244,15 +250,8 @@ describe("Cascading Switch", () => {
244
250
  it("Should output A/V from the primary source", async () => {
245
251
  norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
246
252
  const compiled = await testDocument();
247
- const primary = await (0, sources_1.videoAndAudio)(norsk, "primary");
248
- const backup = await (0, sources_1.videoAndAudio)(norsk, "backup");
249
253
  result = await (0, execution_1.default)(norsk, compiled);
250
254
  const switcher = result.components['switch'];
251
- const sub = new execution_1.ComponentSubscriptions(norsk, switcher);
252
- sub.setSources([
253
- new execution_1.StudioNodeSubscriptionSource(backup, (0, sources_1.testSourceDescription)(), { type: "take-all-streams", filter: [{ media: "audio" }, { media: 'video' }] }),
254
- new execution_1.StudioNodeSubscriptionSource(primary, (0, sources_1.testSourceDescription)(), { type: "take-all-streams", filter: [{ media: "audio" }, { media: 'video' }] }),
255
- ]);
256
255
  await Promise.all([
257
256
  (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch'),
258
257
  (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
@@ -264,19 +263,12 @@ describe("Cascading Switch", () => {
264
263
  it("Should output A/V from the primary source", async () => {
265
264
  norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
266
265
  const compiled = await testDocument();
267
- const primary = await (0, sources_1.videoAndAudio)(norsk, "primary");
268
- const backup = await (0, sources_1.videoAndAudio)(norsk, "backup");
269
266
  result = await (0, execution_1.default)(norsk, compiled);
270
267
  const switcher = result.components['switch'];
271
- const sub = new execution_1.ComponentSubscriptions(norsk, switcher);
272
- sub.setSources([
273
- new execution_1.StudioNodeSubscriptionSource(backup, (0, sources_1.testSourceDescription)(), { type: "take-all-streams", filter: [{ media: "audio" }, { media: 'video' }] }),
274
- ]);
268
+ const primary = result.components['primary'];
269
+ primary.pause();
275
270
  await (0, sinks_1.waitForAssert)(() => switcher.activeSource == 'backup', () => (0, chai_1.expect)(switcher.activeSource).equals('backup'), 10000.0, 10.0);
276
- sub.setSources([
277
- new execution_1.StudioNodeSubscriptionSource(backup, (0, sources_1.testSourceDescription)(), { type: "take-all-streams", filter: [{ media: "audio" }, { media: 'video' }] }),
278
- new execution_1.StudioNodeSubscriptionSource(primary, (0, sources_1.testSourceDescription)(), { type: "take-all-streams", filter: [{ media: "audio" }, { media: 'video' }] }),
279
- ]);
271
+ primary.start();
280
272
  await Promise.all([
281
273
  (0, sinks_1.assertNodeOutputsAudioFrames)(norsk, result, 'switch'),
282
274
  (0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, 'switch'),
@@ -286,4 +278,4 @@ describe("Cascading Switch", () => {
286
278
  });
287
279
  });
288
280
  });
289
- //# sourceMappingURL=cascading-switch.js.map
281
+ //# sourceMappingURL=smart-source-switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-source-switch.js","sourceRoot":"","sources":["../../src/test/smart-source-switch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/norsk-studio-built-ins",
3
- "version": "1.27.0-2025-05-09-832c7b88",
3
+ "version": "1.27.0-2025-05-14-7d3dbd14",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "clean": "rm -rf lib client build",
@@ -22,8 +22,8 @@
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
24
  "@apidevtools/json-schema-ref-parser": "^12.0.1",
25
- "@norskvideo/norsk-sdk": "^1.0.402-2025-05-09-2fb1dbba",
26
- "@norskvideo/norsk-studio": "1.27.0-2025-05-09-832c7b88",
25
+ "@norskvideo/norsk-sdk": "^1.0.402-2025-05-14-5b471ee6",
26
+ "@norskvideo/norsk-studio": "1.27.0-2025-05-14-7d3dbd14",
27
27
  "@norskvideo/webrtc-client": "^0.1.2",
28
28
  "@react-icons/all-files": "^4.1.0",
29
29
  "body-parser": "^1.20.2",
@@ -1,3 +0,0 @@
1
- import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
- import type { CascadingSwitchConfig, CascadingSwitchEvent, CascadingSwitchState } from "./runtime";
3
- export default function ({ defineComponent, Av, common: { Resolutions, FrameRates }, }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<CascadingSwitchConfig, CascadingSwitchState, object, CascadingSwitchEvent>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/processor.cascadingSwitch/info.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { CascadingSwitchState, CascadingSwitchConfig } from "./runtime";
2
- declare function InlineView({ state, config }: {
3
- state: CascadingSwitchState;
4
- config: CascadingSwitchConfig;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- export default InlineView;
@@ -1 +0,0 @@
1
- {"version":3,"file":"inline-view.js","sourceRoot":"","sources":["../../src/processor.cascadingSwitch/inline-view.tsx"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,2CAA2C,CAAC;AAClE,MAAM,gBAAgB,GAAG,8CAA8C,CAAC;AACxE,MAAM,eAAe,GAAG,+CAA+C,CAAC;AAOxE,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAkE;IACnG,OAAO,6DACL,qDAAgB,EAChB,2CACG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC3B,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;wBACvB,gCAAY,SAAS,EAAE,aAAa,aAAG,CAAC,aAA/B,CAAC,CAA2C;wBACrD,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAClC,CAAC,CAAC,gCAAY,SAAS,EAAE,gBAAgB,aAAG,CAAC,qBAAlC,CAAC,CAAmD;4BAC/D,CAAC,CAAC,gCAAY,SAAS,EAAE,eAAe,aAAG,CAAC,oBAAjC,CAAC,CAAiD,CAClE,EACD,+BAAmB,SAAS,EAAE,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,0BAAzF,UAAU,CAA8F,IAC7G,IACJ,CAAA;AACL,CAAC;AAED,kBAAe,UAAU,CAAC"}