@norskvideo/norsk-sdk 1.0.352 → 1.0.356

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.
@@ -123,6 +123,10 @@ class SourceMediaNode extends MediaNodeState {
123
123
  }
124
124
  ;
125
125
  let index = pending.pendingSubscribes.indexOf(subscriber);
126
+ if (index === -1) {
127
+ (0, utils_1.errorlog)("No pending subscriber %s found for ref %s on %s (%d), something went horribly wrong", subscriber.id, context.blockingCallRef, this.id, pending.pendingSubscribes.length);
128
+ return;
129
+ }
126
130
  pending.pendingSubscribes.splice(index, 1);
127
131
  this.maybeAckPendingContext(context);
128
132
  };
@@ -324,6 +324,8 @@ export declare class FileWebVttInputNode extends SourceMediaNode {
324
324
  export interface FileTsInputSettings extends LocalFileInputSettings, StreamStatisticsMixin {
325
325
  /** Whether to loop back to the start of the file after reaching the end */
326
326
  loop?: boolean;
327
+ /** Whether to start paused or already playing (default: playing) */
328
+ start?: 'playing' | 'paused';
327
329
  }
328
330
  /** @public */
329
331
  export interface FileTsInputSettingsUpdate {
@@ -336,6 +338,8 @@ export interface FileTsInputSettingsUpdate {
336
338
  */
337
339
  export declare class FileTsInputNode extends TsCommonInputNode<FileTsInputMessage, FileTsInputNode> {
338
340
  updateSettings(settings: FileTsInputSettingsUpdate): void;
341
+ pause(): void;
342
+ play(): void;
339
343
  }
340
344
  /**
341
345
  * @public
@@ -371,6 +375,26 @@ export interface SrtInputSettings extends RemoteInputSettings<SrtInputNode>, Str
371
375
  * Stream ID to set on the socket when acting in caller mode
372
376
  */
373
377
  streamId?: string;
378
+ /**
379
+ * The latency value in the receiving direction of the socket (SRTO_RCVLATENCY)
380
+ */
381
+ receiveLatency?: number;
382
+ /**
383
+ * The latency value provided by the sender side as a minimum value for the receiver (SRTO_PEERLATENCY)
384
+ */
385
+ peerLatency?: number;
386
+ /**
387
+ * Input bandwidth (SRTO_INPUTBW)
388
+ */
389
+ inputBandwidth?: number;
390
+ /**
391
+ * Overhead bandwidth (SRTO_OHEADBW)
392
+ */
393
+ overheadBandwidth?: number;
394
+ /**
395
+ * Max bandwidth (SRTO_MAXBW)
396
+ */
397
+ maxBandwidth?: number;
374
398
  /**
375
399
  * On connect callback, notifying that a new caller has connected (in listener mode) and set the source name accordingly
376
400
  * @eventProperty
@@ -575,6 +599,8 @@ export interface FileMp4InputSettings extends SourceNodeSettings<FileMp4InputNod
575
599
  onInfo?: (info: FileMp4Info) => void;
576
600
  /** Whether to loop back to the start of the file after reaching the end (default false) */
577
601
  loop?: boolean;
602
+ /** Whether to start paused or already playing (default: playing) */
603
+ start?: 'playing' | 'paused';
578
604
  }
579
605
  export interface FileMp4InputSettingsUpdate {
580
606
  /** Whether to loop back to the start of the file after reaching the end */
@@ -601,11 +627,13 @@ export declare class FileMp4InputNode extends SourceMediaNode {
601
627
  * */
602
628
  nudge(nudge: number): void;
603
629
  updateSettings(settings: FileMp4InputSettingsUpdate): void;
630
+ pause(): void;
631
+ play(): void;
604
632
  }
605
633
  /**
606
634
  * @public
607
635
  * Settings for Frame Store playback
608
- * see: {@link NorskInput.frameStorePlayer}
636
+ * see: {@link NorskInput.frameStore}
609
637
  */
610
638
  export interface FrameStorePlayerSettings extends InputSettings<FrameStorePlayerNode>, StreamStatisticsMixin {
611
639
  /**
@@ -629,7 +657,7 @@ export interface FrameStorePlayerSettings extends InputSettings<FrameStorePlayer
629
657
  }
630
658
  /**
631
659
  * @public
632
- * see: {@link NorskInput.frameStorePlayer}
660
+ * see: {@link NorskInput.frameStore}
633
661
  */
634
662
  export declare class FrameStorePlayerNode extends SourceMediaNode {
635
663
  }
@@ -721,7 +749,7 @@ export interface NorskInput {
721
749
  /**
722
750
  * Playback from an existing Frame Store recording
723
751
  */
724
- frameStorePlayer(settings: FrameStorePlayerSettings): Promise<FrameStorePlayerNode>;
752
+ frameStore(settings: FrameStorePlayerSettings): Promise<FrameStorePlayerNode>;
725
753
  }
726
754
  export {};
727
755
  //# sourceMappingURL=input.d.ts.map
@@ -665,7 +665,8 @@ class FileTsInputNode extends TsCommonInputNode {
665
665
  : undefined,
666
666
  filename: settings.fileName,
667
667
  sourceName: settings.sourceName,
668
- loop: (_a = settings.loop) !== null && _a !== void 0 ? _a : false
668
+ loop: (_a = settings.loop) !== null && _a !== void 0 ? _a : false,
669
+ startMode: settings.start == "paused" ? media_pb_1.FileTsInputConfiguration_StartMode.FILE_TS_START_PAUSED : media_pb_1.FileTsInputConfiguration_StartMode.FILE_TS_START_PLAYING
669
670
  });
670
671
  const stream = client.createInputFileTs();
671
672
  stream.write((0, utils_1.provideFull)(media_pb_1.FileTsInputMessage, (0, utils_1.mkMessageCase)({ initialConfig: config })));
@@ -675,6 +676,12 @@ class FileTsInputNode extends TsCommonInputNode {
675
676
  updateSettings(settings) {
676
677
  this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileTsInputMessage, (0, utils_1.mkMessageCase)({ updateConfig: (0, utils_1.provideFull)(media_pb_1.FileTsInputConfigurationUpdate, { loop: settings.loop !== undefined ? (0, types_1.mkOptBool)(settings.loop) : undefined }) })));
677
678
  }
679
+ pause() {
680
+ this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileTsInputMessage, (0, utils_1.mkMessageCase)({ pause: (0, utils_1.provideFull)(protobuf_1.Empty, {}) })));
681
+ }
682
+ play() {
683
+ this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileTsInputMessage, (0, utils_1.mkMessageCase)({ play: (0, utils_1.provideFull)(protobuf_1.Empty, {}) })));
684
+ }
678
685
  }
679
686
  exports.FileTsInputNode = FileTsInputNode;
680
687
  /**
@@ -689,13 +696,9 @@ class SrtInputNode extends common_1.SourceMediaNode {
689
696
  const grpcStartFn = () => {
690
697
  const config = (0, utils_1.provideFull)(media_pb_1.SrtInputConfiguration, Object.assign(Object.assign({}, settings), { id: settings.id
691
698
  ? (0, utils_1.provideFull)(media_pb_1.MediaNodeId, { id: settings.id })
692
- : undefined, sourceName: settings.sourceName, mode: (0, types_1.toSrtMode)(settings.mode), passphrase: settings.passphrase !== undefined
693
- ? (0, utils_1.provideFull)(common_pb_1.OptionalString, { value: settings.passphrase })
694
- : undefined, streamId: settings.streamId !== undefined
695
- ? (0, utils_1.provideFull)(common_pb_1.OptionalString, { value: settings.streamId })
696
- : undefined, statsSampling: settings.statsSampling
699
+ : undefined, sourceName: settings.sourceName, mode: (0, types_1.toSrtMode)(settings.mode), passphrase: (0, types_1.toOptString)(settings.passphrase), streamId: (0, types_1.toOptString)(settings.streamId), statsSampling: settings.statsSampling
697
700
  ? (0, utils_1.provideFull)(media_pb_1.StreamStatisticsSampling, settings.statsSampling)
698
- : undefined }));
701
+ : undefined, receiveLatency: (0, types_1.toOptInt)(settings.receiveLatency), peerLatency: (0, types_1.toOptInt)(settings.peerLatency), inputBandwidth: (0, types_1.toOptInt)(settings.inputBandwidth), maxBandwidth: (0, types_1.toOptInt)(settings.maxBandwidth), overheadBandwidth: (0, types_1.toOptInt)(settings.overheadBandwidth) }));
699
702
  const stream = client.createInputSrt();
700
703
  stream.write((0, utils_1.provideFull)(media_pb_1.SrtInputMessage, (0, utils_1.mkMessageCase)({ initialConfig: config })));
701
704
  return stream;
@@ -1156,7 +1159,7 @@ class FileMp4InputNode extends common_1.SourceMediaNode {
1156
1159
  ? (0, utils_1.provideFull)(media_pb_1.MediaNodeId, { id: settings.id })
1157
1160
  : undefined, statsSampling: settings.statsSampling
1158
1161
  ? (0, utils_1.provideFull)(media_pb_1.StreamStatisticsSampling, settings.statsSampling)
1159
- : undefined, loop: (_a = settings.loop) !== null && _a !== void 0 ? _a : false }));
1162
+ : undefined, loop: (_a = settings.loop) !== null && _a !== void 0 ? _a : false, startMode: settings.start == 'paused' ? media_pb_1.FileMp4InputConfiguration_StartMode.FILE_MP4_START_PAUSED : media_pb_1.FileMp4InputConfiguration_StartMode.FILE_MP4_START_PLAYING }));
1160
1163
  this.grpcStream = this.client.createInputFileMp4();
1161
1164
  this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileMp4InputMessage, (0, utils_1.mkMessageCase)({ initialConfig: config })));
1162
1165
  this.initialised = new Promise((resolve, reject) => {
@@ -1225,11 +1228,17 @@ class FileMp4InputNode extends common_1.SourceMediaNode {
1225
1228
  updateSettings(settings) {
1226
1229
  this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileMp4InputMessage, (0, utils_1.mkMessageCase)({ updateConfig: (0, utils_1.provideFull)(media_pb_1.FileMp4InputConfigurationUpdate, { loop: settings.loop !== undefined ? (0, types_1.mkOptBool)(settings.loop) : undefined }) })));
1227
1230
  }
1231
+ pause() {
1232
+ this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileMp4InputMessage, (0, utils_1.mkMessageCase)({ pause: (0, utils_1.provideFull)(protobuf_1.Empty, {}) })));
1233
+ }
1234
+ play() {
1235
+ this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileMp4InputMessage, (0, utils_1.mkMessageCase)({ play: (0, utils_1.provideFull)(protobuf_1.Empty, {}) })));
1236
+ }
1228
1237
  }
1229
1238
  exports.FileMp4InputNode = FileMp4InputNode;
1230
1239
  /**
1231
1240
  * @public
1232
- * see: {@link NorskInput.frameStorePlayer}
1241
+ * see: {@link NorskInput.frameStore}
1233
1242
  */
1234
1243
  class FrameStorePlayerNode extends common_1.SourceMediaNode {
1235
1244
  /** @internal */
@@ -1246,13 +1255,15 @@ class FrameStorePlayerNode extends common_1.SourceMediaNode {
1246
1255
  durationMs,
1247
1256
  sessionNum: sessionNum ? (0, utils_1.provideFull)(common_pb_1.OptionalInt, { value: sessionNum }) : undefined
1248
1257
  })),
1249
- streamSelection: (0, utils_1.provideFull)(media_pb_1.StreamSelection, { streamSelection: (settings.streamSelection == "all") ?
1258
+ streamSelection: (0, utils_1.provideFull)(media_pb_1.StreamSelection, {
1259
+ streamSelection: (settings.streamSelection == "all") ?
1250
1260
  (0, utils_1.mkCase)({ all: (0, utils_1.provideFull)(media_pb_1.StreamSelection_All, {}) }) :
1251
1261
  (0, utils_1.mkCase)({
1252
1262
  subset: (0, utils_1.provideFull)(media_pb_1.StreamSelection_Subset, {
1253
1263
  streamList: settings.streamSelection.map(types_1.mkStreamKey)
1254
1264
  })
1255
- }) }),
1265
+ })
1266
+ }),
1256
1267
  trimPartialSegments: settings.trimPartialSegments
1257
1268
  });
1258
1269
  this.grpcStream = client.createInputFrameStorePlayer();
@@ -20,18 +20,6 @@ export interface CmafOutputSettings extends SinkNodeSettings<CmafAudioOutputNode
20
20
  * without going over this target
21
21
  */
22
22
  partDurationSeconds: number;
23
- /**
24
- * By default, the program date time or event start time will be based on the
25
- * timestamp of the first video packet received by Norsk in a stream.
26
- *
27
- * Assuming minimal latency in Norsk itself, this behaviour is fine - but encodes and composition
28
- * or synchronisation with external streams can then result in players requesting segments that don't exist yet
29
- *
30
- * delayOutputMs can be used to push the timestamp forwards so that players can calculate the edge of the stream accurately.
31
- *
32
- * This number should match the delayOutputMs of other streams which will be served within the same multi variant playlist
33
- */
34
- delayOutputMs?: number;
35
23
  /**
36
24
  * Settings for encrypting the content.
37
25
  */
@@ -52,10 +40,6 @@ export interface CmafOutputSettings extends SinkNodeSettings<CmafAudioOutputNode
52
40
  * Audio or video bitrate for the {@link NorskOutput.cmafMultiVariant} playlist
53
41
  */
54
42
  bitrate?: number;
55
- /**
56
- * The maximum number of segments to display in a single generated playlist
57
- */
58
- maximumPlaylistSegments?: number;
59
43
  }
60
44
  /**
61
45
  * @public
@@ -68,18 +52,6 @@ export interface HlsTsVideoOutputSettings extends SinkNodeSettings<HlsTsVideoOut
68
52
  * to produce compliant segments that are less than or equal to this in duration
69
53
  */
70
54
  segmentDurationSeconds: number;
71
- /**
72
- * By default, the program date time or event start time will be based on the
73
- * timestamp of the first video packet received by Norsk in a stream.
74
- *
75
- * Assuming minimal latency in Norsk itself, this behaviour is fine - but encodes and composition
76
- * or synchronisation with external streams can then result in players requesting segments that don't exist yet
77
- *
78
- * delayOutputMs can be used to push the timestamp forwards so that players can calculate the edge of the stream accurately.
79
- *
80
- * This number should match the delayOutputMs of other streams which will be served within the same multi variant playlist
81
- */
82
- delayOutputMs?: number;
83
55
  /**
84
56
  * A list of destinations {@link CmafDestinationSettings} for this stream to be published to
85
57
  */
@@ -96,10 +68,6 @@ export interface HlsTsVideoOutputSettings extends SinkNodeSettings<HlsTsVideoOut
96
68
  * Video bitrate for the {@link NorskOutput.hlsTsMultiVariant} playlist
97
69
  */
98
70
  bitrate?: number;
99
- /**
100
- * The maximum number of segments to display in a single generated playlist
101
- */
102
- maximumPlaylistSegments?: number;
103
71
  }
104
72
  /**
105
73
  * @public
@@ -112,18 +80,6 @@ export interface HlsTsAudioOutputSettings extends SinkNodeSettings<HlsTsAudioOut
112
80
  * without going over this target using the durations of the individual audio frames
113
81
  */
114
82
  segmentDurationSeconds: number;
115
- /**
116
- * By default, the program date time or event start time will be based on the
117
- * timestamp of the first video packet received by Norsk in a stream.
118
- *
119
- * Assuming minimal latency in Norsk itself, this behaviour is fine - but encodes and composition
120
- * or synchronisation with external streams can then result in players requesting segments that don't exist yet
121
- *
122
- * delayOutputMs can be used to push the timestamp forwards so that players can calculate the edge of the stream accurately.
123
- *
124
- * This number should match the delayOutputMs of other streams which will be served within the same multi variant playlist
125
- */
126
- delayOutputMs?: number;
127
83
  /**
128
84
  * A list of destinations {@link CmafDestinationSettings} for this stream to be published to
129
85
  */
@@ -140,10 +96,6 @@ export interface HlsTsAudioOutputSettings extends SinkNodeSettings<HlsTsAudioOut
140
96
  * Audio bitrate for the {@link NorskOutput.hlsTsMultiVariant} playlist
141
97
  */
142
98
  bitrate?: number;
143
- /**
144
- * The maximum number of segments to display in a single generated playlist
145
- */
146
- maximumPlaylistSegments?: number;
147
99
  }
148
100
  /**
149
101
  * @public
@@ -156,18 +108,6 @@ export interface CmafWebVttOutputSettings extends SinkNodeSettings<CmafWebVttOut
156
108
  * in a compliant manner if necessary
157
109
  */
158
110
  segmentDurationSeconds: number;
159
- /**
160
- * By default, the program date time or event start time will be based on the
161
- * timestamp of the first video packet received by Norsk in a stream.
162
- *
163
- * Assuming minimal latency in Norsk itself, this behaviour is fine - but encodes and composition
164
- * or synchronisation with external streams can then result in players requesting segments that don't exist yet
165
- *
166
- * delayOutputMs can be used to push the timestamp forwards so that players can calculate the edge of the stream accurately.
167
- *
168
- * This number should match the delayOutputMs of other streams which will be served within the same multi variant playlist
169
- */
170
- delayOutputMs?: number;
171
111
  /**
172
112
  * A list of destinations {@link CmafDestinationSettings} for this stream to be published to
173
113
  */
@@ -176,10 +116,6 @@ export interface CmafWebVttOutputSettings extends SinkNodeSettings<CmafWebVttOut
176
116
  * A local directory in which to store the segments while they're available
177
117
  */
178
118
  hlsCacheDirectory: string;
179
- /**
180
- * The maximum number of segments to display in a single generated playlist
181
- */
182
- maximumPlaylistSegments?: number;
183
119
  }
184
120
  /**
185
121
  * @public
@@ -207,18 +143,6 @@ export interface HlsTsCombinedPushOutputSettings extends SinkNodeSettings<HlsTsC
207
143
  * using timestamps to line them up
208
144
  */
209
145
  segmentDurationSeconds: number;
210
- /**
211
- * By default, the program date time or event start time will be based on the
212
- * timestamp of the first video packet received by Norsk in a stream.
213
- *
214
- * Assuming minimal latency in Norsk itself, this behaviour is fine - but encodes and composition
215
- * or synchronisation with external streams can then result in players requesting segments that don't exist yet
216
- *
217
- * delayOutputMs can be used to push the timestamp forwards so that players can calculate the edge of the stream accurately.
218
- *
219
- * This number should match the delayOutputMs of other streams which will be served within the same multi variant playlist
220
- */
221
- delayOutputMs?: number;
222
146
  /**
223
147
  * The destination {@link CmafDestinationSettings} for this stream to be published to
224
148
  */
@@ -315,6 +239,22 @@ export interface HlsPushDestinationSettings {
315
239
  * in order to generate an accurate playlist
316
240
  */
317
241
  retentionPeriodSeconds: number;
242
+ /**
243
+ * In the absence of a HLS_SKIP query parameter, how many segments should be served in a playlist
244
+ * this effectively controls how far back in time a player can seek from first load (as long as the data exists)
245
+ */
246
+ defaultSegmentCount?: number;
247
+ /**
248
+ Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play
249
+ this should take into account the end to end latency from source capture, to the segment and playlist being published
250
+ */
251
+ holdBackSeconds?: number;
252
+ /**
253
+ Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play
254
+ when using the lower latency parts
255
+ this should take into account the end to end latency from source capture, to the part and playlist being published
256
+ */
257
+ partHoldBackSeconds?: number;
318
258
  }
319
259
  /**
320
260
  * @public
@@ -356,6 +296,22 @@ export interface AwsS3PushDestinationSettings {
356
296
  * in order to generate an accurate playlist
357
297
  */
358
298
  retentionPeriodSeconds: number;
299
+ /**
300
+ * In the absence of a HLS_SKIP query parameter, how many segments should be served in a playlist
301
+ * this effectively controls how far back in time a player can seek from first load (as long as the data exists)
302
+ */
303
+ defaultSegmentCount?: number;
304
+ /**
305
+ Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play
306
+ this should take into account the end to end latency from source capture, to the segment and playlist being published
307
+ */
308
+ holdBackSeconds?: number;
309
+ /**
310
+ Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play
311
+ when using the lower latency parts
312
+ this should take into account the end to end latency from source capture, to the part and playlist being published
313
+ */
314
+ partHoldBackSeconds?: number;
359
315
  }
360
316
  /**
361
317
  * @public
@@ -381,6 +337,22 @@ export interface LocalPullDestinationSettings {
381
337
  * and informs the local web server how long to retain those segments
382
338
  */
383
339
  retentionPeriodSeconds: number;
340
+ /**
341
+ * In the absence of a HLS_SKIP query parameter, how many segments should be served in a playlist
342
+ * this effectively controls how far back in time a player can seek from first load (as long as the data exists)
343
+ */
344
+ defaultSegmentCount?: number;
345
+ /**
346
+ Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play
347
+ this should take into account the end to end latency from source capture, to the segment and playlist being published
348
+ */
349
+ holdBackSeconds?: number;
350
+ /**
351
+ Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play
352
+ when using the lower latency parts
353
+ this should take into account the end to end latency from source capture, to the part and playlist being published
354
+ */
355
+ partHoldBackSeconds?: number;
384
356
  }
385
357
  /** @public */
386
358
  export declare type MediaPlaylistPart = MediaSegment | AdMarker | HlsTag | ProgramDateTime | ScheduledTag;
@@ -455,11 +427,6 @@ declare type HlsPlaylistDestination = {
455
427
  declare type HlsTsPlaylistDestination = {
456
428
  [destination: DestinationId]: MediaPlaylistPart[];
457
429
  };
458
- /** @public */
459
- declare enum PlaylistPath {
460
- Cmaf = 0,
461
- Ts = 1
462
- }
463
430
  declare class CmafNodeBase<ClientMessage, Pins extends string, T extends MediaNodeState> extends AutoProcessorMediaNode<Pins> {
464
431
  playlists: HlsPlaylistDestination;
465
432
  destinations: DestinationId[];
@@ -473,7 +440,6 @@ export declare type ScheduledTag = [number, MediaPlaylistPart, Date, Destination
473
440
  /** @public */
474
441
  export declare type DestinationId = string;
475
442
  declare class CmafNodeWithPlaylist<ClientMessage, Pins extends string, T extends MediaNodeState> extends CmafNodeBase<ClientMessage, Pins, T> {
476
- constructor(client: MediaClient, unregisterNode: (node: MediaNodeState) => void, settings: ProcessorNodeSettings<T> & StreamStatisticsMixin, grpcInit: () => grpc.ClientDuplexStream<ClientMessage, HlsOutputEvent>, subscribeFn: (subscription: Subscription) => Promise<boolean>, playlistPath: PlaylistPath, segmentDuration: number, onPlaylistAddition: PlaylistOnChangeFn<ClientMessage>, destinations: DestinationId[], localDestination?: LocalPullDestinationSettings, maximumPlaylistSegments?: number);
477
443
  /**
478
444
  * @public
479
445
  * Returns the URL to the HLS playlist entry. Note this can only be evaluated once the stream is active as it
@@ -572,6 +538,8 @@ export declare class CmafWebVttOutputNode extends CmafNodeWithPlaylist<CmafWebVt
572
538
  export declare class CmafMultiVariantOutputNode extends CmafNodeBase<CmafMultiVariantMessage, "video" | "audio" | "subtitle", CmafMultiVariantOutputNode> {
573
539
  /** @public The URL of the file based multi variant playlist */
574
540
  url: string;
541
+ /** @public The URL of the file based DASH manifest */
542
+ dashUrl: string;
575
543
  /**
576
544
  * @public
577
545
  * Updates the credentials for a specific destination within this output by id
@@ -641,6 +609,26 @@ export interface SrtOutputSettings extends SinkNodeSettings<SrtOutputNode>, Stre
641
609
  * Stream ID to set on the socket when acting in caller mode
642
610
  */
643
611
  streamId?: string;
612
+ /**
613
+ * The latency value in the receiving direction of the socket (SRTO_RCVLATENCY)
614
+ */
615
+ receiveLatency?: number;
616
+ /**
617
+ * The latency value provided by the sender side as a minimum value for the receiver (SRTO_PEERLATENCY)
618
+ */
619
+ peerLatency?: number;
620
+ /**
621
+ * Input bandwidth (SRTO_INPUTBW)
622
+ */
623
+ inputBandwidth?: number;
624
+ /**
625
+ * Overhead bandwidth (SRTO_OHEADBW)
626
+ */
627
+ overheadBandwidth?: number;
628
+ /**
629
+ * Max bandwidth (SRTO_MAXBW)
630
+ */
631
+ maxBandwidth?: number;
644
632
  /**
645
633
  * The mode to act in (see {@link SrtMode})
646
634
  */
@@ -840,7 +828,7 @@ export declare type FrameStoreCutRequest = {
840
828
  /**
841
829
  * @public
842
830
  * Settings to configure a frame store recorder
843
- * see {@link NorskOutput.frameStoreRecorder}
831
+ * see {@link NorskOutput.frameStore}
844
832
  */
845
833
  export interface FrameStoreRecorderSettings extends SinkNodeSettings<FrameStoreRecorderNode>, StreamStatisticsMixin {
846
834
  /**
@@ -862,7 +850,7 @@ export interface FrameStoreRecorderSettings extends SinkNodeSettings<FrameStoreR
862
850
  }
863
851
  /**
864
852
  * @public
865
- * see: {@link NorskOutput.frameStoreRecording}
853
+ * see: {@link NorskOutput.frameStore}
866
854
  */
867
855
  export declare class FrameStoreRecorderNode extends AutoSinkMediaNode<"audio" | "video"> {
868
856
  makeCut(request: FrameStoreCutRequest): void;
@@ -870,15 +858,15 @@ export declare class FrameStoreRecorderNode extends AutoSinkMediaNode<"audio" |
870
858
  /**
871
859
  * @public
872
860
  * Settings to configure a Moq Egest
873
- * see {@link NorskOutput.moqEgest}
861
+ * see {@link NorskOutput.moq}
874
862
  */
875
- export interface MoqEgestSettings extends SinkNodeSettings<MoqEgestNode>, StreamStatisticsMixin {
863
+ export interface MoqOutputSettings extends SinkNodeSettings<MoqOutputNode>, StreamStatisticsMixin {
876
864
  }
877
865
  /**
878
866
  * @public
879
- * see: {@link NorskOutput.moqEgest}
867
+ * see: {@link NorskOutput.moq}
880
868
  */
881
- export declare class MoqEgestNode extends AutoSinkMediaNode<"audio" | "video"> {
869
+ export declare class MoqOutputNode extends AutoSinkMediaNode<"audio" | "video"> {
882
870
  }
883
871
  /**
884
872
  * @public
@@ -1021,13 +1009,13 @@ export interface NorskOutput {
1021
1009
  *
1022
1010
  * @param settings - Configuration for the frame store recorder
1023
1011
  */
1024
- frameStoreRecording(settings: FrameStoreRecorderSettings): Promise<FrameStoreRecorderNode>;
1012
+ frameStore(settings: FrameStoreRecorderSettings): Promise<FrameStoreRecorderNode>;
1025
1013
  /**
1026
1014
  * Create a Moq Egest
1027
1015
  *
1028
1016
  * @param settings - Configuration for the egest
1029
1017
  */
1030
- moqEgest(settings: MoqEgestSettings): Promise<MoqEgestNode>;
1018
+ moq(settings: MoqOutputSettings): Promise<MoqOutputNode>;
1031
1019
  }
1032
1020
  export {};
1033
1021
  //# sourceMappingURL=output.d.ts.map