@norskvideo/norsk-sdk 1.0.402-2026-01-05-fb2d936b → 1.0.402-2026-01-09-7c042c58
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/lib/package.json +2 -2
- package/lib/src/media_nodes/input.d.ts +3 -1
- package/lib/src/media_nodes/input.js +2 -1
- package/lib/src/media_nodes/output.d.ts +1 -0
- package/lib/src/media_nodes/output.js +1 -0
- package/lib/src/media_nodes/types.d.ts +12 -0
- package/lib/src/media_nodes/types.js +15 -1
- package/package.json +2 -2
package/lib/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"license": "MIT",
|
|
3
3
|
"name": "@norskvideo/norsk-sdk",
|
|
4
|
-
"version": "1.0.402-2026-01-
|
|
4
|
+
"version": "1.0.402-2026-01-09-7c042c58+nightly",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@bufbuild/protobuf": "^0.3.0",
|
|
7
7
|
"@grpc/grpc-js": "~1.12.0",
|
|
8
|
-
"@norskvideo/norsk-api": "1.0.402-2026-01-
|
|
8
|
+
"@norskvideo/norsk-api": "1.0.402-2026-01-09-7c042c58+nightly",
|
|
9
9
|
"lodash": "^4.17.21",
|
|
10
10
|
"typescript-nullable": "^0.6.0"
|
|
11
11
|
},
|
|
@@ -2,7 +2,7 @@ import * as grpc from "@grpc/grpc-js";
|
|
|
2
2
|
import { FileTsInputMessage, M3u8MediaInputMessage, RtmpError_InvalidStreamResponse, RtmpError_UnsupportedAudio, RtmpError_UnsupportedVideo, StreamKey as StreamKeyPB, TimestampProgramNudge, TsInputEvent, UdpTsInputMessage } from "@norskvideo/norsk-api/lib/media_pb";
|
|
3
3
|
import { DeckLinkDisplayModeId, DeckLinkPixelFormat, DeckLinkVideoConnection, FrameRate } from "../types";
|
|
4
4
|
import { MediaClient, MediaNodeState, SourceMediaNode, SourceNodeSettings, StreamStatisticsMixin } from "./common";
|
|
5
|
-
import { AacChannelLayout, BrowserEvent, ChannelLayout, IceServerSettings, ImageFormat, Interval, PixelFormat, RtmpServerInputStatus, RtpLinearPcmBitDepth, SampleFormat, SampleRate, SourceTime, SrtInputStatus, SrtMode, StreamMetadata, SubtitleFragment, TeletextLine, Wave, WebRtcStatsMessage } from "./types";
|
|
5
|
+
import { AacChannelLayout, BrowserEvent, ChannelLayout, IceServerSettings, ImageFormat, InputThresholdSettings, Interval, PixelFormat, RtmpServerInputStatus, RtpLinearPcmBitDepth, SampleFormat, SampleRate, SourceTime, SrtInputStatus, SrtMode, StreamMetadata, SubtitleFragment, TeletextLine, Wave, WebRtcStatsMessage } from "./types";
|
|
6
6
|
/**
|
|
7
7
|
* @public
|
|
8
8
|
* Base settings for most input nodes
|
|
@@ -703,6 +703,8 @@ export interface SrtCommonInputSettings {
|
|
|
703
703
|
index: number) => void;
|
|
704
704
|
/** When specified dump the raw source input for debug purposes to the given directory */
|
|
705
705
|
debugDumpSource?: string;
|
|
706
|
+
/** when specified, drop data until the input is ticking at realtime */
|
|
707
|
+
startupThreshold?: InputThresholdSettings;
|
|
706
708
|
}
|
|
707
709
|
/**
|
|
708
710
|
* @public
|
|
@@ -1107,7 +1107,8 @@ class SrtInputNode extends common_1.SourceMediaNode {
|
|
|
1107
1107
|
maxBandwidth: (0, types_2.toOptInt)(settings.maxBandwidth),
|
|
1108
1108
|
overheadBandwidth: (0, types_2.toOptInt)(settings.overheadBandwidth),
|
|
1109
1109
|
peerIdleTimeoutMs: (0, types_2.toOptInt)(settings.peerIdleTimeoutMs),
|
|
1110
|
-
debugDumpSource: settings.debugDumpSource || ""
|
|
1110
|
+
debugDumpSource: settings.debugDumpSource || "",
|
|
1111
|
+
startThreshold: (0, types_2.toInputThresholdSettings)(settings.startupThreshold)
|
|
1111
1112
|
});
|
|
1112
1113
|
const stream = client.media.createInputSrt();
|
|
1113
1114
|
stream.write((0, utils_1.provideFull)(media_pb_1.SrtInputMessage, (0, utils_1.mkMessageCase)({ initialConfig: config })));
|
|
@@ -1183,6 +1183,7 @@ export interface FileMp4OutputSettings extends SinkNodeSettings<FileMp4OutputNod
|
|
|
1183
1183
|
* Settings for encrypting the video track.
|
|
1184
1184
|
*/
|
|
1185
1185
|
videoEncryption?: EncryptionSettings;
|
|
1186
|
+
enableIncrementalMp4Write?: boolean;
|
|
1186
1187
|
}
|
|
1187
1188
|
/**
|
|
1188
1189
|
* @public
|
|
@@ -1502,6 +1502,7 @@ class FileMp4OutputNode extends common_2.AutoSinkMediaNode {
|
|
|
1502
1502
|
statsSampling: settings.statsSampling
|
|
1503
1503
|
? (0, utils_1.provideFull)(media_pb_1.StreamStatisticsSampling, settings.statsSampling)
|
|
1504
1504
|
: undefined,
|
|
1505
|
+
enableIncrementalMp4Write: !!settings.enableIncrementalMp4Write
|
|
1505
1506
|
});
|
|
1506
1507
|
this.grpcStream = this.client.media.createOutputFileMp4();
|
|
1507
1508
|
this.grpcStream.write((0, utils_1.provideFull)(media_pb_1.FileMp4OutputMessage, (0, utils_1.mkMessageCase)({ configuration: config })));
|
|
@@ -1611,6 +1611,18 @@ export interface JitterBufferConfig {
|
|
|
1611
1611
|
maxSlope?: number;
|
|
1612
1612
|
calibrationWindowDurationMs?: number;
|
|
1613
1613
|
}
|
|
1614
|
+
/**
|
|
1615
|
+
* @public
|
|
1616
|
+
* Shared configuration for inputs that have a start-up threshold
|
|
1617
|
+
* that is to say, they drop data until the input has stopped bursting/settled down
|
|
1618
|
+
*/
|
|
1619
|
+
export interface InputThresholdSettings {
|
|
1620
|
+
consecutiveGood?: number;
|
|
1621
|
+
minPeriodMs?: number;
|
|
1622
|
+
maxPeriodMs?: number;
|
|
1623
|
+
maxSlope?: number;
|
|
1624
|
+
calibrationWindowDurationMs?: number;
|
|
1625
|
+
}
|
|
1614
1626
|
/**
|
|
1615
1627
|
* @public
|
|
1616
1628
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toAmdU30H264 = exports.toAmdU30H264Profile = exports.toAmdU30HevcProfile = exports.toAmdU30HevcTier = exports.toQuadraAv1 = exports.toQuadraHevc = exports.toQuadraH264 = exports.toEncodeHint = exports.toQuadraH264Profile = exports.toQuadraAv1Profile = exports.toQuadraHevcProfile = exports.toQuadraAv1Tier = exports.toQuadraHevcTier = exports.toLoganHevc = exports.toLoganH264 = exports.toLoganH264Profile = exports.toLoganHevcProfile = exports.toLoganHevcTier = exports.toNvidiaH264 = exports.toNvidiaHevc = exports.toNvidiaH264Profile = exports.toNvidiaHevcProfile = exports.toNvidiaHevcTier = exports.toNvidiaBFrameRefMode = exports.toNvidiaTuning = exports.toNvidiaPreset = exports.toCabrMode = exports.toNvidiaRateControl = exports.toNvidiaRateControlMode = exports.toX265Codec = exports.toX265Tune = exports.toX264Codec = exports.toDeinterlaceSettings = exports.toVideoTransformHardwareAcceleration = exports.fromSrtTsContext = exports.fromTsContext = exports.fromContext = exports.fromStreamMetadata = exports.metadataForStreamKey = exports.fromStreamKey = exports.mkStreamKey = exports.toMediaNodeId = exports.toOptString = exports.mkOptString = exports.toOptBool = exports.mkOptBool = exports.toOptFloat = exports.mkOptFloat = exports.toOptInt = exports.mkOptInt = void 0;
|
|
4
4
|
exports.fromScte35PB = exports.toScte35PB = exports.mkWebrtcServerSettings = exports.mkEncryptionSettings = exports.fromSourceSubscriptionError = exports.fromSubscriptionError = exports.fromStreamStatistics = exports.fromAudioMeasureLevels = exports.mkDb = exports.toInterval = exports.fromInterval = exports.msToInterval = exports.intervalToMs = exports.addInterval = exports.fromChannelName = exports.toChannelName = exports.getAmountOfChannels = exports.fromChannelLayout = exports.toChannelLayout = exports.fromSampleRate = exports.toSampleRate = exports.toApiMetrics = exports.fromSampleFormat = exports.toSampleFormat = exports.toSsHardwareAcceleration = exports.toComposeHardwareAcceleration = exports.toComposeMissingStreamBehaviour = exports.toPixelFormat = exports.toSimpleEasing = exports.toAacProfile = exports.toImageFormat = exports.toStabilizationMode = exports.toSentenceBuildMode = exports.fromBrowserEvent = exports.toSrtMode = exports.fromSrtInputState = exports.fromRtmpServerInputState = exports.toBitDepth2 = exports.toBitDepth = exports.toAmdMA35DAv1 = exports.toAmdMA35DHevc = exports.toAmdMA35DH264 = exports.toTrinary = exports.toAmdMA35DEncodeCommon = exports.toAmdMA35DH264Profile = exports.toAmdMA35DHevcProfile = exports.toAmdMA35DHevcTier = exports.toAmdMA35DAv1Profile = exports.toAmdMA35DAv1Tier = exports.toAmdU30Hevc = void 0;
|
|
5
|
-
exports.toTeletextColor = exports.fromTeletextColor = exports.toJitterBufferSettings = exports.toSourceTime = exports.mkDtmf = exports.toWave = exports.toSegmentationStrategy = void 0;
|
|
5
|
+
exports.toTeletextColor = exports.fromTeletextColor = exports.toInputThresholdSettings = exports.toJitterBufferSettings = exports.toSourceTime = exports.mkDtmf = exports.toWave = exports.toSegmentationStrategy = void 0;
|
|
6
6
|
const media_pb_1 = require("@norskvideo/norsk-api/lib/media_pb");
|
|
7
7
|
const common_pb_1 = require("@norskvideo/norsk-api/lib/shared/common_pb");
|
|
8
8
|
const utils_1 = require("../shared/utils");
|
|
@@ -2779,6 +2779,20 @@ function toJitterBufferSettings(settings) {
|
|
|
2779
2779
|
});
|
|
2780
2780
|
}
|
|
2781
2781
|
exports.toJitterBufferSettings = toJitterBufferSettings;
|
|
2782
|
+
/** @internal */
|
|
2783
|
+
function toInputThresholdSettings(settings) {
|
|
2784
|
+
if (!settings) {
|
|
2785
|
+
return undefined;
|
|
2786
|
+
}
|
|
2787
|
+
return (0, utils_1.provideFull)(media_pb_1.InputStartThresholdSettings, {
|
|
2788
|
+
consecutiveGood: settings.consecutiveGood !== undefined ? mkOptInt(settings.consecutiveGood) : undefined,
|
|
2789
|
+
minPeriod: settings.minPeriodMs !== undefined ? mkOptInt(Math.round(settings.minPeriodMs)) : undefined,
|
|
2790
|
+
maxPeriod: settings.maxPeriodMs !== undefined ? mkOptInt(Math.round(settings.maxPeriodMs)) : undefined,
|
|
2791
|
+
calibrationWindowDuration: settings.calibrationWindowDurationMs !== undefined ? mkOptInt(Math.round(settings.calibrationWindowDurationMs)) : undefined,
|
|
2792
|
+
maxSlope: settings.maxSlope !== undefined ? mkOptFloat(settings.maxSlope) : undefined
|
|
2793
|
+
});
|
|
2794
|
+
}
|
|
2795
|
+
exports.toInputThresholdSettings = toInputThresholdSettings;
|
|
2782
2796
|
/**
|
|
2783
2797
|
* @internal
|
|
2784
2798
|
*/
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"license": "MIT",
|
|
3
3
|
"name": "@norskvideo/norsk-sdk",
|
|
4
|
-
"version": "1.0.402-2026-01-
|
|
4
|
+
"version": "1.0.402-2026-01-09-7c042c58+nightly",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@bufbuild/protobuf": "^0.3.0",
|
|
7
7
|
"@grpc/grpc-js": "~1.12.0",
|
|
8
|
-
"@norskvideo/norsk-api": "1.0.402-2026-01-
|
|
8
|
+
"@norskvideo/norsk-api": "1.0.402-2026-01-09-7c042c58+nightly",
|
|
9
9
|
"lodash": "^4.17.21",
|
|
10
10
|
"typescript-nullable": "^0.6.0"
|
|
11
11
|
},
|