QualityReportingSettings interface

Settings for the QualityReporting node. see NorskInspect.qualityReporting()

Signature:

export interface QualityReportingSettings extends SinkNodeSettings<QualityReportingNode>

Properties

Property Type Description

audio?

QualityReportingAudioSettings

(Optional) Audio reporting configuration — omit to disable audio reporting entirely.

onBlackFrameDetected?

(event: { streamKey: StreamKey; blackPixelRatio: number; }) ⇒ void

(Optional) Called when a black-frame run begins (after minBlackFrames consecutive black frames).

onBlackFrameEnded?

(event: { streamKey: StreamKey; durationFrames: number; }) ⇒ void

(Optional) Called when a black-frame run ends (after minClearFrames consecutive non-black frames).

onClippingDetected?

(event: { streamKey: StreamKey; clipRatio: number; }) ⇒ void

(Optional) Called when clipping begins (clip_ratio above threshold, sustained).

onClippingEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when clipping ends.

onDcOffsetDetected?

(event: { streamKey: StreamKey; dcOffset: number; }) ⇒ void

(Optional) Called when a DC-offset run begins (|dc_offset| above threshold, sustained).

onDcOffsetEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when a DC-offset run ends.

onDeadChannelDetected?

(event: { streamKey: StreamKey; }) ⇒ void

(Optional) Called when a channel-dropout run begins.

onDeadChannelEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when a channel-dropout run ends.

onDualMonoDetected?

(event: { streamKey: StreamKey; correlation: number; }) ⇒ void

(Optional) Called when a dual-mono run begins (correlation held above the threshold).

onDualMonoEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when the dual-mono condition clears.

onFreezeDetected?

(event: { streamKey: StreamKey; freezeScore: number; }) ⇒ void

(Optional) Called when a freeze-frame run begins (after minFrozenFrames consecutive frozen frames).

onFreezeEnded?

(event: { streamKey: StreamKey; durationFrames: number; }) ⇒ void

(Optional) Called when a freeze-frame run ends (after minMovingFrames consecutive moving frames).

onHumDetected?

(event: { streamKey: StreamKey; humEnergy: number; }) ⇒ void

(Optional) Called when a mains-hum run begins (humEnergy = relative 50/60Hz energy).

onHumEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when a mains-hum run ends.

onLoudnessInRange?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when loudness returns within range.

onLoudnessOutOfRange?

(event: { streamKey: StreamKey; lufs: number; }) ⇒ void

(Optional) Called when short-term loudness goes outside target ± tolerance; lufs is the current short-term value.

onMqaAudioScore?

(event: { streamKey: StreamKey; score: number; }) ⇒ void

(Optional) Called each time the aggregated SVTA MQA-AUDIO composite score changes (emitted only when reportMqaAudio is enabled).

onMqaVideoScore?

(event: { streamKey: StreamKey; score: number; components?: { psnr?: number; ssim?: number; nrIqa?: number; blackRatio?: number; freezeScore?: number; }; analysisLagMs?: number; }) ⇒ void

(Optional) Called with the aggregated SVTA MQA-VIDEO composite score (emitted only when reportMqaVideo is enabled) — whenever it changes, and otherwise periodically so the components breakdown stays live. Each component is present only when measured this report (psnr/ssim need the encoder; nrIqa is sampled).

onNoiseDetected?

(event: { streamKey: StreamKey; flatness: number; }) ⇒ void

(Optional) Called when a static-noise run begins (flatness ≈ 1 = flat spectrum).

onNoiseEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when a static-noise run ends.

onNrIqaQualityDegraded?

(event: { streamKey: StreamKey; score: number; }) ⇒ void

(Optional) Called when an NR-IQA poor-quality run begins (after minPoorFrames consecutive sub-threshold scores).

onNrIqaQualityRestored?

(event: { streamKey: StreamKey; durationFrames: number; }) ⇒ void

(Optional) Called when an NR-IQA poor-quality run ends.

onPhaseIssueDetected?

(event: { streamKey: StreamKey; correlation: number; }) ⇒ void

(Optional) Called when a phase issue begins (correlation below threshold, sustained).

onPhaseIssueEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when a phase issue ends.

onSignalLost?

(event: { streamKey: StreamKey; }) ⇒ void

(Optional) Called when no frames have arrived on a still-advertised stream for at least the configured signalLostDetect timeout (transport up, media stalled — the stream disappearing entirely is a subscription change, not this event).

onSignalRestored?

(event: { streamKey: StreamKey; outageMs: number; }) ⇒ void

(Optional) Called when frames resume after a signal-lost period.

onSilenceDetected?

(event: { streamKey: StreamKey; rmsDb: number; }) ⇒ void

(Optional) Called when a stream has been silent for at least minSilenceMs.

onSilenceEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when signal returns after silence (minClearMs of audio).

onStuckDetected?

(event: { streamKey: StreamKey; }) ⇒ void

(Optional) Called when a stuck/frozen-feed run begins.

onStuckEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when the feed unsticks.

onToneDetected?

(event: { streamKey: StreamKey; freq: number; }) ⇒ void

(Optional) Called when a tone run begins; freq is the dominant frequency (Hz).

onToneEnded?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when a tone run ends.

onTruePeakOk?

(event: { streamKey: StreamKey; durationMs: number; }) ⇒ void

(Optional) Called when true peak returns below the ceiling.

onTruePeakOver?

(event: { streamKey: StreamKey; dbtp: number; }) ⇒ void

(Optional) Called when true peak exceeds the ceiling; dbtp is the peak (dBTP).

onTsErrors?

(event: { streamKey: StreamKey; counters: { syncLoss: number; syncByteErrors: number; ccErrorsDuplicate: number; ccErrorsOutOfOrder: number; patErrors: number; pmtErrors: number; pidErrors: number; transportErrors: number; crcErrors: number; pcrRepetitionErrors: number; pcrDiscontinuityErrors: number; pcrAccuracyErrors: number; ptsErrors: number; catErrors: number; unreferencedPids: number; siRepetitionErrors: number; totalPackets: number; }; }) ⇒ void

(Optional) Called with the TR 101 290 transport-stream error counters (ETR 101 290 priorities 1-3). Only fires on TS-based ingest. counters are CUMULATIVE running totals since the stream started (Prometheus-counter style) — a consumer differences successive reports for windowed counts / rates. Emitted at most ~1/s, and only when a counter has advanced.

video?

QualityReportingVideoSettings

(Optional) Video reporting configuration — omit to disable video reporting entirely.