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