@norskvideo/norsk-studio-source-switcher 1.27.0-2025-03-10-85778fae → 1.27.0-2025-03-13-5c343278
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/info.js +51 -40
- package/client/tailwind.css +0 -4
- package/lib/fullscreen-view.js +20 -25
- package/lib/fullscreen-view.js.map +1 -1
- package/lib/info.js +28 -11
- package/lib/info.js.map +1 -1
- package/lib/inline-view.js +5 -5
- package/lib/inline-view.js.map +1 -1
- package/lib/runtime.js +99 -124
- package/lib/runtime.js.map +1 -1
- package/lib/summary-view.js +9 -8
- package/lib/summary-view.js.map +1 -1
- package/lib/test/runtime.js +108 -75
- package/lib/test/runtime.js.map +1 -1
- package/package.json +3 -3
package/client/info.js
CHANGED
@@ -298,7 +298,7 @@ __export(inline_view_exports, {
|
|
298
298
|
default: () => inline_view_default
|
299
299
|
});
|
300
300
|
function InlineView({ state }) {
|
301
|
-
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [(0, import_jsx_runtime.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime.jsx)("ul", { children: state.knownSources.map((s, i) => state.activeSource.
|
301
|
+
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [(0, import_jsx_runtime.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime.jsx)("ul", { children: state.knownSources.map((s, i) => state.activeSource.sourceName == s.sourceName ? (0, import_jsx_runtime.jsxs)("li", { className: activeClasses, children: [s.sourceName, " <--"] }, i) : state.availableSources.find((a) => a.sourceName == s.sourceName) ? (0, import_jsx_runtime.jsxs)("li", { className: availableClasses, children: [s.sourceName, " (available)"] }, i) : (0, import_jsx_runtime.jsxs)("li", { className: inactiveClasses, children: [s.sourceName, " (inactive)"] }, i)) })] });
|
302
302
|
}
|
303
303
|
var import_jsx_runtime, activeClasses, availableClasses, inactiveClasses, inline_view_default;
|
304
304
|
var init_inline_view = __esm({
|
@@ -330,7 +330,7 @@ function SummaryView({ state, config, sendCommand }) {
|
|
330
330
|
const [initialLoad, setInitialLoad] = (0, import_react.useState)(true);
|
331
331
|
(0, import_react.useEffect)(() => {
|
332
332
|
if (previewSource !== activePlayerSource || initialLoad) {
|
333
|
-
const player = previewSource == void 0 ? state.previewPlayerUrl : state.players.find((p) => p.source.
|
333
|
+
const player = previewSource == void 0 ? state.previewPlayerUrl : state.players.find((p) => p.source.sourceName == previewSource.sourceName)?.player;
|
334
334
|
if (!player)
|
335
335
|
return;
|
336
336
|
if (currentClient) {
|
@@ -349,9 +349,9 @@ function SummaryView({ state, config, sendCommand }) {
|
|
349
349
|
initialLoad,
|
350
350
|
state.players
|
351
351
|
]);
|
352
|
-
return (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [(0, import_jsx_runtime2.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime2.jsx)("ul", { children: state.knownSources.map((s, i) => state.activeSource.
|
352
|
+
return (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [(0, import_jsx_runtime2.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime2.jsx)("ul", { children: state.knownSources.map((s, i) => state.activeSource.sourceName == s.sourceName && state.activeSource.sourceName == s.sourceName ? (0, import_jsx_runtime2.jsxs)("li", { className: activeClasses2, children: [s.sourceName, " <--"] }, i) : state.availableSources.find((a) => s.sourceName == a.sourceName) ? (0, import_jsx_runtime2.jsxs)("li", { className: availableClasses2, children: [s.sourceName, " (available)"] }, i) : (0, import_jsx_runtime2.jsxs)("li", { className: inactiveClasses2, children: [s.sourceName, " (inactive)"] }, i)) }), config.enablePreviews ? (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [(0, import_jsx_runtime2.jsx)("h4", { children: previewSource ? previewSource.sourceName : "Preview" }), (0, import_jsx_runtime2.jsx)("div", { id: `${config.id}-preview` })] }) : null, (0, import_jsx_runtime2.jsx)("label", { htmlFor: "select-preview", className: "mt-2", children: "Source" }), (0, import_jsx_runtime2.jsxs)("select", { id: "select-preview", className: "mt-2 node-editor-select-input", onChange: (e) => {
|
353
353
|
setPreviewSource(JSON.parse(e.currentTarget.value));
|
354
|
-
}, children: [(0, import_jsx_runtime2.jsx)("option", { selected: previewSource === void 0, children: "---" }), state.availableSources.map((s, i) => (0, import_jsx_runtime2.jsx)("option", { selected: previewSource == s, value: JSON.stringify(s), children: s.
|
354
|
+
}, children: [(0, import_jsx_runtime2.jsx)("option", { selected: previewSource === void 0, children: "---" }), state.availableSources.map((s, i) => (0, import_jsx_runtime2.jsx)("option", { selected: previewSource == s, value: JSON.stringify(s), children: s.sourceName }, i))] }), previewSource ? (0, import_jsx_runtime2.jsx)("button", { type: "button", className: "mt-2 mb-2 text-white w-full justify-center bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800", onClick: (e) => {
|
355
355
|
e.preventDefault();
|
356
356
|
sendCommand({ type: "select-source", source: previewSource, overlays: [] });
|
357
357
|
setPreviewSource(void 0);
|
@@ -2873,9 +2873,9 @@ function createPlayerElement(stream, container) {
|
|
2873
2873
|
return element;
|
2874
2874
|
}
|
2875
2875
|
async function maybeCreatePlayer(created, source, url) {
|
2876
|
-
if (!created.find((c) => c.source.
|
2876
|
+
if (!created.find((c) => c.source.sourceName == source.sourceName)) {
|
2877
2877
|
const container = document.getElementById(mkContainerId(source)) || void 0;
|
2878
|
-
const client = new MyWhepClient({ url, container,
|
2878
|
+
const client = new MyWhepClient({ url, container, sourceName: source.sourceName });
|
2879
2879
|
await client.start();
|
2880
2880
|
const next = [...created];
|
2881
2881
|
next.push({
|
@@ -2901,17 +2901,17 @@ function FullScreenView(multiCamera) {
|
|
2901
2901
|
nextCreated = await maybeCreatePlayer(nextCreated, entry.source, entry.player);
|
2902
2902
|
}
|
2903
2903
|
if (multiCamera.state.previewPlayerUrl)
|
2904
|
-
nextCreated = await maybeCreatePlayer(nextCreated, {
|
2904
|
+
nextCreated = await maybeCreatePlayer(nextCreated, { sourceName: "preview" }, multiCamera.state.previewPlayerUrl);
|
2905
2905
|
let initialLivePreviewSource;
|
2906
2906
|
if (state.livePreviewSource === void 0) {
|
2907
|
-
const fallbackSource = nextCreated.find((s) => s.source.
|
2907
|
+
const fallbackSource = nextCreated.find((s) => s.source.sourceName === "fallback");
|
2908
2908
|
if (fallbackSource) {
|
2909
2909
|
initialLivePreviewSource = fallbackSource;
|
2910
2910
|
}
|
2911
2911
|
}
|
2912
2912
|
setState({ ...state, createdClient: nextCreated, livePreviewSource: initialLivePreviewSource });
|
2913
2913
|
for (const c of nextCreated) {
|
2914
|
-
if (!multiCamera.state.players.find((s) => s.source.
|
2914
|
+
if (!multiCamera.state.players.find((s) => s.source.sourceName == c.source.sourceName)) {
|
2915
2915
|
c.client.videoElements.forEach((e) => {
|
2916
2916
|
e.remove();
|
2917
2917
|
});
|
@@ -2922,18 +2922,17 @@ function FullScreenView(multiCamera) {
|
|
2922
2922
|
accept: "video",
|
2923
2923
|
ondrop: (e) => {
|
2924
2924
|
const video = e.relatedTarget;
|
2925
|
-
const
|
2926
|
-
|
2927
|
-
if (!streamId) {
|
2925
|
+
const source = video.getAttribute("data-source");
|
2926
|
+
if (!source) {
|
2928
2927
|
} else {
|
2929
2928
|
const targetRect = refLivePreviewVideo.current?.getBoundingClientRect();
|
2930
2929
|
if (targetRect) {
|
2931
2930
|
const relativeX = e.dragEvent.page.x - targetRect?.left;
|
2932
2931
|
const relativeY = e.dragEvent.page.y - targetRect?.top;
|
2933
2932
|
setState((state2) => {
|
2934
|
-
const sourceVideo = state2.createdClient.find((c) => c.source.
|
2933
|
+
const sourceVideo = state2.createdClient.find((c) => c.source.sourceName == source);
|
2935
2934
|
if (!sourceVideo) {
|
2936
|
-
console.warn("Couldn't find source to build overlay", {
|
2935
|
+
console.warn("Couldn't find source to build overlay", { source });
|
2937
2936
|
return state2;
|
2938
2937
|
}
|
2939
2938
|
const videoRect = video.getBoundingClientRect();
|
@@ -2991,7 +2990,7 @@ function FullScreenView(multiCamera) {
|
|
2991
2990
|
}, [state.livePreviewSource]);
|
2992
2991
|
const takeButtonClasses = "text-gray-900 bg-white border border-gray-300 focus:outline-none focus:ring-0 focus:ring-gray-200 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 dark:bg-gray-800 dark:border-gray-600 dark:focus:ring-gray-700 w-full dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700 dark:hover:border-gray-600";
|
2993
2992
|
const sourcesSorted = multiCamera.state.availableSources.sort(sortSource).reduce(({ fallback, inputs }, s) => {
|
2994
|
-
if (s.
|
2993
|
+
if (s.sourceName === "fallback") {
|
2995
2994
|
return { fallback: s, inputs };
|
2996
2995
|
}
|
2997
2996
|
return { fallback, inputs: [...inputs, s] };
|
@@ -3003,7 +3002,7 @@ function FullScreenView(multiCamera) {
|
|
3003
3002
|
const isLive = isSourceSwitchSourceEqual(s, multiCamera.state.activeSource);
|
3004
3003
|
return (0, import_jsx_runtime3.jsxs)("div", { className: "relative", children: [(0, import_jsx_runtime3.jsx)("div", { className: `${isLive ? "border-green-400 border-solid border-2" : ""}`, id: mkContainerId(s) }), (0, import_jsx_runtime3.jsxs)("button", { className: takeButtonClasses, onClick: (_e) => {
|
3005
3004
|
setState({ ...state, livePreviewSource: state.createdClient.find((c) => isSourceSwitchSourceEqual(c.source, s)) });
|
3006
|
-
}, children: ["Preview ", s.
|
3005
|
+
}, children: ["Preview ", s.sourceName] }), (0, import_jsx_runtime3.jsx)("div", { children: isLive ? (0, import_jsx_runtime3.jsx)("span", { className: "absolute top-2 left-2 z-10 px-1 bg-green-300 text-white dark:text-black cursor-default text-xs", children: "Live" }) : (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}) })] }, i);
|
3007
3006
|
}) })] }), (0, import_jsx_runtime3.jsxs)("div", { id: "live-views", className: "grid grid-cols-2 gap-4 mb-6", children: [(0, import_jsx_runtime3.jsxs)("div", { id: "video-live-preview", className: "h-full relative 2xl:w-8/12 lg:w-10/12 justify-self-end", children: [(0, import_jsx_runtime3.jsx)("video", { onClick: () => {
|
3008
3007
|
setState((s) => {
|
3009
3008
|
clearSelection(s.overlays);
|
@@ -3089,13 +3088,13 @@ function FullScreenView(multiCamera) {
|
|
3089
3088
|
})
|
3090
3089
|
});
|
3091
3090
|
}
|
3092
|
-
}, children: ["Take ", state.overlays.length > 0 ? "Composition" : state.livePreviewSource?.source.
|
3091
|
+
}, children: ["Take ", state.overlays.length > 0 ? "Composition" : state.livePreviewSource?.source.sourceName] }), state.overlays.length > 0 ? (0, import_jsx_runtime3.jsx)("button", { className: takeButtonClasses, onClick: (_e) => {
|
3093
3092
|
setState({ ...state, overlays: [] });
|
3094
|
-
}, children: "Clear Composition" }) : (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}), (0, import_jsx_runtime3.jsxs)("div", { className: "absolute top-0 left-0 z-10 ml-2 mt-2 p-2 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white opacity-70", children: ["Live Preview: ", (0, import_jsx_runtime3.jsx)("span", { id: "active-source-overlay", children: state.livePreviewSource?.source.
|
3093
|
+
}, children: "Clear Composition" }) : (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}), (0, import_jsx_runtime3.jsxs)("div", { className: "absolute top-0 left-0 z-10 ml-2 mt-2 p-2 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white opacity-70", children: ["Live Preview: ", (0, import_jsx_runtime3.jsx)("span", { id: "active-source-overlay", children: state.livePreviewSource?.source.sourceName })] })] }), (0, import_jsx_runtime3.jsxs)("div", { className: "relative 2xl:w-8/12 lg:w-10/12 justify-self-start", children: [(0, import_jsx_runtime3.jsx)("div", { id: "preview-container-preview", className: "w-full" }), (0, import_jsx_runtime3.jsxs)("div", { className: "absolute top-0 left-0 z-10 ml-2 mt-2 p-2 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white opacity-70", children: ["Live Output: ", (0, import_jsx_runtime3.jsx)("span", { id: "active-source-overlay", children: multiCamera.state.activeSource.sourceName })] })] })] })] }) });
|
3095
3094
|
}
|
3096
3095
|
function sortSource(a, b) {
|
3097
|
-
const aKey = a.
|
3098
|
-
const bKey = b.
|
3096
|
+
const aKey = a.sourceName || "";
|
3097
|
+
const bKey = b.sourceName || "";
|
3099
3098
|
if (aKey > bKey)
|
3100
3099
|
return 1;
|
3101
3100
|
if (aKey < bKey)
|
@@ -3103,10 +3102,10 @@ function sortSource(a, b) {
|
|
3103
3102
|
return 0;
|
3104
3103
|
}
|
3105
3104
|
function isSourceSwitchSourceEqual(a, b) {
|
3106
|
-
return a.
|
3105
|
+
return a.sourceName === b.sourceName;
|
3107
3106
|
}
|
3108
3107
|
function mkContainerId(source) {
|
3109
|
-
return `preview-container-${source.
|
3108
|
+
return `preview-container-${source.sourceName}`;
|
3110
3109
|
}
|
3111
3110
|
var import_jsx_runtime3, import_react2, import_interactjs, import_webrtc_client2, DEFAULT_OVERLAY_WIDTH, MyWhepClient, fullscreen_view_default;
|
3112
3111
|
var init_fullscreen_view = __esm({
|
@@ -3121,12 +3120,10 @@ var init_fullscreen_view = __esm({
|
|
3121
3120
|
started;
|
3122
3121
|
resolveStartedPromise;
|
3123
3122
|
mediaStream;
|
3124
|
-
|
3125
|
-
streamKey;
|
3123
|
+
sourceName;
|
3126
3124
|
constructor(config) {
|
3127
3125
|
super(config);
|
3128
|
-
this.
|
3129
|
-
this.streamKey = config.streamKey;
|
3126
|
+
this.sourceName = config.sourceName;
|
3130
3127
|
this.started = new Promise((resolve, _reject) => {
|
3131
3128
|
this.resolveStartedPromise = resolve;
|
3132
3129
|
if (this.mediaStream) {
|
@@ -3159,9 +3156,7 @@ var init_fullscreen_view = __esm({
|
|
3159
3156
|
this.resolveStartedPromise?.(stream);
|
3160
3157
|
e.style.userSelect = "none";
|
3161
3158
|
e.style.touchAction = "none";
|
3162
|
-
e.setAttribute("data-
|
3163
|
-
if (this.streamKey)
|
3164
|
-
e.setAttribute("data-streamkey", this.streamKey);
|
3159
|
+
e.setAttribute("data-source", this.sourceName);
|
3165
3160
|
let element = void 0;
|
3166
3161
|
let target = void 0;
|
3167
3162
|
(0, import_interactjs.default)(e).draggable({
|
@@ -3219,20 +3214,36 @@ function info_default(R) {
|
|
3219
3214
|
description: "This component manages multiple A/V (audio and video) streams from different sources, switching between the sources dynamically.",
|
3220
3215
|
subscription: {
|
3221
3216
|
accepts: {
|
3222
|
-
type: "
|
3223
|
-
|
3217
|
+
type: "dynamic-streams",
|
3218
|
+
mode: { type: "multiple", groupBy: "sourceName" },
|
3219
|
+
streams: () => Av.map((media) => ({ media }))
|
3224
3220
|
},
|
3225
3221
|
produces: {
|
3226
|
-
type: "
|
3227
|
-
|
3222
|
+
type: "simple-stream",
|
3223
|
+
audio: true,
|
3224
|
+
video: true
|
3228
3225
|
}
|
3229
3226
|
},
|
3227
|
+
// I think we can validate on actual input streams at this point?
|
3230
3228
|
extraValidation: (ctx) => {
|
3231
|
-
ctx.subscriptions.
|
3232
|
-
|
3233
|
-
|
3229
|
+
const inputStreams = ctx.subscriptions.flatMap((s) => s.expectedStreams);
|
3230
|
+
const sourceNames = new Set(inputStreams.map((s) => s.sourceName));
|
3231
|
+
if (sourceNames.has(void 0)) {
|
3232
|
+
ctx.addError(`All streams must have a sourceName`);
|
3233
|
+
}
|
3234
|
+
sourceNames.forEach((s) => {
|
3235
|
+
const video = inputStreams.filter((i) => i.sourceName == s && i.media == "video");
|
3236
|
+
const audio = inputStreams.filter((i) => i.sourceName == s && i.media == "audio");
|
3237
|
+
if (video.length == 0) {
|
3238
|
+
ctx.addError(`missing video with sourceName ${s}`);
|
3239
|
+
} else if (video.length > 1) {
|
3240
|
+
ctx.addError(`video with sourceName ${s} exists more than once`);
|
3241
|
+
}
|
3242
|
+
if (audio.length == 0) {
|
3243
|
+
ctx.addError(`missing audio with sourceName ${s}`);
|
3244
|
+
} else if (audio.length > 1) {
|
3245
|
+
ctx.addError(`audio with sourceName ${s} exists more than once`);
|
3234
3246
|
}
|
3235
|
-
ctx.addError("Each subscription for Source Switcher must contain both video *and* audio, subscription to " + s.source + " only contains " + s.validatedStreams.select.join(","));
|
3236
3247
|
});
|
3237
3248
|
},
|
3238
3249
|
display: (desc) => {
|
@@ -3247,7 +3258,7 @@ function info_default(R) {
|
|
3247
3258
|
],
|
3248
3259
|
runtime: {
|
3249
3260
|
initialState: () => ({
|
3250
|
-
activeSource: {
|
3261
|
+
activeSource: { sourceName: "" },
|
3251
3262
|
activeOverlays: [],
|
3252
3263
|
availableSources: [],
|
3253
3264
|
knownSources: [],
|
@@ -3268,8 +3279,8 @@ function info_default(R) {
|
|
3268
3279
|
state.previewPlayerUrl = ev.url;
|
3269
3280
|
return { ...state };
|
3270
3281
|
case "source-offline": {
|
3271
|
-
const sourceIndex = state.availableSources.findIndex((s) => s.
|
3272
|
-
const playerIndex = state.players.findIndex((s) => s.source.
|
3282
|
+
const sourceIndex = state.availableSources.findIndex((s) => s.sourceName == ev.source.sourceName);
|
3283
|
+
const playerIndex = state.players.findIndex((s) => s.source.sourceName == ev.source.sourceName);
|
3273
3284
|
if (sourceIndex >= 0)
|
3274
3285
|
state.availableSources.splice(sourceIndex, 1);
|
3275
3286
|
if (playerIndex >= 0)
|
package/client/tailwind.css
CHANGED
package/lib/fullscreen-view.js
CHANGED
@@ -12,12 +12,10 @@ class MyWhepClient extends webrtc_client_1.WhepClient {
|
|
12
12
|
started;
|
13
13
|
resolveStartedPromise;
|
14
14
|
mediaStream;
|
15
|
-
|
16
|
-
streamKey;
|
15
|
+
sourceName;
|
17
16
|
constructor(config) {
|
18
17
|
super(config);
|
19
|
-
this.
|
20
|
-
this.streamKey = config.streamKey;
|
18
|
+
this.sourceName = config.sourceName;
|
21
19
|
this.started = new Promise((resolve, _reject) => {
|
22
20
|
this.resolveStartedPromise = resolve;
|
23
21
|
if (this.mediaStream) {
|
@@ -51,9 +49,7 @@ class MyWhepClient extends webrtc_client_1.WhepClient {
|
|
51
49
|
this.resolveStartedPromise?.(stream);
|
52
50
|
e.style.userSelect = 'none';
|
53
51
|
e.style.touchAction = 'none';
|
54
|
-
e.setAttribute('data-
|
55
|
-
if (this.streamKey)
|
56
|
-
e.setAttribute('data-streamkey', this.streamKey);
|
52
|
+
e.setAttribute('data-source', this.sourceName);
|
57
53
|
let element = undefined;
|
58
54
|
let target = undefined;
|
59
55
|
(0, interactjs_1.default)(e).draggable({
|
@@ -102,9 +98,9 @@ function createPlayerElement(stream, container) {
|
|
102
98
|
return element;
|
103
99
|
}
|
104
100
|
async function maybeCreatePlayer(created, source, url) {
|
105
|
-
if (!created.find((c) => c.source.
|
101
|
+
if (!created.find((c) => c.source.sourceName == source.sourceName)) {
|
106
102
|
const container = document.getElementById(mkContainerId(source)) || undefined;
|
107
|
-
const client = new MyWhepClient({ url, container,
|
103
|
+
const client = new MyWhepClient({ url, container, sourceName: source.sourceName });
|
108
104
|
await client.start();
|
109
105
|
const next = [...created];
|
110
106
|
next.push({
|
@@ -130,17 +126,17 @@ function FullScreenView(multiCamera) {
|
|
130
126
|
nextCreated = await maybeCreatePlayer(nextCreated, entry.source, entry.player);
|
131
127
|
}
|
132
128
|
if (multiCamera.state.previewPlayerUrl)
|
133
|
-
nextCreated = await maybeCreatePlayer(nextCreated, {
|
129
|
+
nextCreated = await maybeCreatePlayer(nextCreated, { sourceName: 'preview' }, multiCamera.state.previewPlayerUrl);
|
134
130
|
let initialLivePreviewSource;
|
135
131
|
if (state.livePreviewSource === undefined) {
|
136
|
-
const fallbackSource = nextCreated.find((s) => s.source.
|
132
|
+
const fallbackSource = nextCreated.find((s) => s.source.sourceName === "fallback");
|
137
133
|
if (fallbackSource) {
|
138
134
|
initialLivePreviewSource = fallbackSource;
|
139
135
|
}
|
140
136
|
}
|
141
137
|
setState({ ...state, createdClient: nextCreated, livePreviewSource: initialLivePreviewSource });
|
142
138
|
for (const c of nextCreated) {
|
143
|
-
if (!multiCamera.state.players.find((s) => s.source.
|
139
|
+
if (!multiCamera.state.players.find((s) => s.source.sourceName == c.source.sourceName)) {
|
144
140
|
c.client.videoElements.forEach((e) => {
|
145
141
|
e.remove();
|
146
142
|
});
|
@@ -152,9 +148,8 @@ function FullScreenView(multiCamera) {
|
|
152
148
|
accept: 'video',
|
153
149
|
ondrop: (e) => {
|
154
150
|
const video = e.relatedTarget;
|
155
|
-
const
|
156
|
-
|
157
|
-
if (!streamId) {
|
151
|
+
const source = video.getAttribute('data-source');
|
152
|
+
if (!source) {
|
158
153
|
}
|
159
154
|
else {
|
160
155
|
const targetRect = refLivePreviewVideo.current?.getBoundingClientRect();
|
@@ -162,9 +157,9 @@ function FullScreenView(multiCamera) {
|
|
162
157
|
const relativeX = e.dragEvent.page.x - targetRect?.left;
|
163
158
|
const relativeY = e.dragEvent.page.y - targetRect?.top;
|
164
159
|
setState((state) => {
|
165
|
-
const sourceVideo = state.createdClient.find((c) => c.source.
|
160
|
+
const sourceVideo = state.createdClient.find((c) => c.source.sourceName == source);
|
166
161
|
if (!sourceVideo) {
|
167
|
-
console.warn("Couldn't find source to build overlay", {
|
162
|
+
console.warn("Couldn't find source to build overlay", { source });
|
168
163
|
return state;
|
169
164
|
}
|
170
165
|
const videoRect = video.getBoundingClientRect();
|
@@ -224,7 +219,7 @@ function FullScreenView(multiCamera) {
|
|
224
219
|
const takeButtonClasses = "text-gray-900 bg-white border border-gray-300 focus:outline-none focus:ring-0 focus:ring-gray-200 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 dark:bg-gray-800 dark:border-gray-600 dark:focus:ring-gray-700 w-full dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700 dark:hover:border-gray-600";
|
225
220
|
const sourcesSorted = multiCamera.state.availableSources.sort(sortSource)
|
226
221
|
.reduce(({ fallback, inputs }, s) => {
|
227
|
-
if (s.
|
222
|
+
if (s.sourceName === "fallback") {
|
228
223
|
return { fallback: s, inputs };
|
229
224
|
}
|
230
225
|
return { fallback, inputs: [...inputs, s] };
|
@@ -234,7 +229,7 @@ function FullScreenView(multiCamera) {
|
|
234
229
|
}
|
235
230
|
return (0, jsx_runtime_1.jsx)("div", { id: "camera-control-container", className: "bg-gray-50 dark:bg-gray-900", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col h-full gap-4 2xl:mx-40 md:mx-6", children: [(0, jsx_runtime_1.jsxs)("div", { id: "camera-control-preview-grid", className: "mb-6", children: [(0, jsx_runtime_1.jsx)("h2", { children: "Camera Control" }), (0, jsx_runtime_1.jsx)("div", { className: "grid 2xl:grid-cols-5 lg:grid-cols-4 md:grid-cols-3 sm:grid-cols-2 xs:grid-cols-2 grid-rows-1 gap-4", children: sourcesSorted.inputs.map((s, i) => {
|
236
231
|
const isLive = isSourceSwitchSourceEqual(s, multiCamera.state.activeSource);
|
237
|
-
return (0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [(0, jsx_runtime_1.jsx)("div", { className: `${isLive ? 'border-green-400 border-solid border-2' : ''}`, id: mkContainerId(s) }), (0, jsx_runtime_1.jsxs)("button", { className: takeButtonClasses, onClick: (_e) => { setState({ ...state, livePreviewSource: state.createdClient.find((c) => isSourceSwitchSourceEqual(c.source, s)) }); }, children: ["Preview ", s.
|
232
|
+
return (0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [(0, jsx_runtime_1.jsx)("div", { className: `${isLive ? 'border-green-400 border-solid border-2' : ''}`, id: mkContainerId(s) }), (0, jsx_runtime_1.jsxs)("button", { className: takeButtonClasses, onClick: (_e) => { setState({ ...state, livePreviewSource: state.createdClient.find((c) => isSourceSwitchSourceEqual(c.source, s)) }); }, children: ["Preview ", s.sourceName] }), (0, jsx_runtime_1.jsx)("div", { children: isLive ? (0, jsx_runtime_1.jsx)("span", { className: "absolute top-2 left-2 z-10 px-1 bg-green-300 text-white dark:text-black cursor-default text-xs", children: "Live" }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}) })] }, i);
|
238
233
|
}) })] }), (0, jsx_runtime_1.jsxs)("div", { id: "live-views", className: "grid grid-cols-2 gap-4 mb-6", children: [(0, jsx_runtime_1.jsxs)("div", { id: "video-live-preview", className: "h-full relative 2xl:w-8/12 lg:w-10/12 justify-self-end", children: [(0, jsx_runtime_1.jsx)("video", { onClick: () => {
|
239
234
|
setState((s) => {
|
240
235
|
clearSelection(s.overlays);
|
@@ -318,13 +313,13 @@ function FullScreenView(multiCamera) {
|
|
318
313
|
})
|
319
314
|
});
|
320
315
|
}
|
321
|
-
}, children: ["Take ", state.overlays.length > 0 ? "Composition" : state.livePreviewSource?.source.
|
316
|
+
}, children: ["Take ", state.overlays.length > 0 ? "Composition" : state.livePreviewSource?.source.sourceName] }), state.overlays.length > 0 ? (0, jsx_runtime_1.jsx)("button", { className: takeButtonClasses, onClick: (_e) => {
|
322
317
|
setState({ ...state, overlays: [] });
|
323
|
-
}, children: "Clear Composition" }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), (0, jsx_runtime_1.jsxs)("div", { className: "absolute top-0 left-0 z-10 ml-2 mt-2 p-2 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white opacity-70", children: ["Live Preview: ", (0, jsx_runtime_1.jsx)("span", { id: "active-source-overlay", children: state.livePreviewSource?.source.
|
318
|
+
}, children: "Clear Composition" }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), (0, jsx_runtime_1.jsxs)("div", { className: "absolute top-0 left-0 z-10 ml-2 mt-2 p-2 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white opacity-70", children: ["Live Preview: ", (0, jsx_runtime_1.jsx)("span", { id: "active-source-overlay", children: state.livePreviewSource?.source.sourceName })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "relative 2xl:w-8/12 lg:w-10/12 justify-self-start", children: [(0, jsx_runtime_1.jsx)("div", { id: "preview-container-preview", className: "w-full" }), (0, jsx_runtime_1.jsxs)("div", { className: "absolute top-0 left-0 z-10 ml-2 mt-2 p-2 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white opacity-70", children: ["Live Output: ", (0, jsx_runtime_1.jsx)("span", { id: "active-source-overlay", children: multiCamera.state.activeSource.sourceName })] })] })] })] }) });
|
324
319
|
}
|
325
320
|
function sortSource(a, b) {
|
326
|
-
const aKey = a.
|
327
|
-
const bKey = b.
|
321
|
+
const aKey = a.sourceName || '';
|
322
|
+
const bKey = b.sourceName || '';
|
328
323
|
if (aKey > bKey)
|
329
324
|
return 1;
|
330
325
|
if (aKey < bKey)
|
@@ -332,10 +327,10 @@ function sortSource(a, b) {
|
|
332
327
|
return 0;
|
333
328
|
}
|
334
329
|
function isSourceSwitchSourceEqual(a, b) {
|
335
|
-
return a.
|
330
|
+
return a.sourceName === b.sourceName;
|
336
331
|
}
|
337
332
|
function mkContainerId(source) {
|
338
|
-
return `preview-container-${source.
|
333
|
+
return `preview-container-${source.sourceName}`;
|
339
334
|
}
|
340
335
|
exports.default = FullScreenView;
|
341
336
|
//# sourceMappingURL=fullscreen-view.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fullscreen-view.js","sourceRoot":"","sources":["../src/fullscreen-view.tsx"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"fullscreen-view.js","sourceRoot":"","sources":["../src/fullscreen-view.tsx"],"names":[],"mappings":"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"}
|
package/lib/info.js
CHANGED
@@ -41,20 +41,37 @@ function default_1(R) {
|
|
41
41
|
description: "This component manages multiple A/V (audio and video) streams from different sources, switching between the sources dynamically.",
|
42
42
|
subscription: {
|
43
43
|
accepts: {
|
44
|
-
type: '
|
45
|
-
|
44
|
+
type: 'dynamic-streams',
|
45
|
+
mode: { type: 'multiple', groupBy: "sourceName" },
|
46
|
+
streams: () => Av.map((media) => ({ media }))
|
46
47
|
},
|
47
48
|
produces: {
|
48
|
-
type: "
|
49
|
-
|
49
|
+
type: "simple-stream",
|
50
|
+
audio: true,
|
51
|
+
video: true
|
50
52
|
}
|
51
53
|
},
|
52
54
|
extraValidation: (ctx) => {
|
53
|
-
ctx.subscriptions.
|
54
|
-
|
55
|
-
|
55
|
+
const inputStreams = ctx.subscriptions.flatMap((s) => s.expectedStreams);
|
56
|
+
const sourceNames = new Set(inputStreams.map((s) => s.sourceName));
|
57
|
+
if (sourceNames.has(undefined)) {
|
58
|
+
ctx.addError(`All streams must have a sourceName`);
|
59
|
+
}
|
60
|
+
sourceNames.forEach((s) => {
|
61
|
+
const video = inputStreams.filter((i => i.sourceName == s && i.media == "video"));
|
62
|
+
const audio = inputStreams.filter((i => i.sourceName == s && i.media == "audio"));
|
63
|
+
if (video.length == 0) {
|
64
|
+
ctx.addError(`missing video with sourceName ${s}`);
|
65
|
+
}
|
66
|
+
else if (video.length > 1) {
|
67
|
+
ctx.addError(`video with sourceName ${s} exists more than once`);
|
68
|
+
}
|
69
|
+
if (audio.length == 0) {
|
70
|
+
ctx.addError(`missing audio with sourceName ${s}`);
|
71
|
+
}
|
72
|
+
else if (audio.length > 1) {
|
73
|
+
ctx.addError(`audio with sourceName ${s} exists more than once`);
|
56
74
|
}
|
57
|
-
ctx.addError("Each subscription for Source Switcher must contain both video *and* audio, subscription to " + s.source + " only contains " + s.validatedStreams.select.join(","));
|
58
75
|
});
|
59
76
|
},
|
60
77
|
display: (desc) => {
|
@@ -69,7 +86,7 @@ function default_1(R) {
|
|
69
86
|
],
|
70
87
|
runtime: {
|
71
88
|
initialState: () => ({
|
72
|
-
activeSource: {
|
89
|
+
activeSource: { sourceName: '' },
|
73
90
|
activeOverlays: [],
|
74
91
|
availableSources: [],
|
75
92
|
knownSources: [],
|
@@ -90,8 +107,8 @@ function default_1(R) {
|
|
90
107
|
state.previewPlayerUrl = ev.url;
|
91
108
|
return { ...state };
|
92
109
|
case 'source-offline': {
|
93
|
-
const sourceIndex = state.availableSources.findIndex((s) => s.
|
94
|
-
const playerIndex = state.players.findIndex((s) => s.source.
|
110
|
+
const sourceIndex = state.availableSources.findIndex((s) => s.sourceName == ev.source.sourceName);
|
111
|
+
const playerIndex = state.players.findIndex((s) => s.source.sourceName == ev.source.sourceName);
|
95
112
|
if (sourceIndex >= 0)
|
96
113
|
state.availableSources.splice(sourceIndex, 1);
|
97
114
|
if (playerIndex >= 0)
|
package/lib/info.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"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"}
|
package/lib/inline-view.js
CHANGED
@@ -5,11 +5,11 @@ const activeClasses = "active text-green-500 dark:text-green-300";
|
|
5
5
|
const availableClasses = "available text-green-500 dark:text-green-300";
|
6
6
|
const inactiveClasses = "inactive text-orange-500 dark:text-orange-300";
|
7
7
|
function InlineView({ state }) {
|
8
|
-
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h5", { children: "Sources" }), (0, jsx_runtime_1.jsx)("ul", { children: state.knownSources.map((s, i) => state.activeSource.
|
9
|
-
(0, jsx_runtime_1.jsxs)("li", { className: activeClasses, children: [s.
|
10
|
-
: state.availableSources.find((a) => a.
|
11
|
-
? (0, jsx_runtime_1.jsxs)("li", { className: availableClasses, children: [s.
|
12
|
-
: (0, jsx_runtime_1.jsxs)("li", { className: inactiveClasses, children: [s.
|
8
|
+
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h5", { children: "Sources" }), (0, jsx_runtime_1.jsx)("ul", { children: state.knownSources.map((s, i) => state.activeSource.sourceName == s.sourceName ?
|
9
|
+
(0, jsx_runtime_1.jsxs)("li", { className: activeClasses, children: [s.sourceName, " <--"] }, i)
|
10
|
+
: state.availableSources.find((a) => a.sourceName == s.sourceName)
|
11
|
+
? (0, jsx_runtime_1.jsxs)("li", { className: availableClasses, children: [s.sourceName, " (available)"] }, i)
|
12
|
+
: (0, jsx_runtime_1.jsxs)("li", { className: inactiveClasses, children: [s.sourceName, " (inactive)"] }, i)) })] });
|
13
13
|
}
|
14
14
|
exports.default = InlineView;
|
15
15
|
//# sourceMappingURL=inline-view.js.map
|
package/lib/inline-view.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"inline-view.js","sourceRoot":"","sources":["../src/inline-view.tsx"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,2CAA2C,CAAC;AAClE,MAAM,gBAAgB,GAAG,8CAA8C,CAAC;AACxE,MAAM,eAAe,GAAG,+CAA+C,CAAC;AAExE,SAAS,UAAU,CAAC,EAAE,KAAK,EAA4D;IACrF,OAAO,6DACL,qDAAgB,EAChB,yCACG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/B,KAAK,CAAC,YAAY,CAAC,
|
1
|
+
{"version":3,"file":"inline-view.js","sourceRoot":"","sources":["../src/inline-view.tsx"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,2CAA2C,CAAC;AAClE,MAAM,gBAAgB,GAAG,8CAA8C,CAAC;AACxE,MAAM,eAAe,GAAG,+CAA+C,CAAC;AAExE,SAAS,UAAU,CAAC,EAAE,KAAK,EAA4D;IACrF,OAAO,6DACL,qDAAgB,EAChB,yCACG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/B,KAAK,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC7C,gCAAY,SAAS,EAAE,aAAa,aAAG,CAAC,CAAC,UAAU,aAA1C,CAAC,CAAsD;oBAChE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC;wBAChE,CAAC,CAAC,gCAAY,SAAS,EAAE,gBAAgB,aAAG,CAAC,CAAC,UAAU,qBAA7C,CAAC,CAA8D;wBAC1E,CAAC,CAAC,gCAAY,SAAS,EAAE,eAAe,aAAG,CAAC,CAAC,UAAU,oBAA5C,CAAC,CAA4D,CAC7E,GACE,IACJ,CAAA;AACL,CAAC;AAED,kBAAe,UAAU,CAAC"}
|