@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
File without changes
package/lib/info.js CHANGED
@@ -67,20 +67,22 @@ const info_24 = __importDefault(require("./processor.audioEncoder/info"));
67
67
  AllComponents.push((r) => (0, info_24.default)(r));
68
68
  const info_25 = __importDefault(require("./processor.browserOverlay/info"));
69
69
  AllComponents.push((r) => (0, info_25.default)(r));
70
- const info_26 = __importDefault(require("./processor.cascadingSwitch/info"));
70
+ const info_26 = __importDefault(require("./processor.fixedLadder/info"));
71
71
  AllComponents.push((r) => (0, info_26.default)(r));
72
- const info_27 = __importDefault(require("./processor.fixedLadder/info"));
72
+ const info_27 = __importDefault(require("./processor.makeProgram/info"));
73
73
  AllComponents.push((r) => (0, info_27.default)(r));
74
- const info_28 = __importDefault(require("./processor.makeProgram/info"));
74
+ const info_28 = __importDefault(require("./processor.multiview/info"));
75
75
  AllComponents.push((r) => (0, info_28.default)(r));
76
- const info_29 = __importDefault(require("./processor.multiview/info"));
76
+ const info_29 = __importDefault(require("./processor.onscreenGraphic/info"));
77
77
  AllComponents.push((r) => (0, info_29.default)(r));
78
- const info_30 = __importDefault(require("./processor.onscreenGraphic/info"));
78
+ const info_30 = __importDefault(require("./processor.smartSingleMediaSwitch/info"));
79
79
  AllComponents.push((r) => (0, info_30.default)(r));
80
- const info_31 = __importDefault(require("./processor.streamKeyOverride/info"));
80
+ const info_31 = __importDefault(require("./processor.smartSourceSwitch/info"));
81
81
  AllComponents.push((r) => (0, info_31.default)(r));
82
- const info_32 = __importDefault(require("./processor.videoDecoder/info"));
82
+ const info_32 = __importDefault(require("./processor.streamKeyOverride/info"));
83
83
  AllComponents.push((r) => (0, info_32.default)(r));
84
- const info_33 = __importDefault(require("./util.stats.latency/info"));
84
+ const info_33 = __importDefault(require("./processor.videoDecoder/info"));
85
85
  AllComponents.push((r) => (0, info_33.default)(r));
86
+ const info_34 = __importDefault(require("./util.stats.latency/info"));
87
+ AllComponents.push((r) => (0, info_34.default)(r));
86
88
  //# sourceMappingURL=info.js.map
package/lib/info.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,8 @@ function default_1({ defineComponent, mappingsToStreams, StreamMappingForm, vali
63
63
  ip: desc.config.host
64
64
  };
65
65
  },
66
+ extraValidation: (_ctx) => {
67
+ },
66
68
  runtime: {
67
69
  initialState: () => ({
68
70
  connectedStreams: [],
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/input.srt-listener/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/input.srt-listener/info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
+ import type { SmartSingleMediaSwitchConfig, SmartSingleMediaSwitchEvent, SmartSingleMediaSwitchState } from "./runtime";
3
+ export default function ({ defineComponent, All, common: { Resolutions, FrameRates }, streamMatchesFilter }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<SmartSingleMediaSwitchConfig, SmartSingleMediaSwitchState, object, SmartSingleMediaSwitchEvent>;
@@ -7,84 +7,89 @@ exports.default = default_1;
7
7
  const source_selection_1 = __importDefault(require("./source-selection"));
8
8
  const inline_view_1 = __importDefault(require("./inline-view"));
9
9
  const FaSlidersH_1 = require("@react-icons/all-files/fa/FaSlidersH");
10
- function default_1({ defineComponent, Av, common: { Resolutions, FrameRates }, }) {
10
+ function default_1({ defineComponent, All, common: { Resolutions, FrameRates }, streamMatchesFilter }) {
11
+ function patchConfigFromSubscription(cfg, sub) {
12
+ const potentiallyNewSources = sub.expectedStreams;
13
+ potentiallyNewSources.forEach((s) => {
14
+ if (!cfg.sources.find((e) => streamMatchesFilter(e, s))) {
15
+ cfg.sources.push(s);
16
+ }
17
+ });
18
+ }
19
+ function patchMissingSubscriptions(config, subscriptions) {
20
+ const allSources = subscriptions.flatMap((s) => s.expectedStreams);
21
+ config.sources = config.sources.filter((e) => !!allSources.find((s) => streamMatchesFilter(e, s)));
22
+ }
11
23
  return defineComponent({
12
- identifier: 'processor.cascadingSwitch',
24
+ identifier: 'processor.smartSingleMediaSwitch',
13
25
  category: 'processor',
14
- name: "Cascading Switch",
15
- description: "This component manages multiple A/V (audio and video) sources based on priority, allowing for the configuration of settings such as resolution, frame rate, sample rate, and channel layout.",
26
+ name: "Smart Single Media Switch",
27
+ description: "This component allows the switching between multiple streams of a single media type",
16
28
  icon: FaSlidersH_1.FaSlidersH,
17
29
  subscription: {
18
30
  accepts: {
19
31
  type: 'dynamic-streams',
20
- mode: { type: 'multiple', groupBy: "sourceName" },
21
- streams: () => Av.map((media) => ({ media }))
32
+ streams: () => All.map((media) => ({ media }))
22
33
  },
23
34
  produces: {
24
- type: "simple-stream",
25
- audio: true,
26
- video: true
35
+ type: "dynamic-streams",
36
+ streams: (cfg, input) => {
37
+ if (input.length === 0)
38
+ return [];
39
+ return [
40
+ { media: input[0].media, displayName: cfg.id, sourceName: cfg.id }
41
+ ];
42
+ }
27
43
  }
28
44
  },
29
45
  extraValidation: function (ctx) {
30
- ctx.subscriptions.forEach((s) => {
31
- if (!s.streams.filter.find((f) => f.media == "video")) {
32
- ctx.addError(`Subscription to ${s.source} is missing video`);
33
- }
34
- if (!s.streams.filter.find((f) => f.media == "audio")) {
35
- ctx.addError(`Subscription to ${s.source} is missing audio`);
36
- }
37
- if (s.streams.type == 'take-all-streams') {
38
- ctx.addError(`Subscription to ${s.source} could have multiple streams, this node only accepts a single stream from each source`);
39
- }
40
- if (s.streams.type == 'take-specific-streams' && s.streams.filter.length > 1) {
41
- ctx.addError(`Subscription to ${s.source} could have multiple streams, this node only accepts a single stream from each source`);
42
- }
43
- });
46
+ const streams = ctx.subscriptions.flatMap((s) => s.expectedStreams);
47
+ const uniqueMedia = streams.map((i) => i.media).filter((m, i, a) => a.indexOf(m) === i);
48
+ if (uniqueMedia.length > 1) {
49
+ ctx.addError("Only a single media type be be subscribed to by this component");
50
+ }
44
51
  },
45
52
  display: (desc) => {
46
53
  return {
47
54
  resolution: desc.config.resolution.width.toString() + "x" + desc.config.resolution.height.toString(),
48
55
  frameRate: desc.config.frameRate.frames.toString() + "/" + desc.config.frameRate.seconds.toString(),
49
- sources: desc.config.sources.join(",")
56
+ sources: desc.config.sources.map((s) => s.displayName).join(",")
50
57
  };
51
58
  },
52
59
  css: ["extra.css"],
53
60
  designtime: {
54
61
  uiEvents: {
55
62
  onSubscriptionAdded: function (sub) {
56
- if (sub.source) {
57
- this.config.sources.push(sub.source);
58
- }
63
+ patchConfigFromSubscription(this.config, sub);
59
64
  },
60
- onSubscriptionRemoved: function (sub) {
61
- this.config.sources = this.config.sources.filter((s) => s != sub.source);
65
+ onSubscriptionRemoved: function () {
66
+ patchMissingSubscriptions(this.config, this.subscriptions);
62
67
  },
63
- onGlobalNodeUpdated: function (node, id) {
64
- if (node.id != id) {
65
- this.config.sources = this.config.sources.map((s) => s == id ? node.id : s);
66
- }
67
- },
68
- onGlobalNodeRemoved: function (_node, id) {
69
- this.config.sources = this.config.sources.filter((s) => s != id);
68
+ onNodeUpdated: function () {
69
+ this.subscriptions.forEach((s) => patchConfigFromSubscription(this.config, s));
70
+ patchMissingSubscriptions(this.config, this.subscriptions);
70
71
  },
72
+ onSubscriptionUpdated: function (sub) {
73
+ patchConfigFromSubscription(this.config, sub);
74
+ patchMissingSubscriptions(this.config, this.subscriptions);
75
+ }
71
76
  }
72
77
  },
73
78
  runtime: {
74
79
  initialState: () => ({
75
- activeSource: '',
80
+ activeSource: -1,
76
81
  availableSources: []
77
82
  }),
78
83
  handleEvent: (ev, state) => {
79
84
  const evType = ev.type;
80
85
  switch (evType) {
81
86
  case 'active-source-changed':
82
- return { ...state, activeSource: ev.activeSource };
87
+ return { ...state, activeSource: ev.activeSourceIndex };
83
88
  case 'source-online':
84
- state.availableSources.push(ev.source);
89
+ state.availableSources.push(ev.sourceIndex);
85
90
  return { ...state };
86
91
  case 'source-offline':
87
- state.availableSources.splice(state.availableSources.indexOf(ev.source), 1);
92
+ state.availableSources.splice(state.availableSources.indexOf(ev.sourceIndex), 1);
88
93
  return { ...state };
89
94
  default:
90
95
  assertUnreachable(evType);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/processor.smartSingleMediaSwitch/info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SmartSingleMediaSwitchState, SmartSingleMediaSwitchConfig } from "./runtime";
2
+ declare function InlineView({ state, config }: {
3
+ state: SmartSingleMediaSwitchState;
4
+ config: SmartSingleMediaSwitchConfig;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export default InlineView;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const activeClasses = "active text-green-500 dark:text-green-300";
5
+ const availableClasses = "available text-green-500 dark:text-green-300";
6
+ const inactiveClasses = "inactive text-orange-500 dark:text-orange-300";
7
+ function InlineView({ state, config }) {
8
+ return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h5", { children: "Sources" }), (0, jsx_runtime_1.jsxs)("ul", { children: [config.sources.map((s, i) => state.activeSource == i ?
9
+ (0, jsx_runtime_1.jsxs)("li", { className: activeClasses, children: [s.displayName, " <--"] }, i)
10
+ : state.availableSources.includes(i)
11
+ ? (0, jsx_runtime_1.jsxs)("li", { className: availableClasses, children: [s.displayName, " (available)"] }, i)
12
+ : (0, jsx_runtime_1.jsxs)("li", { className: inactiveClasses, children: [s.displayName, " (inactive)"] }, i)), (0, jsx_runtime_1.jsx)("li", { className: state.activeSource < 0 ? activeClasses : availableClasses, children: "fallback" }, "fallback")] })] });
13
+ }
14
+ exports.default = InlineView;
15
+ //# sourceMappingURL=inline-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-view.js","sourceRoot":"","sources":["../../src/processor.smartSingleMediaSwitch/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,EAAgF;IACjH,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,CAAC,WAAW,aAA3C,CAAC,CAAuD;wBACjE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAClC,CAAC,CAAC,gCAAY,SAAS,EAAE,gBAAgB,aAAG,CAAC,CAAC,WAAW,qBAA9C,CAAC,CAA+D;4BAC3E,CAAC,CAAC,gCAAY,SAAS,EAAE,eAAe,aAAG,CAAC,CAAC,WAAW,oBAA7C,CAAC,CAA6D,CAC9E,EACD,+BAAmB,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,0BAA/E,UAAU,CAAoF,IAClG,IACL,CAAA;AACL,CAAC;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { ChannelLayout, MediaNodeId, Norsk, SampleRate, StreamMetadata, StreamSwitchSmoothNode, VideoTestcardGeneratorNode } from '@norskvideo/norsk-sdk';
2
+ import { SilenceSource } from '../input.silence/runtime';
3
+ import { OnCreated, ServerComponentDefinition, StudioComponentInputStream, StudioRuntime } from '@norskvideo/norsk-studio/lib/extension/runtime-types';
4
+ import { CustomAutoDuplexNode } from "@norskvideo/norsk-studio/lib/extension/base-nodes";
5
+ import { Media, OutputStreamDefinition } from '@norskvideo/norsk-studio/lib/extension/client-types';
6
+ export type SmartSingleMediaSwitchConfig = {
7
+ id: MediaNodeId;
8
+ displayName: string;
9
+ notes?: string;
10
+ resolution: {
11
+ width: number;
12
+ height: number;
13
+ };
14
+ frameRate: {
15
+ frames: number;
16
+ seconds: number;
17
+ };
18
+ sampleRate: SampleRate;
19
+ channelLayout: ChannelLayout;
20
+ sources: OutputStreamDefinition[];
21
+ };
22
+ export type SmartSingleMediaSwitchState = {
23
+ activeSource: number;
24
+ availableSources: number[];
25
+ };
26
+ export type SmartSingleMediaSwitchEvent = {
27
+ type: 'active-source-changed';
28
+ activeSourceIndex: number;
29
+ } | {
30
+ type: 'source-online';
31
+ sourceIndex: number;
32
+ } | {
33
+ type: 'source-offline';
34
+ sourceIndex: number;
35
+ };
36
+ export type SmartSingleMediaSwitchCommand = object;
37
+ export default class SmartSingleMediaSwitchDefinition implements ServerComponentDefinition<SmartSingleMediaSwitchConfig, SmartSingleMediaSwitch, SmartSingleMediaSwitchState, SmartSingleMediaSwitchCommand, SmartSingleMediaSwitchEvent> {
38
+ create(norsk: Norsk, cfg: SmartSingleMediaSwitchConfig, cb: OnCreated<SmartSingleMediaSwitch>, { updates }: StudioRuntime<SmartSingleMediaSwitchState, SmartSingleMediaSwitchCommand, SmartSingleMediaSwitchEvent>): Promise<void>;
39
+ }
40
+ export declare function definitionToKey(s: OutputStreamDefinition): string;
41
+ type SmartSingleMediaSwitchConfigComplete = {
42
+ onActiveSourceChanged: (source: string) => void;
43
+ onSourceOnline: (source: string) => void;
44
+ onSourceOffline: (source: string) => void;
45
+ } & SmartSingleMediaSwitchConfig;
46
+ export declare class SmartSingleMediaSwitch extends CustomAutoDuplexNode {
47
+ norsk: Norsk;
48
+ cfg: SmartSingleMediaSwitchConfigComplete;
49
+ audio?: SilenceSource;
50
+ video?: VideoTestcardGeneratorNode;
51
+ smooth?: StreamSwitchSmoothNode<string>;
52
+ initialised: Promise<void>;
53
+ activeSource: string;
54
+ availableSources: string[];
55
+ subscriptions: StudioComponentInputStream[];
56
+ media: Media[];
57
+ initialise(): Promise<void>;
58
+ constructor(norsk: Norsk, cfg: SmartSingleMediaSwitchConfigComplete);
59
+ onTransitionComplete(): void;
60
+ onSwitchContext(allStreams: Map<string, StreamMetadata[]>): Promise<void>;
61
+ subscribe(subs: StudioComponentInputStream[]): Promise<void>;
62
+ close(): Promise<void>;
63
+ }
64
+ export {};
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SmartSingleMediaSwitch = void 0;
4
+ exports.definitionToKey = definitionToKey;
5
+ const norsk_sdk_1 = require("@norskvideo/norsk-sdk");
6
+ const runtime_1 = require("../input.silence/runtime");
7
+ const base_nodes_1 = require("@norskvideo/norsk-studio/lib/extension/base-nodes");
8
+ const logging_1 = require("@norskvideo/norsk-studio/lib/server/logging");
9
+ class SmartSingleMediaSwitchDefinition {
10
+ async create(norsk, cfg, cb, { updates }) {
11
+ const onActiveSourceChanged = (activeSource) => {
12
+ updates.raiseEvent({ type: 'active-source-changed', activeSourceIndex: cfg.sources.findIndex((s) => definitionToKey(s) == activeSource) });
13
+ };
14
+ const onSourceOnline = (source) => {
15
+ updates.raiseEvent({ type: 'source-online', sourceIndex: cfg.sources.findIndex((s) => definitionToKey(s) == source) });
16
+ };
17
+ const onSourceOffline = (source) => {
18
+ updates.raiseEvent({ type: 'source-offline', sourceIndex: cfg.sources.findIndex((s) => definitionToKey(s) == source) });
19
+ };
20
+ const cfgWithHooks = { onActiveSourceChanged, onSourceOnline, onSourceOffline, ...cfg };
21
+ const node = new SmartSingleMediaSwitch(norsk, cfgWithHooks);
22
+ await node.initialised;
23
+ cb(node);
24
+ }
25
+ }
26
+ exports.default = SmartSingleMediaSwitchDefinition;
27
+ function definitionToKey(s) {
28
+ const components = [s.media];
29
+ if (s.sourceName)
30
+ components.push(s.sourceName.toString());
31
+ if (s.programNumber)
32
+ components.push(s.programNumber.toString());
33
+ if (s.streamId)
34
+ components.push(s.streamId.toString());
35
+ if (s.renditionName)
36
+ components.push(s.renditionName.toString());
37
+ return components.join("-");
38
+ }
39
+ class SmartSingleMediaSwitch extends base_nodes_1.CustomAutoDuplexNode {
40
+ norsk;
41
+ cfg;
42
+ audio;
43
+ video;
44
+ smooth;
45
+ initialised;
46
+ activeSource = '';
47
+ availableSources = [];
48
+ subscriptions = [];
49
+ media = [];
50
+ async initialise() {
51
+ const audio = await runtime_1.SilenceSource.create(this.norsk, {
52
+ id: `${this.cfg.id}-audio-silence`,
53
+ displayName: `${this.cfg.id}-audio-silence`,
54
+ channelLayout: this.cfg.channelLayout,
55
+ sampleRate: this.cfg.sampleRate,
56
+ });
57
+ const video = await this.norsk.input.videoTestCard({
58
+ id: `${this.cfg.id}-video-card`,
59
+ sourceName: 'video-card',
60
+ resolution: this.cfg.resolution,
61
+ frameRate: this.cfg.frameRate,
62
+ pattern: 'black',
63
+ });
64
+ const smooth = await this.norsk.processor.control.streamSwitchSmooth({
65
+ id: `${this.cfg.id}-switch`,
66
+ outputSource: this.cfg.id,
67
+ activeSource: "fallback",
68
+ outputResolution: this.cfg.resolution,
69
+ frameRate: this.cfg.frameRate,
70
+ sampleRate: this.cfg.sampleRate,
71
+ channelLayout: this.cfg.channelLayout,
72
+ onInboundContextChange: this.onSwitchContext.bind(this),
73
+ onTransitionComplete: this.onTransitionComplete.bind(this)
74
+ });
75
+ this.audio = audio;
76
+ this.video = video;
77
+ this.smooth = smooth;
78
+ this.setup({ input: smooth, output: [smooth] });
79
+ void this.subscribe([]);
80
+ }
81
+ constructor(norsk, cfg) {
82
+ super(cfg.id);
83
+ this.norsk = norsk;
84
+ this.cfg = cfg;
85
+ this.initialised = this.initialise();
86
+ }
87
+ onTransitionComplete() {
88
+ this.cfg.onActiveSourceChanged?.(this.activeSource);
89
+ }
90
+ async onSwitchContext(allStreams) {
91
+ const oldSources = this.availableSources;
92
+ this.availableSources = this.cfg.sources.filter((source) => {
93
+ return !!allStreams.get(definitionToKey(source));
94
+ }).map((s) => definitionToKey(s));
95
+ (0, logging_1.debuglog)("Available sources discovered", { sources: this.availableSources, id: this.id });
96
+ const active = this.availableSources.at(0);
97
+ if (active && this.activeSource != active) {
98
+ this.activeSource = active;
99
+ await this.smooth?.switchSource(active);
100
+ }
101
+ else if (!active && this.activeSource != 'fallback') {
102
+ this.activeSource = 'fallback';
103
+ await this.smooth?.switchSource("fallback");
104
+ }
105
+ for (const existing of oldSources) {
106
+ if (!this.availableSources.includes(existing))
107
+ this.cfg?.onSourceOffline(existing);
108
+ }
109
+ for (const current of this.availableSources) {
110
+ if (!oldSources.includes(current))
111
+ this.cfg?.onSourceOnline(current);
112
+ }
113
+ }
114
+ async subscribe(subs) {
115
+ this.subscriptions = subs;
116
+ this.media = subs.map((s) => s.definition.media).filter((m, i, a) => a.indexOf(m) == i);
117
+ const subscriptions = subs.flatMap((s) => {
118
+ return s.selectToPin(definitionToKey(s.definition));
119
+ });
120
+ if (this.audio && this.media.includes("audio"))
121
+ subscriptions.push({ source: (this.audio.relatedMediaNodes.output[0]), sourceSelector: (0, norsk_sdk_1.audioToPin)("fallback") });
122
+ if (this.video && this.media.includes("video"))
123
+ subscriptions.push({
124
+ source: this.video, sourceSelector: (0, norsk_sdk_1.videoToPin)("fallback")
125
+ });
126
+ this.smooth?.subscribeToPins(subscriptions, () => true);
127
+ }
128
+ async close() {
129
+ await super.close();
130
+ await this.audio?.close();
131
+ await this.video?.close();
132
+ }
133
+ }
134
+ exports.SmartSingleMediaSwitch = SmartSingleMediaSwitch;
135
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/processor.smartSingleMediaSwitch/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { OutputStreamDefinition } from "@norskvideo/norsk-studio/lib/extension/client-types";
2
+ type OrderInputProps = {
3
+ defaultValue?: OutputStreamDefinition[];
4
+ id: string;
5
+ onChanged: (value: OutputStreamDefinition[]) => void;
6
+ };
7
+ declare function OrderInput(props: OrderInputProps): import("react/jsx-runtime").JSX.Element;
8
+ export default OrderInput;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
5
+ function OrderInput(props) {
6
+ (0, react_1.useEffect)(() => { props.onChanged(props.defaultValue ?? []); }, [props.defaultValue]);
7
+ const [value, setValue] = (0, react_1.useState)(props.defaultValue ?? []);
8
+ if (value.length == 0) {
9
+ return (0, jsx_runtime_1.jsx)("p", { className: "node-editor-helper-text", children: "Sources will appear here when subscriptions have been added to this node" });
10
+ }
11
+ else {
12
+ return (0, jsx_runtime_1.jsx)("div", { id: props.id, children: (0, jsx_runtime_1.jsx)("ul", { children: value.map((v, ix) => {
13
+ return (0, jsx_runtime_1.jsxs)("li", { className: "flex", children: [(0, jsx_runtime_1.jsx)("span", { className: "node-editor-label flex-grow", children: v.displayName }), ix == 0 ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}) : (0, jsx_runtime_1.jsx)("svg", { onClick: moveUp(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18" }) }), ix == value.length - 1 ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}) : (0, jsx_runtime_1.jsx)("svg", { onClick: moveDown(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3" }) })] }, ix);
14
+ }) }) });
15
+ }
16
+ function moveUp(ix) {
17
+ return () => {
18
+ const nv = [...value];
19
+ nv[ix] = value[ix - 1];
20
+ nv[ix - 1] = value[ix];
21
+ setValue(nv);
22
+ props.onChanged(nv);
23
+ };
24
+ }
25
+ function moveDown(ix) {
26
+ return () => {
27
+ const nv = [...value];
28
+ nv[ix + 1] = value[ix];
29
+ nv[ix] = value[ix + 1];
30
+ setValue(nv);
31
+ props.onChanged(nv);
32
+ };
33
+ }
34
+ }
35
+ exports.default = OrderInput;
36
+ //# sourceMappingURL=source-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-selection.js","sourceRoot":"","sources":["../../src/processor.smartSingleMediaSwitch/source-selection.tsx"],"names":[],"mappings":";;;AACA,iCAA4C;AAQ5C,SAAS,UAAU,CAAC,KAAsB;IAExC,IAAA,iBAAS,EAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,8BAAG,SAAS,EAAC,yBAAyB,yFAA6E,CAAA;IAC5H,CAAC;SAAM,CAAC;QACN,OAAO,gCAAK,EAAE,EAAE,KAAK,CAAC,EAAE,YACtB,yCACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;oBACnB,OAAO,gCAAa,SAAS,EAAC,MAAM,aAClC,iCAAM,SAAS,EAAC,6BAA6B,YAAE,CAAC,CAAC,WAAW,GAAQ,EACnE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kDAAK,CAAC,CAAC,CAAC,gCAAK,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAC,mEAAmE,YAC7M,iCAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,uCAAuC,GAAG,GAC3F,EACL,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kDAAK,CAAC,CAAC,CAAC,gCAAK,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAC,mEAAmE,YAC9N,iCAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,2CAA2C,GAAG,GAC/F,KAPQ,EAAE,CAQb,CAAA;gBACP,CAAC,CAAC,GACC,GACA,CAAA;IACT,CAAC;IAED,SAAS,MAAM,CAAC,EAAU;QACxB,OAAO,GAAG,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YACtB,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACvB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YACvB,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAA;IACH,CAAC;IAED,SAAS,QAAQ,CAAC,EAAU;QAC1B,OAAO,GAAG,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YACtB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YACvB,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACvB,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAA;IACH,CAAC;AACH,CAAC;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
+ import type { SmartSourceSwitchConfig, SmartSourceSwitchEvent, SmartSourceSwitchState } from "./runtime";
3
+ export default function ({ defineComponent, Av, common: { Resolutions, FrameRates }, }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<SmartSourceSwitchConfig, SmartSourceSwitchState, object, SmartSourceSwitchEvent>;