@norskvideo/norsk-sdk 1.0.345 → 1.0.347

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.
@@ -14,9 +14,12 @@ import * as grpc from '@grpc/grpc-js';
14
14
  import { HlsOutputEvent } from '@norskvideo/norsk-api/lib/media_pb';
15
15
  import { HlsTsAudioMessage } from '@norskvideo/norsk-api/lib/media_pb';
16
16
  import { HlsTsCombinedPushMessage } from '@norskvideo/norsk-api/lib/media_pb';
17
+ import { HlsTsMultiVariantMessage } from '@norskvideo/norsk-api/lib/media_pb';
17
18
  import { HlsTsVideoMessage } from '@norskvideo/norsk-api/lib/media_pb';
18
19
  import { MediaClient } from '@norskvideo/norsk-api/lib/media_grpc_pb';
19
20
  import { Nullable } from 'typescript-nullable';
21
+ import { OptionalBool } from '@norskvideo/norsk-api/lib/shared/common_pb';
22
+ import { OptionalInt } from '@norskvideo/norsk-api/lib/shared/common_pb';
20
23
  import { PlainMessage } from '@bufbuild/protobuf';
21
24
  import { Readable } from 'stream';
22
25
  import { RtmpError_UnsupportedAudio } from '@norskvideo/norsk-api/lib/media_pb';
@@ -50,7 +53,6 @@ export declare interface AacSettings {
50
53
  }
51
54
 
52
55
  export declare class AncillaryNode extends AutoProcessorMediaNode<"ancillary"> {
53
- close(): void;
54
56
  sendScte35(key: StreamKey, info: Scte35SpliceInfoSection): void;
55
57
  }
56
58
 
@@ -84,7 +86,6 @@ export declare function ancillaryStreams(streams: readonly StreamMetadata[]): St
84
86
  * see: {@link NorskTransform.audioBuildMultichannel}
85
87
  */
86
88
  export declare class AudioBuildMultichannelNode extends AutoProcessorMediaNode<"audio"> {
87
- close(): void;
88
89
  }
89
90
 
90
91
  /**
@@ -118,7 +119,6 @@ export { AudioCodec }
118
119
  * see: {@link NorskTransform.audioEncode}
119
120
  */
120
121
  export declare class AudioEncodeNode extends AutoProcessorMediaNode<"audio"> {
121
- close(): void;
122
122
  }
123
123
 
124
124
  /**
@@ -154,7 +154,6 @@ export declare class AudioGainNode extends AutoProcessorMediaNode<"audio"> {
154
154
  * @param settings - The updated settings
155
155
  */
156
156
  updateConfig(settings: AudioGainSettingsUpdate): void;
157
- close(): void;
158
157
  }
159
158
 
160
159
  /**
@@ -189,7 +188,6 @@ export declare interface AudioMeasureLevels {
189
188
  * see: {@link NorskControl.audioMeasureLevels}.
190
189
  */
191
190
  export declare class AudioMeasureLevelsNode extends AutoProcessorMediaNode<"audio"> {
192
- close(): void;
193
191
  }
194
192
 
195
193
  /**
@@ -220,7 +218,6 @@ export declare class AudioMixMatrixNode extends AutoProcessorMediaNode<"audio">
220
218
  * @param settings - The updated settings
221
219
  */
222
220
  updateConfig(settings: AudioMixMatrixSettingsUpdate): void;
223
- close(): void;
224
221
  }
225
222
 
226
223
  /**
@@ -258,7 +255,6 @@ export declare class AudioMixNode<Pins extends string> extends ProcessorMediaNod
258
255
  * @param settings - The updated settings
259
256
  */
260
257
  updateConfig(settings: AudioMixSettingsUpdate<Pins>): void;
261
- close(): void;
262
258
  }
263
259
 
264
260
  /**
@@ -308,7 +304,6 @@ export declare interface AudioMixSource<Pins> {
308
304
  * see: {@link NorskInput.audioSignal}
309
305
  */
310
306
  export declare class AudioSignalGeneratorNode extends SourceMediaNode {
311
- close(): void;
312
307
  }
313
308
 
314
309
  /**
@@ -336,7 +331,6 @@ export declare interface AudioSignalGeneratorSettings extends SourceNodeSettings
336
331
  * see: {@link NorskTransform.audioSplitMultichannel}
337
332
  */
338
333
  export declare class AudioSplitMultichannelNode extends AutoProcessorMediaNode<"audio"> {
339
- close(): void;
340
334
  }
341
335
 
342
336
  /**
@@ -383,7 +377,6 @@ export declare function audioToPin<Pins extends string>(pin: Pins): (streams: St
383
377
  * see: {@link NorskTransform.audioTranscribeAws}
384
378
  */
385
379
  export declare class AudioTranscribeAwsNode extends AutoProcessorMediaNode<"audio"> {
386
- close(): void;
387
380
  }
388
381
 
389
382
  /**
@@ -408,11 +401,60 @@ export declare interface AudioTranscribeAwsSettings extends ProcessorNodeSetting
408
401
  awsCredentials?: AwsCredentials;
409
402
  }
410
403
 
404
+ /**
405
+ * @public
406
+ * see: {@link NorskTransform.audioTranscribeAws}
407
+ */
408
+ export declare class AudioTranscribeAzureNode extends AutoProcessorMediaNode<"audio"> {
409
+ }
410
+
411
+ /**
412
+ * @public
413
+ * Settings for an audio transcribe/translate operation using Azure Speech Service
414
+ * see: {@link NorskTransform.audioTranscribeAzure}
415
+ * */
416
+ export declare interface AudioTranscribeAzureSettings extends ProcessorNodeSettings<AudioTranscribeAzureNode> {
417
+ outputStreamId: number;
418
+ sourceLanguage: string;
419
+ targetLanguages?: string[];
420
+ /** Key for the Azure Speech Service endpoint */
421
+ azureKey: string;
422
+ /** Region for the Azure Speech Service endpoint */
423
+ azureRegion: string;
424
+ maximumLineLength: undefined | number;
425
+ }
426
+
427
+ /**
428
+ * @public
429
+ * see: {@link NorskTransform.audioTranscribeAws}
430
+ */
431
+ export declare class AudioTranscribeWhisperNode extends AutoProcessorMediaNode<"audio"> {
432
+ }
433
+
434
+ /**
435
+ * @public
436
+ * Settings for an Audio Transcribe operation using Whisper sdk
437
+ * see: {@link NorskTransform.audioTranscribeWhisper}
438
+ * */
439
+ export declare interface AudioTranscribeWhisperSettings extends ProcessorNodeSettings<AudioTranscribeWhisperNode> {
440
+ outputStreamId: number;
441
+ stepMs?: number;
442
+ lengthMs?: number;
443
+ keepMs?: number;
444
+ maxTokens?: number;
445
+ speedUp?: boolean;
446
+ noFallback?: boolean;
447
+ numThreads?: number;
448
+ useGpu?: boolean;
449
+ language: string;
450
+ model: string;
451
+ }
452
+
411
453
  export declare interface AutoProcessorMediaNode<Pins extends string> extends SourceMediaNode, AutoSinkMediaNode<Pins> {
412
454
  }
413
455
 
414
456
  export declare class AutoProcessorMediaNode<Pins extends string> {
415
- constructor(client: MediaClient, unregisterNode: (node: MediaNodeState) => void, getGrpcStream: () => (Readable | Writable), subscribeFn: (subscription: Subscription) => Promise<boolean>, subscribeErrorFn?: (error: SubscriptionError) => void, subscribedStreamsChangedFn?: (streams: StreamMetadata[]) => void);
457
+ constructor(client: MediaClient, _unregisterNode: (node: MediaNodeState) => void, getGrpcStream: () => (Readable | Writable), subscribeFn: (subscription: Subscription) => Promise<boolean>, subscribeErrorFn?: (error: SubscriptionError) => void, subscribedStreamsChangedFn?: (streams: StreamMetadata[]) => void);
416
458
  }
417
459
 
418
460
  /** @public */
@@ -537,7 +579,6 @@ export declare class BrowserInputNode extends SourceMediaNode {
537
579
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
538
580
  * */
539
581
  nudge(nudge: number): void;
540
- close(): void;
541
582
  }
542
583
 
543
584
  /**
@@ -775,7 +816,6 @@ export declare interface CmafMultiVariantOutputSettings extends SinkNodeSettings
775
816
 
776
817
  declare class CmafNodeBase<ClientMessage, Pins extends string, T extends MediaNodeState> extends AutoProcessorMediaNode<Pins> {
777
818
  constructor(client: MediaClient, unregisterNode: (node: MediaNodeState) => void, settings: ProcessorNodeSettings<T> & StreamStatisticsMixin, grpcInit: () => grpc.ClientDuplexStream<ClientMessage, HlsOutputEvent>, subscribeFn: (subscription: Subscription) => Promise<boolean>, _playlistPath: PlaylistPath, subscribedStreamsChangedFn?: (streams: StreamMetadata[]) => void);
778
- close(): void;
779
819
  }
780
820
 
781
821
  declare class CmafNodeWithPlaylist<ClientMessage, Pins extends string, T extends MediaNodeState> extends CmafNodeBase<ClientMessage, Pins, T> {
@@ -787,7 +827,6 @@ declare class CmafNodeWithPlaylist<ClientMessage, Pins extends string, T extends
787
827
  * use {@link NorskOutput.cmafMultiVariant} for production.
788
828
  */
789
829
  url(): Promise<string>;
790
- close(): void;
791
830
  }
792
831
 
793
832
  /**
@@ -1040,7 +1079,6 @@ export declare class DeckLinkInputNode extends SourceMediaNode {
1040
1079
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
1041
1080
  * */
1042
1081
  nudge(nudge: number): void;
1043
- close(): void;
1044
1082
  }
1045
1083
 
1046
1084
  /**
@@ -1135,7 +1173,6 @@ export declare interface EncryptionSettings {
1135
1173
  * see: {@link NorskInput.fileImage}
1136
1174
  */
1137
1175
  export declare class FileImageInputNode extends SourceMediaNode {
1138
- close(): void;
1139
1176
  }
1140
1177
 
1141
1178
  /**
@@ -1174,7 +1211,6 @@ export declare class FileMp4InputNode extends SourceMediaNode {
1174
1211
  * */
1175
1212
  nudge(nudge: number): void;
1176
1213
  updateSettings(settings: FileMp4InputSettingsUpdate): void;
1177
- close(): void;
1178
1214
  }
1179
1215
 
1180
1216
  /**
@@ -1205,7 +1241,6 @@ export declare interface FileMp4InputSettingsUpdate {
1205
1241
  * see: {@link NorskOutput.fileMp4}
1206
1242
  */
1207
1243
  export declare class FileMp4OutputNode extends AutoSinkMediaNode<"audio" | "video"> {
1208
- close(): void;
1209
1244
  /**
1210
1245
  * @public
1211
1246
  * Writes a non-fragmented MP4 file containing the data received so far to the
@@ -1269,7 +1304,6 @@ export declare interface FileTsInputSettingsUpdate {
1269
1304
  * see: {@link NorskOutput.fileTs}
1270
1305
  */
1271
1306
  export declare class FileTsOutputNode extends AutoSinkMediaNode<"audio" | "video"> {
1272
- close(): void;
1273
1307
  }
1274
1308
 
1275
1309
  /**
@@ -1287,7 +1321,6 @@ export declare interface FileTsOutputSettings extends SinkNodeSettings<FileTsOut
1287
1321
  * see: {@link NorskInput.fileWebVtt}
1288
1322
  */
1289
1323
  export declare class FileWebVttInputNode extends SourceMediaNode {
1290
- close(): void;
1291
1324
  }
1292
1325
 
1293
1326
  /** @public */
@@ -1455,17 +1488,13 @@ export declare interface HlsTsCombinedPushOutputSettings extends SinkNodeSetting
1455
1488
  * Directives to add to the m3u media playlists
1456
1489
  */
1457
1490
  m3uAdditions?: string;
1458
- /**
1459
- * XML fragment to add to the mpd Representation elements
1460
- */
1461
- mpdAdditions?: string;
1462
1491
  }
1463
1492
 
1464
1493
  /**
1465
1494
  * @public
1466
1495
  * see: {@link NorskOutput.hlsTsMultiVariant}
1467
1496
  */
1468
- export declare class HlsTsMultiVariantOutputNode extends CmafNodeBase<CmafMultiVariantMessage, "video" | "audio" | "subtitle", HlsTsMultiVariantOutputNode> {
1497
+ export declare class HlsTsMultiVariantOutputNode extends CmafNodeBase<HlsTsMultiVariantMessage, "video" | "audio" | "subtitle", HlsTsMultiVariantOutputNode> {
1469
1498
  /** @public The URL of the file based multi variant playlist */
1470
1499
  url: string;
1471
1500
  /**
@@ -1588,7 +1617,6 @@ export declare interface IntervalTimestamp {
1588
1617
  * see: {@link NorskTransform.jitterBuffer}
1589
1618
  */
1590
1619
  export declare class JitterBufferNode extends AutoProcessorMediaNode<"audio" | "video" | "subtitle"> {
1591
- close(): void;
1592
1620
  }
1593
1621
 
1594
1622
  /**
@@ -1745,7 +1773,7 @@ export declare type MediaNodeId = string;
1745
1773
  export declare class MediaNodeState {
1746
1774
  id: MediaNodeId | undefined;
1747
1775
  constructor(client: MediaClient);
1748
- close(): void;
1776
+ close(): Promise<void>;
1749
1777
  }
1750
1778
 
1751
1779
  /**
@@ -1843,7 +1871,7 @@ export declare class Norsk {
1843
1871
  * Norsk Runtime version information
1844
1872
  */
1845
1873
  version: Version;
1846
- close(): void;
1874
+ close(): Promise<void>;
1847
1875
  /** @public */
1848
1876
  static connect(settings?: NorskSettings): Promise<Norsk>;
1849
1877
  }
@@ -2061,7 +2089,7 @@ export declare interface NorskOutput {
2061
2089
  */
2062
2090
  hlsTsCombinedPush(settings: HlsTsCombinedPushOutputSettings): Promise<HlsTsCombinedPushOutputNode>;
2063
2091
  /**
2064
- * Produces a multi variant Hls Ts manifest for a collection of media streams
2092
+ * Produces a multi variant HLS TS manifest for a collection of media streams
2065
2093
  *
2066
2094
  * This can optionally be served via the Norsk web server or be pushed
2067
2095
  * to other locations - see {@link CmafDestinationSettings}
@@ -2167,7 +2195,7 @@ export declare interface NorskSettings {
2167
2195
  onConnecting?: () => void;
2168
2196
  onReady?: () => void;
2169
2197
  onFailedToConnect?: () => void;
2170
- /** Code to execute if the Norsk node is shutdown - by default if logs and exits the client application */
2198
+ /** Code to execute if the Norsk node is shutdown - by default it logs and nothing else */
2171
2199
  onShutdown?: () => void;
2172
2200
  onCurrentLoad?: (load: CurrentLoad) => void;
2173
2201
  onHello?: (version: Version) => void;
@@ -2224,6 +2252,18 @@ export declare interface NorskTransform {
2224
2252
  * @param settings - Settings and credentials for AWS transcribe
2225
2253
  */
2226
2254
  audioTranscribeAws(settings: AudioTranscribeAwsSettings): Promise<AudioTranscribeAwsNode>;
2255
+ /**
2256
+ * Create a Media Node performing transcription into subtitles using the
2257
+ * Azure Speech service.
2258
+ * @param settings - Settings and credentials for Azure transcribe
2259
+ */
2260
+ audioTranscribeAzure(settings: AudioTranscribeAzureSettings): Promise<AudioTranscribeAzureNode>;
2261
+ /**
2262
+ * Create a Media Node performing transcription into subtitles using the
2263
+ * Whisper speech recognition model.
2264
+ * @param settings - Settings and credentials for Whisper transcribe
2265
+ */
2266
+ audioTranscribeWhisper(settings: AudioTranscribeWhisperSettings): Promise<AudioTranscribeWhisperNode>;
2227
2267
  /**
2228
2268
  * Mix multiple audio streams together into a single output,
2229
2269
  * with optional gain control on each input.
@@ -2752,7 +2792,6 @@ export declare interface Resolution {
2752
2792
  * see: {@link NorskOutput.rtmp}
2753
2793
  */
2754
2794
  export declare class RtmpOutputNode extends AutoSinkMediaNode<"audio" | "video"> {
2755
- close(): void;
2756
2795
  }
2757
2796
 
2758
2797
  /**
@@ -2776,7 +2815,6 @@ export declare interface RtmpOutputSettings extends SinkNodeSettings<RtmpOutputN
2776
2815
  * see: {@link NorskInput.rtmpServer}
2777
2816
  */
2778
2817
  export declare class RtmpServerInputNode extends SourceMediaNode {
2779
- close(): void;
2780
2818
  /**
2781
2819
  * @public
2782
2820
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
@@ -2869,7 +2907,7 @@ export declare interface RtpEac3 {
2869
2907
  kind: "eac3";
2870
2908
  /** The clock rate of the stream */
2871
2909
  clockRate: number;
2872
- /** The language code (this will end up in outgoing metadata) */
2910
+ /** The language code (this will end up in outgoing metadata). RFC 5646 language tag. */
2873
2911
  languageCode?: string;
2874
2912
  ec3Extension: boolean;
2875
2913
  complexityIndex: number;
@@ -2905,7 +2943,6 @@ export declare class RtpInputNode extends SourceMediaNode {
2905
2943
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
2906
2944
  * */
2907
2945
  nudge(nudge: number): void;
2908
- close(): void;
2909
2946
  }
2910
2947
 
2911
2948
  /**
@@ -3150,7 +3187,6 @@ export declare class SrtInputNode extends SourceMediaNode {
3150
3187
  * @param streamIndex - the index of the stream to be terminated
3151
3188
  * */
3152
3189
  closeStream(streamIndex: number): void;
3153
- close(): void;
3154
3190
  }
3155
3191
 
3156
3192
  /**
@@ -3207,7 +3243,6 @@ export declare type SrtMode = "listener" | "caller";
3207
3243
  * see: {@link NorskOutput.srt}
3208
3244
  */
3209
3245
  export declare class SrtOutputNode extends AutoSinkMediaNode<"audio" | "video"> {
3210
- close(): void;
3211
3246
  }
3212
3247
 
3213
3248
  /**
@@ -3259,7 +3294,6 @@ export declare type StabilizationMode = "low" | "medium" | "high";
3259
3294
  * see: {@link NorskTransform.streamSync}
3260
3295
  */
3261
3296
  export declare class StreamAlignNode extends AutoProcessorMediaNode<"audio" | "video"> {
3262
- close(): void;
3263
3297
  }
3264
3298
 
3265
3299
  /**
@@ -3279,7 +3313,6 @@ export declare interface StreamAlignSettings extends ProcessorNodeSettings<Strea
3279
3313
  * see: {@link NorskTransform.streamChaosMonkey}
3280
3314
  */
3281
3315
  export declare class StreamChaosMonkeyNode extends AutoProcessorMediaNode<"audio" | "video" | "subtitle"> {
3282
- close(): void;
3283
3316
  }
3284
3317
 
3285
3318
  /**
@@ -3311,7 +3344,6 @@ export declare interface StreamKey {
3311
3344
  * see: {@link NorskTransform.streamKeyOverride}
3312
3345
  */
3313
3346
  export declare class StreamKeyOverrideNode extends AutoProcessorMediaNode<"audio" | "video" | "subtitle"> {
3314
- close(): void;
3315
3347
  }
3316
3348
 
3317
3349
  /**
@@ -3379,7 +3411,6 @@ export declare class StreamMetadataOverrideNode extends AutoProcessorMediaNode<"
3379
3411
  * @param settings - The new settings
3380
3412
  */
3381
3413
  updateConfig(settings: StreamMetadataOverrideSettingsUpdate): void;
3382
- close(): void;
3383
3414
  }
3384
3415
 
3385
3416
  /**
@@ -3399,11 +3430,11 @@ export declare interface StreamMetadataOverrideSettingsUpdate {
3399
3430
  audio?: {
3400
3431
  /** Override the bitrate metadata of a compressed audio stream, or `0` to clear */
3401
3432
  bitrate?: number;
3402
- /** Override the language metadata of an audio stream, or `""` to clear */
3433
+ /** Override the language metadata of an audio stream, or `""` to clear. RFC 5646 language tag. */
3403
3434
  language?: string;
3404
3435
  };
3405
3436
  subtitles?: {
3406
- /** Override the language metadata of a subtitles stream, or `""` to clear */
3437
+ /** Override the language metadata of a subtitles stream, or `""` to clear. RFC 5646 language tag. */
3407
3438
  language?: string;
3408
3439
  };
3409
3440
  }
@@ -3445,7 +3476,6 @@ export declare interface StreamStatisticsMixin {
3445
3476
  * see {@link NorskControl.streamStatistics}.
3446
3477
  */
3447
3478
  export declare class StreamStatisticsNode extends AutoProcessorMediaNode<"audio" | "video"> {
3448
- close(): void;
3449
3479
  }
3450
3480
 
3451
3481
  /**
@@ -3472,7 +3502,6 @@ export declare interface StreamStatisticsSettings extends ProcessorNodeSettings<
3472
3502
  */
3473
3503
  export declare class StreamSwitchHardNode<Pins extends string> extends ProcessorMediaNode<Pins> {
3474
3504
  switchSource(newSource: Pins): void;
3475
- close(): void;
3476
3505
  }
3477
3506
 
3478
3507
  /**
@@ -3497,7 +3526,6 @@ export declare class StreamSwitchSmoothNode<Pins extends string> extends Process
3497
3526
  * Switches the source used for the current output of this node
3498
3527
  */
3499
3528
  switchSource(newSource: Pins): void;
3500
- close(): void;
3501
3529
  }
3502
3530
 
3503
3531
  /**
@@ -3551,7 +3579,6 @@ export declare interface StreamSwitchSmoothSettings<Pins extends string> extends
3551
3579
  * see: {@link NorskTransform.streamSync}
3552
3580
  */
3553
3581
  export declare class StreamSyncNode extends AutoProcessorMediaNode<"audio" | "video"> {
3554
- close(): void;
3555
3582
  }
3556
3583
 
3557
3584
  /**
@@ -3572,7 +3599,6 @@ export declare class StreamTimestampNudgeNode extends AutoProcessorMediaNode<"au
3572
3599
  * Applies a gradual nudge to the stream timestamps by the specified number of milliseconds
3573
3600
  * */
3574
3601
  nudge(nudge: number): void;
3575
- close(): void;
3576
3602
  }
3577
3603
 
3578
3604
  /**
@@ -3589,7 +3615,6 @@ export declare interface StreamTimestampNudgeSettings extends ProcessorNodeSetti
3589
3615
  * see: {@link NorskDebug.streamTimestampReport}
3590
3616
  */
3591
3617
  export declare class StreamTimestampReportNode extends AutoSinkMediaNode<string> {
3592
- close(): void;
3593
3618
  }
3594
3619
 
3595
3620
  /**
@@ -3667,6 +3692,10 @@ export declare interface SubtitleStreamMetadata {
3667
3692
  */
3668
3693
  export declare function subtitleStreams(streams: readonly StreamMetadata[]): StreamMetadata[];
3669
3694
 
3695
+ export declare function toOptBool(b?: boolean): OptionalBool | undefined;
3696
+
3697
+ export declare function toOptInt(i?: number): OptionalInt | undefined;
3698
+
3670
3699
  declare class TsCommonInputNode<SourceMessage, T extends SourceMediaNode> extends SourceMediaNode {
3671
3700
  constructor(tsType: TsInputType, client: MediaClient, unregisterNode: (node: MediaNodeState) => void, settings: SourceNodeSettings<T> & StreamStatisticsMixin, nudgeFn: (nudge: TimestampProgramNudge) => SourceMessage, onEof: (() => void) | undefined, grpcStartFn: () => grpc.ClientDuplexStream<SourceMessage, TsInputEvent>);
3672
3701
  /**
@@ -3674,7 +3703,6 @@ declare class TsCommonInputNode<SourceMessage, T extends SourceMediaNode> extend
3674
3703
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
3675
3704
  * */
3676
3705
  nudge(programNumber: number, nudge: number): void;
3677
- close(): void;
3678
3706
  }
3679
3707
 
3680
3708
  declare enum TsInputType {
@@ -3704,7 +3732,6 @@ export declare interface UdpTsInputSettings extends RemoteInputSettings<UdpTsInp
3704
3732
  * see: {@link NorskOutput.udpTs}
3705
3733
  */
3706
3734
  export declare class UdpTsOutputNode extends AutoSinkMediaNode<"audio" | "video"> {
3707
- close(): void;
3708
3735
  }
3709
3736
 
3710
3737
  /**
@@ -3771,7 +3798,6 @@ export declare class VideoComposeNode<Pins extends string> extends ProcessorMedi
3771
3798
  * do this too often (more than once a second for example!)
3772
3799
  */
3773
3800
  updateConfig(settings: VideoComposeSettingsUpdate<Pins>): void;
3774
- close(): void;
3775
3801
  }
3776
3802
 
3777
3803
  /** @public */
@@ -3844,7 +3870,6 @@ export declare interface VideoComposeSettingsUpdate<Pins extends string> {
3844
3870
  * see: {@link NorskTransform.videoEncode}
3845
3871
  */
3846
3872
  export declare class VideoEncodeNode extends AutoProcessorMediaNode<"video"> {
3847
- close(): void;
3848
3873
  }
3849
3874
 
3850
3875
  /**
@@ -3926,7 +3951,6 @@ export declare function videoStreams(streams: readonly StreamMetadata[]): Stream
3926
3951
  * see: {@link NorskInput.audioSignal}
3927
3952
  */
3928
3953
  export declare class VideoTestcardGeneratorNode extends SourceMediaNode {
3929
- close(): void;
3930
3954
  }
3931
3955
 
3932
3956
  /**
@@ -3960,7 +3984,6 @@ export declare function videoToPin<Pins extends string>(pin: Pins): (streams: St
3960
3984
  * see: {@link NorskTransform.videoTransform}
3961
3985
  */
3962
3986
  export declare class VideoTransformNode extends AutoProcessorMediaNode<"video"> {
3963
- close(): void;
3964
3987
  }
3965
3988
 
3966
3989
  /**
@@ -3987,7 +4010,6 @@ export declare interface VideoTransformSettings extends ProcessorNodeSettings<Vi
3987
4010
  export declare class WebRTCBrowserNode extends AutoProcessorMediaNode<"audio" | "video"> {
3988
4011
  /** @public The URL of the local player */
3989
4012
  playerUrl: string;
3990
- close(): void;
3991
4013
  }
3992
4014
 
3993
4015
  /**
@@ -4013,7 +4035,6 @@ export declare class WhepOutputNode extends AutoSinkMediaNode<"audio" | "video">
4013
4035
  playerUrl: string;
4014
4036
  /** @public The URL of the WHEP endpoint */
4015
4037
  endpointUrl: string;
4016
- close(): void;
4017
4038
  }
4018
4039
 
4019
4040
  /**
@@ -4044,7 +4065,6 @@ export declare class WhipInputNode extends SourceMediaNode {
4044
4065
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
4045
4066
  * */
4046
4067
  nudge(sourceName: string, programNumber: number, nudge: number): void;
4047
- close(): void;
4048
4068
  }
4049
4069
 
4050
4070
  /** @public */
@@ -4070,7 +4090,6 @@ export declare interface WhipInputSettings extends InputSettings<WhipInputNode>,
4070
4090
  * see: {@link NorskOutput.whip}
4071
4091
  */
4072
4092
  export declare class WhipOutputNode extends AutoSinkMediaNode<"audio" | "video"> {
4073
- close(): void;
4074
4093
  }
4075
4094
 
4076
4095
  /**
@@ -60,7 +60,7 @@ export interface StreamStatisticsMixin {
60
60
  export declare class MediaNodeState {
61
61
  id: MediaNodeId | undefined;
62
62
  constructor(client: MediaClient);
63
- close(): void;
63
+ close(): Promise<void>;
64
64
  }
65
65
  /** @public */
66
66
  export declare type ReceiveFromAddress<Pins extends string> = {
@@ -68,7 +68,16 @@ class MediaNodeState {
68
68
  this.id = undefined;
69
69
  }
70
70
  close() {
71
- console.log("Default close operator called on medianode, this is probably a missing implementation");
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ return new Promise((r) => __awaiter(this, void 0, void 0, function* () {
73
+ if (this.id) {
74
+ (0, utils_1.debuglog)("Sending close request for media node with id %s", this.id);
75
+ this.client.closeMediaNode((0, utils_1.provideFull)(media_pb_1.MediaNodeId, { id: this.id }), () => r());
76
+ }
77
+ else
78
+ r();
79
+ }));
80
+ });
72
81
  }
73
82
  /** @internal */
74
83
  finalise() {
@@ -13,7 +13,6 @@ export interface StreamTimestampReportSettings extends SinkNodeSettings<StreamTi
13
13
  * see: {@link NorskDebug.streamTimestampReport}
14
14
  */
15
15
  export declare class StreamTimestampReportNode extends AutoSinkMediaNode<string> {
16
- close(): void;
17
16
  }
18
17
  /**
19
18
  * @public
@@ -73,9 +73,6 @@ class StreamTimestampReportNode extends common_1.AutoSinkMediaNode {
73
73
  return node;
74
74
  });
75
75
  }
76
- close() {
77
- this.grpcStream.cancel();
78
- }
79
76
  }
80
77
  exports.StreamTimestampReportNode = StreamTimestampReportNode;
81
78
  //# sourceMappingURL=debug.js.map
@@ -44,7 +44,7 @@ export interface RtpEac3 {
44
44
  kind: "eac3";
45
45
  /** The clock rate of the stream */
46
46
  clockRate: number;
47
- /** The language code (this will end up in outgoing metadata) */
47
+ /** The language code (this will end up in outgoing metadata). RFC 5646 language tag. */
48
48
  languageCode?: string;
49
49
  ec3Extension: boolean;
50
50
  complexityIndex: number;
@@ -121,7 +121,6 @@ export declare class RtpInputNode extends SourceMediaNode {
121
121
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
122
122
  * */
123
123
  nudge(nudge: number): void;
124
- close(): void;
125
124
  }
126
125
  /**
127
126
  * @public
@@ -219,7 +218,6 @@ export interface StreamKeySettings {
219
218
  * see: {@link NorskInput.rtmpServer}
220
219
  */
221
220
  export declare class RtmpServerInputNode extends SourceMediaNode {
222
- close(): void;
223
221
  /**
224
222
  * @public
225
223
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
@@ -239,7 +237,6 @@ declare class TsCommonInputNode<SourceMessage, T extends SourceMediaNode> extend
239
237
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
240
238
  * */
241
239
  nudge(programNumber: number, nudge: number): void;
242
- close(): void;
243
240
  }
244
241
  /**
245
242
  * @public
@@ -269,7 +266,6 @@ export declare class DeckLinkInputNode extends SourceMediaNode {
269
266
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
270
267
  * */
271
268
  nudge(nudge: number): void;
272
- close(): void;
273
269
  }
274
270
  /** @public */
275
271
  export interface WhipInputSettings extends InputSettings<WhipInputNode>, StreamStatisticsMixin {
@@ -302,7 +298,6 @@ export declare class WhipInputNode extends SourceMediaNode {
302
298
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
303
299
  * */
304
300
  nudge(sourceName: string, programNumber: number, nudge: number): void;
305
- close(): void;
306
301
  }
307
302
  /**
308
303
  * @public
@@ -319,7 +314,6 @@ export interface LocalFileInputSettings extends InputSettings<SourceMediaNode> {
319
314
  * see: {@link NorskInput.fileWebVtt}
320
315
  */
321
316
  export declare class FileWebVttInputNode extends SourceMediaNode {
322
- close(): void;
323
317
  }
324
318
  /** @public */
325
319
  export interface FileTsInputSettings extends LocalFileInputSettings, StreamStatisticsMixin {
@@ -412,7 +406,6 @@ export declare class SrtInputNode extends SourceMediaNode {
412
406
  * @param streamIndex - the index of the stream to be terminated
413
407
  * */
414
408
  closeStream(streamIndex: number): void;
415
- close(): void;
416
409
  }
417
410
  /**
418
411
  * @public
@@ -483,7 +476,6 @@ export declare class BrowserInputNode extends SourceMediaNode {
483
476
  * Applies a gradual nudge to the outgoing stream timestamps by the specified number of milliseconds
484
477
  * */
485
478
  nudge(nudge: number): void;
486
- close(): void;
487
479
  }
488
480
  /**
489
481
  * @public
@@ -509,7 +501,6 @@ export interface AudioSignalGeneratorSettings extends SourceNodeSettings<AudioSi
509
501
  * see: {@link NorskInput.audioSignal}
510
502
  */
511
503
  export declare class AudioSignalGeneratorNode extends SourceMediaNode {
512
- close(): void;
513
504
  }
514
505
  /**
515
506
  * @public
@@ -539,7 +530,6 @@ declare type Pattern = "black" | "smpte75" | "smpte100";
539
530
  * see: {@link NorskInput.audioSignal}
540
531
  */
541
532
  export declare class VideoTestcardGeneratorNode extends SourceMediaNode {
542
- close(): void;
543
533
  }
544
534
  /**
545
535
  * @public
@@ -559,7 +549,6 @@ export interface FileImageInputSettings extends SourceNodeSettings<FileImageInpu
559
549
  * see: {@link NorskInput.fileImage}
560
550
  */
561
551
  export declare class FileImageInputNode extends SourceMediaNode {
562
- close(): void;
563
552
  }
564
553
  /**
565
554
  * @public
@@ -603,7 +592,6 @@ export declare class FileMp4InputNode extends SourceMediaNode {
603
592
  * */
604
593
  nudge(nudge: number): void;
605
594
  updateSettings(settings: FileMp4InputSettingsUpdate): void;
606
- close(): void;
607
595
  }
608
596
  /**
609
597
  * @public