UNPKG

@joergmittaglawo/dmvconfig

Version:

DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.

1,180 lines (1,179 loc) 78.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Enums = exports.All = exports.SessionAsNamedTableRow = exports.Session = exports.VideoReceiverAsNamedTableRow = exports.VideoReceiver = exports.AncBurstReceiverAsNamedTableRow = exports.AncBurstReceiver = exports.VideoServoAsArrayRow = exports.VideoServo = exports.PassthroughReceiverAsNamedTableRow = exports.PassthroughReceiver = exports.PassthroughEssence = exports.AudioReceiverAsNamedTableRow = exports.AudioReceiver = exports.AudioServoAsArrayRow = exports.AudioServo = exports.MediaReceiver = exports.CurrentRedundancyLevels = exports.Timing = exports.PassthroughFlowPartitionAsTableRow = exports.PassthroughFlowPartition = exports.AudioFlowPartitionAsTableRow = exports.AudioFlowPartition = exports.VideoFlowPartitionAsTableRow = exports.VideoFlowPartition = exports.AffineNetworkSourceAsTableRow = exports.AffineNetworkSource = exports.NetworkSourceAsTableRow = exports.NetworkSource = exports.PacketStreamAsTableRow = exports.PacketStream = exports.PacketStreamIngressTiming = exports.BufferAsTableRow = exports.Buffer = exports.RTPInputStatisticsAsArrayRow = exports.RTPInputStatistics = exports.Expectations = exports.Egress = exports.Ingress = exports.CountableErrorHandler = exports.lower = exports.lift = void 0; const VScript = require("vscript"); const _Memory = require("./Memory"); const _MetadataProcessor = require("./MetadataProcessor"); const _PTP = require("./PTP"); const _Audio = require("./Audio"); const _Video = require("./Video"); const _NetworkInterfaces = require("./NetworkInterfaces"); const _Time = require("./Time"); exports.lift = { AllDerivedPtpTraits: (kwl, socket) => kwl ? (new AllDerivedPtpTraits(new VScript.Subtree(socket, kwl))) : null, AllSettingsPhaseMismatch: (kwl, socket) => kwl ? (new AllSettingsPhaseMismatch(new VScript.Subtree(socket, kwl))) : null, AllSettings: (kwl, socket) => kwl ? (new AllSettings(new VScript.Subtree(socket, kwl))) : null, AllDiagnostics: (kwl, socket) => kwl ? (new AllDiagnostics(new VScript.Subtree(socket, kwl))) : null, MPacketDebugInfo: (x, _) => { return x ? { packet_stream_index: x[0], m_flag: x[1], seqnr: x[2], last_word: x[3], empty: x[4], rtp_timestamp: x[5], frc: x[6], misc: x[7] } : null; }, Session: (kwl, socket) => kwl ? (new Session(new VScript.Subtree(socket, kwl))) : null, SessionLastAcceptedTrack: (x, _) => { return x ? { track: x[0], fc: x[1], controller_version: x[2], controller_id: x[3] } : null; }, SessionVersionWindow: (kwl, socket) => kwl ? (new SessionVersionWindow(new VScript.Subtree(socket, kwl))) : null, SessionEventCountersNumRejectedSdps: (kwl, socket) => kwl ? (new SessionEventCountersNumRejectedSdps(new VScript.Subtree(socket, kwl))) : null, SessionEventCounters: (kwl, socket) => kwl ? (new SessionEventCounters(new VScript.Subtree(socket, kwl))) : null, SessionInterfaces: (kwl, socket) => kwl ? (new SessionInterfaces(new VScript.Subtree(socket, kwl))) : null, SessionPassthroughReceivers: (kwl, socket) => kwl ? (new SessionPassthroughReceivers(new VScript.Subtree(socket, kwl))) : null, SessionAncBurstReceivers: (kwl, socket) => kwl ? (new SessionAncBurstReceivers(new VScript.Subtree(socket, kwl))) : null, SessionAudioReceivers: (kwl, socket) => kwl ? (new SessionAudioReceivers(new VScript.Subtree(socket, kwl))) : null, SessionVideoReceivers: (kwl, socket) => kwl ? (new SessionVideoReceivers(new VScript.Subtree(socket, kwl))) : null, SessionSwitchCapability: (kwl, socket) => kwl ? (new SessionSwitchCapability(new VScript.Subtree(socket, kwl))) : null, VideoReceiver: (kwl, socket) => kwl ? (new VideoReceiver(new VScript.Subtree(socket, kwl))) : null, VideoReceiverVideoSpecificMetadataDecoderCounters: (x, _) => { return x ? { num_relocations: x[0], num_embedded_packets: x[1], fc: x[2], micro_epoch_index: x[3] } : null; }, VideoReceiverVideoSpecificMetadataDecoder: (kwl, socket) => kwl ? (new VideoReceiverVideoSpecificMetadataDecoder(new VScript.Subtree(socket, kwl))) : null, VideoReceiverVideoSpecificOutput: (kwl, socket) => kwl ? (new VideoReceiverVideoSpecificOutput(new VScript.Subtree(socket, kwl))) : null, VideoReceiverVideoSpecificFlowPartitions: (kwl, socket) => kwl ? (new VideoReceiverVideoSpecificFlowPartitions(new VScript.Subtree(socket, kwl))) : null, VideoReceiverVideoSpecificEventCounters: (kwl, socket) => kwl ? (new VideoReceiverVideoSpecificEventCounters(new VScript.Subtree(socket, kwl))) : null, VideoReceiverVideoSpecificErrorCounters: (kwl, socket) => kwl ? (new VideoReceiverVideoSpecificErrorCounters(new VScript.Subtree(socket, kwl))) : null, VideoReceiverVideoSpecificCapabilities: (kwl, socket) => kwl ? (new VideoReceiverVideoSpecificCapabilities(new VScript.Subtree(socket, kwl))) : null, VideoReceiverVideoSpecific: (kwl, socket) => kwl ? (new VideoReceiverVideoSpecific(new VScript.Subtree(socket, kwl))) : null, AncBurstReceiver: (kwl, socket) => kwl ? (new AncBurstReceiver(new VScript.Subtree(socket, kwl))) : null, AncBurstReceiverMediaClock: (kwl, socket) => kwl ? (new AncBurstReceiverMediaClock(new VScript.Subtree(socket, kwl))) : null, SoftMetadataStatistics: (x, _) => { return x ? { packets_received: x[0], discarded_obsolete: x[1], parse_errors: x[2], type_unknown: x[3], parsed_as_empty_cea708: x[4], parsed_as_proper_cea708: x[5], parsed_as_empty_op47: x[6], parsed_as_proper_op47: x[7], parsed_as_empty_st12: x[8], parsed_as_proper_st12: x[9] } : null; }, VideoServo: (kwl, socket) => kwl ? (new VideoServo(new VScript.Subtree(socket, kwl))) : null, PassthroughReceiver: (kwl, socket) => kwl ? (new PassthroughReceiver(new VScript.Subtree(socket, kwl))) : null, PassthroughReceiverFlowPartitions: (kwl, socket) => kwl ? (new PassthroughReceiverFlowPartitions(new VScript.Subtree(socket, kwl))) : null, PassthroughReceiverIssues: (kwl, socket) => kwl ? (new PassthroughReceiverIssues(new VScript.Subtree(socket, kwl))) : null, PassthroughReceiverEgress: (kwl, socket) => kwl ? (new PassthroughReceiverEgress(new VScript.Subtree(socket, kwl))) : null, PassthroughEssence: (kwl, socket) => kwl ? (new PassthroughEssence(new VScript.Subtree(socket, kwl))) : null, AudioReceiver: (kwl, socket) => kwl ? (new AudioReceiver(new VScript.Subtree(socket, kwl))) : null, AudioReceiverAudioSpecificOutput: (kwl, socket) => kwl ? (new AudioReceiverAudioSpecificOutput(new VScript.Subtree(socket, kwl))) : null, AudioReceiverAudioSpecificFlowPartitions: (kwl, socket) => kwl ? (new AudioReceiverAudioSpecificFlowPartitions(new VScript.Subtree(socket, kwl))) : null, AudioReceiverAudioSpecific: (kwl, socket) => kwl ? (new AudioReceiverAudioSpecific(new VScript.Subtree(socket, kwl))) : null, AudioServo: (kwl, socket) => kwl ? (new AudioServo(new VScript.Subtree(socket, kwl))) : null, MediaReceiver: (kwl, socket) => kwl ? (new MediaReceiver(new VScript.Subtree(socket, kwl))) : null, MediaReceiverLatencySpread: (kwl, socket) => kwl ? (new MediaReceiverLatencySpread(new VScript.Subtree(socket, kwl))) : null, MediaReceiverRedundancyLevels: (kwl, socket) => kwl ? (new MediaReceiverRedundancyLevels(new VScript.Subtree(socket, kwl))) : null, MediaReceiverRequiredRedundancyLevel: (kwl, socket) => kwl ? (new MediaReceiverRequiredRedundancyLevel(new VScript.Subtree(socket, kwl))) : null, MediaReceiverReadDelayPerStream: (kwl, socket) => kwl ? (new MediaReceiverReadDelayPerStream(new VScript.Subtree(socket, kwl))) : null, MediaReceiverReadDelay: (kwl, socket) => kwl ? (new MediaReceiverReadDelay(new VScript.Subtree(socket, kwl))) : null, MediaReceiverEventCounters: (kwl, socket) => kwl ? (new MediaReceiverEventCounters(new VScript.Subtree(socket, kwl))) : null, MediaReceiverErrorCounters: (kwl, socket) => kwl ? (new MediaReceiverErrorCounters(new VScript.Subtree(socket, kwl))) : null, MediaReceiverFlightPermit: (kwl, socket) => kwl ? (new MediaReceiverFlightPermit(new VScript.Subtree(socket, kwl))) : null, MediaReceiverIssues: (kwl, socket) => kwl ? (new MediaReceiverIssues(new VScript.Subtree(socket, kwl))) : null, CurrentRedundancyLevels: (kwl, socket) => kwl ? (new CurrentRedundancyLevels(new VScript.Subtree(socket, kwl))) : null, ErrorCounter: (x, _) => { return x ? { last_seen_at: x[0], consec_err_count: x[1], err_acc: x[2] } : null; }, Timing: (kwl, socket) => kwl ? (new Timing(new VScript.Subtree(socket, kwl))) : null, PassthroughFlowPartition: (kwl, socket) => kwl ? (new PassthroughFlowPartition(new VScript.Subtree(socket, kwl))) : null, AudioFlowPartition: (kwl, socket) => kwl ? (new AudioFlowPartition(new VScript.Subtree(socket, kwl))) : null, VideoFlowPartition: (kwl, socket) => kwl ? (new VideoFlowPartition(new VScript.Subtree(socket, kwl))) : null, AffineNetworkSource: (kwl, socket) => kwl ? (new AffineNetworkSource(new VScript.Subtree(socket, kwl))) : null, NetworkSource: (kwl, socket) => kwl ? (new NetworkSource(new VScript.Subtree(socket, kwl))) : null, PacketStream: (kwl, socket) => kwl ? (new PacketStream(new VScript.Subtree(socket, kwl))) : null, MPacket: (x, _) => { return x ? { extended_frc: x[0], seqnr: x[1], format: x[2] } : null; }, PacketStreamIngressTiming: (kwl, socket) => kwl ? (new PacketStreamIngressTiming(new VScript.Subtree(socket, kwl))) : null, Buffer: (kwl, socket) => kwl ? (new Buffer(new VScript.Subtree(socket, kwl))) : null, RTPInputStatistics: (kwl, socket) => kwl ? (new RTPInputStatistics(new VScript.Subtree(socket, kwl))) : null, Expectations: (kwl, socket) => kwl ? (new Expectations(new VScript.Subtree(socket, kwl))) : null, ExpectationsMpacketFrom: (kwl, socket) => kwl ? (new ExpectationsMpacketFrom(new VScript.Subtree(socket, kwl))) : null, Egress: (kwl, socket) => kwl ? (new Egress(new VScript.Subtree(socket, kwl))) : null, EgressTracks: (x, _) => { return x ? { current: x[0], incoming: x[1] } : null; }, Ingress: (kwl, socket) => kwl ? (new Ingress(new VScript.Subtree(socket, kwl))) : null, CountableErrorHandler: (kwl, socket) => kwl ? (new CountableErrorHandler(new VScript.Subtree(socket, kwl))) : null }; exports.lower = { AllDerivedPtpTraits: (ref) => ref ? ref.raw.kwl : null, AllSettingsPhaseMismatch: (ref) => ref ? ref.raw.kwl : null, AllSettings: (ref) => ref ? ref.raw.kwl : null, AllDiagnostics: (ref) => ref ? ref.raw.kwl : null, MPacketDebugInfo: (x) => x ? [x.packet_stream_index, x.m_flag, x.seqnr, x.last_word, x.empty, x.rtp_timestamp, x.frc, x.misc] : null, Session: (ref) => ref ? ref.raw.kwl : null, SessionLastAcceptedTrack: (x) => x ? [x.track, x.fc, x.controller_version, x.controller_id] : null, SessionVersionWindow: (ref) => ref ? ref.raw.kwl : null, SessionEventCountersNumRejectedSdps: (ref) => ref ? ref.raw.kwl : null, SessionEventCounters: (ref) => ref ? ref.raw.kwl : null, SessionInterfaces: (ref) => ref ? ref.raw.kwl : null, SessionPassthroughReceivers: (ref) => ref ? ref.raw.kwl : null, SessionAncBurstReceivers: (ref) => ref ? ref.raw.kwl : null, SessionAudioReceivers: (ref) => ref ? ref.raw.kwl : null, SessionVideoReceivers: (ref) => ref ? ref.raw.kwl : null, SessionSwitchCapability: (ref) => ref ? ref.raw.kwl : null, VideoReceiver: (ref) => ref ? ref.raw.kwl : null, VideoReceiverVideoSpecificMetadataDecoderCounters: (x) => x ? [x.num_relocations, x.num_embedded_packets, x.fc, x.micro_epoch_index] : null, VideoReceiverVideoSpecificMetadataDecoder: (ref) => ref ? ref.raw.kwl : null, VideoReceiverVideoSpecificOutput: (ref) => ref ? ref.raw.kwl : null, VideoReceiverVideoSpecificFlowPartitions: (ref) => ref ? ref.raw.kwl : null, VideoReceiverVideoSpecificEventCounters: (ref) => ref ? ref.raw.kwl : null, VideoReceiverVideoSpecificErrorCounters: (ref) => ref ? ref.raw.kwl : null, VideoReceiverVideoSpecificCapabilities: (ref) => ref ? ref.raw.kwl : null, VideoReceiverVideoSpecific: (ref) => ref ? ref.raw.kwl : null, AncBurstReceiver: (ref) => ref ? ref.raw.kwl : null, AncBurstReceiverMediaClock: (ref) => ref ? ref.raw.kwl : null, SoftMetadataStatistics: (x) => x ? [x.packets_received, x.discarded_obsolete, x.parse_errors, x.type_unknown, x.parsed_as_empty_cea708, x.parsed_as_proper_cea708, x.parsed_as_empty_op47, x.parsed_as_proper_op47, x.parsed_as_empty_st12, x.parsed_as_proper_st12] : null, VideoServo: (ref) => ref ? ref.raw.kwl : null, PassthroughReceiver: (ref) => ref ? ref.raw.kwl : null, PassthroughReceiverFlowPartitions: (ref) => ref ? ref.raw.kwl : null, PassthroughReceiverIssues: (ref) => ref ? ref.raw.kwl : null, PassthroughReceiverEgress: (ref) => ref ? ref.raw.kwl : null, PassthroughEssence: (ref) => ref ? ref.raw.kwl : null, AudioReceiver: (ref) => ref ? ref.raw.kwl : null, AudioReceiverAudioSpecificOutput: (ref) => ref ? ref.raw.kwl : null, AudioReceiverAudioSpecificFlowPartitions: (ref) => ref ? ref.raw.kwl : null, AudioReceiverAudioSpecific: (ref) => ref ? ref.raw.kwl : null, AudioServo: (ref) => ref ? ref.raw.kwl : null, MediaReceiver: (ref) => ref ? ref.raw.kwl : null, MediaReceiverLatencySpread: (ref) => ref ? ref.raw.kwl : null, MediaReceiverRedundancyLevels: (ref) => ref ? ref.raw.kwl : null, MediaReceiverRequiredRedundancyLevel: (ref) => ref ? ref.raw.kwl : null, MediaReceiverReadDelayPerStream: (ref) => ref ? ref.raw.kwl : null, MediaReceiverReadDelay: (ref) => ref ? ref.raw.kwl : null, MediaReceiverEventCounters: (ref) => ref ? ref.raw.kwl : null, MediaReceiverErrorCounters: (ref) => ref ? ref.raw.kwl : null, MediaReceiverFlightPermit: (ref) => ref ? ref.raw.kwl : null, MediaReceiverIssues: (ref) => ref ? ref.raw.kwl : null, CurrentRedundancyLevels: (ref) => ref ? ref.raw.kwl : null, ErrorCounter: (x) => x ? [x.last_seen_at, x.consec_err_count, x.err_acc] : null, Timing: (ref) => ref ? ref.raw.kwl : null, PassthroughFlowPartition: (ref) => ref ? ref.raw.kwl : null, AudioFlowPartition: (ref) => ref ? ref.raw.kwl : null, VideoFlowPartition: (ref) => ref ? ref.raw.kwl : null, AffineNetworkSource: (ref) => ref ? ref.raw.kwl : null, NetworkSource: (ref) => ref ? ref.raw.kwl : null, PacketStream: (ref) => ref ? ref.raw.kwl : null, MPacket: (x) => x ? [x.extended_frc, x.seqnr, x.format] : null, PacketStreamIngressTiming: (ref) => ref ? ref.raw.kwl : null, Buffer: (ref) => ref ? ref.raw.kwl : null, RTPInputStatistics: (ref) => ref ? ref.raw.kwl : null, Expectations: (ref) => ref ? ref.raw.kwl : null, ExpectationsMpacketFrom: (ref) => ref ? ref.raw.kwl : null, Egress: (ref) => ref ? ref.raw.kwl : null, EgressTracks: (x) => x ? [x.current, x.incoming] : null, Ingress: (ref) => ref ? ref.raw.kwl : null, CountableErrorHandler: (ref) => ref ? ref.raw.kwl : null }; class CountableErrorHandler { constructor(raw) { this.raw = raw; } get threshold() { return new VScript.rwKeyword(this, "threshold"); } get above_threshold_do() { return new VScript.rwKeyword(this, "above_threshold_do"); } } exports.CountableErrorHandler = CountableErrorHandler; class Ingress { constructor(raw) { this.raw = raw; } get sdp_a() { return new VScript.rKeyword(this, "sdp_a"); } get sdp_b() { return new VScript.rKeyword(this, "sdp_b"); } } exports.Ingress = Ingress; class Egress { constructor(raw) { this.raw = raw; } get state() { return new VScript.rKeyword(this, "state"); } get soft_metadata() { return new VScript.rKeyword(this, "soft_metadata"); } get frozen() { return new VScript.rKeyword(this, "frozen"); } get tracks() { return new VScript.rKeyword(this, "tracks", { lift: exports.lift.EgressTracks, lower: exports.lower.EgressTracks }); } get source() { return new VScript.rKeyword(this, "source", { lift: exports.lift.Buffer, lower: exports.lower.Buffer }); } get primary_region_holds() { return new VScript.rKeyword(this, "primary_region_holds"); } } exports.Egress = Egress; class ExpectationsMpacketFrom { constructor(raw) { this.raw = raw; } get sdp_a() { return new VScript.rKeyword(this, "sdp_a"); } get sdp_b() { return new VScript.rKeyword(this, "sdp_b"); } } class Expectations { constructor(raw) { this.raw = raw; } get sof() { return new VScript.rKeyword(this, "sof"); } get mpacket_from() { return new ExpectationsMpacketFrom(this.raw.find("mpacket_from")); } } exports.Expectations = Expectations; class RTPInputStatistics { constructor(raw) { this.raw = raw; } get input_oom() { return new VScript.rKeyword(this, "input_oom"); } get queue_full() { return new VScript.rKeyword(this, "queue_full"); } get lowest_memfree() { return new VScript.rKeyword(this, "lowest_memfree"); } get memfree() { return new VScript.rKeyword(this, "memfree"); } get highest_fifo_usedw() { return new VScript.rKeyword(this, "highest_fifo_usedw"); } get fifo_usedw() { return new VScript.rKeyword(this, "fifo_usedw"); } /** Clear statistic counter */ get clear() { return new VScript.wKeyword(this, "clear"); } } exports.RTPInputStatistics = RTPInputStatistics; class RTPInputStatisticsAsArrayRow extends RTPInputStatistics { constructor(st, index, parent) { super(st); this.index = index; this.parent = parent; } } exports.RTPInputStatisticsAsArrayRow = RTPInputStatisticsAsArrayRow; class Buffer { constructor(raw) { this.raw = raw; } get id() { return new VScript.rKeyword(this, "id"); } get num_inlets() { return new VScript.rKeyword(this, "num_inlets"); } get num_outlets() { return new VScript.rKeyword(this, "num_outlets"); } } exports.Buffer = Buffer; class BufferAsTableRow extends Buffer { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } exports.BufferAsTableRow = BufferAsTableRow; class PacketStreamIngressTiming { constructor(raw) { this.raw = raw; } get nominal_mpacket_interval() { return new VScript.rKeyword(this, "nominal_mpacket_interval"); } get filter_interval() { return new VScript.rKeyword(this, "filter_interval"); } get media_clock() { return new _Time.Source(this.raw.find("media_clock")); } } exports.PacketStreamIngressTiming = PacketStreamIngressTiming; class PacketStream { constructor(raw) { this.raw = raw; } /** Seqnr offset relative to other packet streams mapped to the same memory region. N packet streams hence define N-1 meaningful offsets. */ get seqnr_offset() { return new VScript.rKeyword(this, "seqnr_offset"); } /** IP (unicast) address of the RTP stream sender */ get src_address() { return new VScript.rKeyword(this, "src_address"); } /** IP (multicast) destination address of the RTP stream */ get dst_address() { return new VScript.rKeyword(this, "dst_address"); } get interface() { return new VScript.rKeyword(this, "interface", { lift: _NetworkInterfaces.lift.VirtualInterface, lower: _NetworkInterfaces.lower.VirtualInterface }); } /** no. of m-packets received since the last stream start (for audio streams, this refers to virtual m-packets). Note that for interlaced video streams, this number only includes lower field m-packets, i.e., a 50i 2110 stream should report 25 m-packets per second. */ get mpackets_received() { return new VScript.rKeyword(this, "mpackets_received"); } get type() { return new VScript.rKeyword(this, "type"); } get buffer() { return new VScript.rKeyword(this, "buffer", { lift: exports.lift.Buffer, lower: exports.lower.Buffer }); } get ingress_timing() { return new PacketStreamIngressTiming(this.raw.find("ingress_timing")); } } exports.PacketStream = PacketStream; class PacketStreamAsTableRow extends PacketStream { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } exports.PacketStreamAsTableRow = PacketStreamAsTableRow; class NetworkSource { constructor(raw) { this.raw = raw; } get packet_stream() { return new VScript.rKeyword(this, "packet_stream", { lift: exports.lift.PacketStream, lower: exports.lower.PacketStream }); } } exports.NetworkSource = NetworkSource; class NetworkSourceAsTableRow extends NetworkSource { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } exports.NetworkSourceAsTableRow = NetworkSourceAsTableRow; class AffineNetworkSource { constructor(raw) { this.raw = raw; } get source() { return new VScript.rKeyword(this, "source", { lift: exports.lift.NetworkSource, lower: exports.lower.NetworkSource }); } get seqnr_offset() { return new VScript.rKeyword(this, "seqnr_offset"); } } exports.AffineNetworkSource = AffineNetworkSource; class AffineNetworkSourceAsTableRow extends AffineNetworkSource { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } exports.AffineNetworkSourceAsTableRow = AffineNetworkSourceAsTableRow; class VideoFlowPartition { constructor(raw) { this.raw = raw; } get id() { return new VScript.rKeyword(this, "id"); } get sdp_standard() { return new VScript.rKeyword(this, "sdp_standard"); } get fmt_standard() { return new VScript.rKeyword(this, "fmt_standard"); } get transport_format() { return new VScript.rKeyword(this, "transport_format"); } get leader() { return new VScript.rKeyword(this, "leader", { lift: exports.lift.NetworkSource, lower: exports.lower.NetworkSource }); } /** Network sources feeding this flow partition; if more than 8 sources feed into a single partition, surplus sources will not be published via the web interface */ get auxiliary_sources() { return new VScript.StronglyTypedTable(new VScript.Table(this.raw.socket, this.raw.full_kwl("auxiliary_sources")), (row, enclosing_table) => new AffineNetworkSourceAsTableRow(row, enclosing_table)); } } exports.VideoFlowPartition = VideoFlowPartition; class VideoFlowPartitionAsTableRow extends VideoFlowPartition { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } exports.VideoFlowPartitionAsTableRow = VideoFlowPartitionAsTableRow; class AudioFlowPartition { constructor(raw) { this.raw = raw; } get id() { return new VScript.rKeyword(this, "id"); } get format() { return new VScript.rKeyword(this, "format"); } get frequency() { return new VScript.rKeyword(this, "frequency"); } get channelcount() { return new VScript.rKeyword(this, "channelcount"); } get samplecount() { return new VScript.rKeyword(this, "samplecount"); } get leader() { return new VScript.rKeyword(this, "leader", { lift: exports.lift.NetworkSource, lower: exports.lower.NetworkSource }); } /** Network sources feeding this flow partition; if more than 8 sources feed into a single partition, surplus sources will not be published via the web interface */ get auxiliary_sources() { return new VScript.StronglyTypedTable(new VScript.Table(this.raw.socket, this.raw.full_kwl("auxiliary_sources")), (row, enclosing_table) => new AffineNetworkSourceAsTableRow(row, enclosing_table)); } } exports.AudioFlowPartition = AudioFlowPartition; class AudioFlowPartitionAsTableRow extends AudioFlowPartition { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } exports.AudioFlowPartitionAsTableRow = AudioFlowPartitionAsTableRow; class PassthroughFlowPartition { constructor(raw) { this.raw = raw; } get id() { return new VScript.rKeyword(this, "id"); } get leader() { return new VScript.rKeyword(this, "leader", { lift: exports.lift.NetworkSource, lower: exports.lower.NetworkSource }); } /** Network sources feeding this flow partition; if more than 8 sources feed into a single partition, surplus sources will not be published via the web interface */ get auxiliary_sources() { return new VScript.StronglyTypedTable(new VScript.Table(this.raw.socket, this.raw.full_kwl("auxiliary_sources")), (row, enclosing_table) => new AffineNetworkSourceAsTableRow(row, enclosing_table)); } } exports.PassthroughFlowPartition = PassthroughFlowPartition; class PassthroughFlowPartitionAsTableRow extends PassthroughFlowPartition { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } exports.PassthroughFlowPartitionAsTableRow = PassthroughFlowPartitionAsTableRow; class Timing { constructor(raw) { this.raw = raw; } get phase_reference() { return new VScript.duplexKeyword(this, "phase_reference"); } get time_source() { return new VScript.duplexKeyword(this, "time_source", { lift: _Time.lift.Source, lower: _Time.lower.Source }); } get foreign_receiver() { return new VScript.duplexKeyword(this, "foreign_receiver", { lift: exports.lift.MediaReceiver, lower: exports.lower.MediaReceiver }); } /** the correct interpretation of `value` depends on `phase_reference`; please refer to the help section `RTPReceiver > Timing settings` for details */ get value() { return new VScript.duplexKeyword(this, "value"); } /** the `read_delay` setting does not always take effect (e.g., it is ignored during phase-accurate video playout). Still, the decoder needs to maintain a minimum distance from the RX buffer boundaries to protect against over- or underflow. This minimum distance can be set using `safety_margin`. Note that, depending on the currently received stream format, a configured safety margin may not always be realizable */ get safety_margin() { return new VScript.duplexKeyword(this, "safety_margin"); } get buffer_capacity() { return new VScript.rKeyword(this, "buffer_capacity"); } /** set this to `true` if you want the incoming stream's RTP timestamp to define its offset from the PTP/SMPTE ST 2059 epoch. For further information on how this flag affects stream timing, please refer to `Help > RTPReceiver > Timing`. */ get use_rtp_timestamp() { return new VScript.duplexKeyword(this, "use_rtp_timestamp"); } get on_backpressure() { return new VScript.duplexKeyword(this, "on_backpressure"); } } exports.Timing = Timing; class CurrentRedundancyLevels { constructor(raw) { this.raw = raw; } /** Number of streams referenced by this receiver's SDP that are actually present, indexed by subflow number. The latter is typically 0, but for quad-link video receivers can range from 0 to 3, and is 4 for 2110-40 flows routed into a 2110-20 video receiver. */ get per_subflow() { return new VScript.rKeyword(this, "per_subflow"); } get overall() { return new VScript.rKeyword(this, "overall"); } } exports.CurrentRedundancyLevels = CurrentRedundancyLevels; class MediaReceiverIssues { constructor(raw) { this.raw = raw; } get subscription_failed() { return new VScript.rKeyword(this, "subscription_failed"); } get uncalibrated_genlock() { return new VScript.rKeyword(this, "uncalibrated_genlock"); } get uncalibrated_or_missing_time_source() { return new VScript.rKeyword(this, "uncalibrated_or_missing_time_source"); } get undersized_timing_window() { return new VScript.rKeyword(this, "undersized_timing_window"); } get readout_request_failed() { return new VScript.rKeyword(this, "readout_request_failed"); } get swap_request_failed() { return new VScript.rKeyword(this, "swap_request_failed"); } } class MediaReceiverFlightPermit { constructor(raw) { this.raw = raw; } get denied() { return new VScript.rKeyword(this, "denied"); } get remaining_patience() { return new VScript.rKeyword(this, "remaining_patience"); } /** internal timestamp, initialized to zero at process startup */ get prev_request_at() { return new VScript.rKeyword(this, "prev_request_at"); } } class MediaReceiverErrorCounters { constructor(raw) { this.raw = raw; } get rx_error() { return new VScript.rKeyword(this, "rx_error", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } /** premature read errors are signalled when the decoder attempts to process data that has not yet been delivered by the memory controller */ get premature_read() { return new VScript.rKeyword(this, "premature_read", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } get liveness_timeout() { return new VScript.rKeyword(this, "liveness_timeout", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } get phase_mismatch() { return new VScript.rKeyword(this, "phase_mismatch", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } get subscription_failure() { return new VScript.rKeyword(this, "subscription_failure", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } } class MediaReceiverEventCounters { constructor(raw) { this.raw = raw; } /** increased by 1 on every start attempt targeting SDP A */ get start_a() { return new VScript.rKeyword(this, "start_a"); } /** increased by 1 on every start attempt targeting SDP B */ get start_b() { return new VScript.rKeyword(this, "start_b"); } /** increased by 1 on every A → B switch attempt */ get switch_ab() { return new VScript.rKeyword(this, "switch_ab"); } /** increased by 1 on every B → A switch attempt */ get switch_ba() { return new VScript.rKeyword(this, "switch_ba"); } /** increased by 1 on every receiver stop */ get stop() { return new VScript.rKeyword(this, "stop"); } /** increased by 1 on every error-induced receiver restart */ get restart() { return new VScript.rKeyword(this, "restart"); } /** increased by 1 every time an accepted SDP request evicts another SDP currently targeted by the decoder backend */ get stop_evicted() { return new VScript.rKeyword(this, "stop_evicted"); } /** BBM video receivers that have their RX buffer supplied by other receivers' network streams do not attempt to freeze their decoder backends at switch time. If these foreign streams are withdrawn before the BBM switch has completed, the BBM receiver's decoder backend will be stopped, and `stop_abandoned` will increase by 1 */ get stop_abandoned() { return new VScript.rKeyword(this, "stop_abandoned"); } /** if, during SDP request processing, the completion of a previously issued start command has not been verified conclusively, the decoder backend may be stopped, in which case `stop_unfinished_start_attempt` will increase by 1 */ get stop_unfinished_start_attempt() { return new VScript.rKeyword(this, "stop_unfinished_start_attempt"); } /** if `clean_switching_policy` is set to `Whatever`, impossible clean-switching requests are silently converted to patch requests, thus causing loss-of-signal events at switch time */ get downgraded_switch_requests() { return new VScript.rKeyword(this, "downgraded_switch_requests"); } /** increased by 1 every time the receiver formally switches between identical media flows on tracks A and B */ get elided_switch_requests() { return new VScript.rKeyword(this, "elided_switch_requests"); } } /** TODO: convert to variable-size arrays */ class MediaReceiverReadDelayPerStream { constructor(raw) { this.raw = raw; } get stream() { return new VScript.rKeyword(this, "stream", { lift: exports.lift.PacketStream, lower: exports.lower.PacketStream }); } /** used to distinguish between a video flow's underlying video streams (subflows 0 to 3 for a quad-link flow, 0 otherwise), and its 2110-40 sidecar (4), if any */ get subflow_index() { return new VScript.rKeyword(this, "subflow_index"); } get is_rearguard() { return new VScript.rKeyword(this, "is_rearguard"); } get read_delay() { return new VScript.rKeyword(this, "read_delay", { lift: _Time.lift.TimestampedOffset, lower: _Time.lower.TimestampedOffset }); } } class MediaReceiverReadDelayPerStreamAsTableRow extends MediaReceiverReadDelayPerStream { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } class MediaReceiverReadDelay { constructor(raw) { this.raw = raw; } get target_track() { return new VScript.rKeyword(this, "target_track"); } get overall() { return new VScript.rKeyword(this, "overall", { lift: _Time.lift.TimestampedOffset, lower: _Time.lower.TimestampedOffset }); } /** TODO: convert to variable-size arrays */ get per_stream() { return new VScript.StronglyTypedTable(new VScript.Table(this.raw.socket, this.raw.full_kwl("per_stream")), (row, enclosing_table) => new MediaReceiverReadDelayPerStreamAsTableRow(row, enclosing_table)); } } class MediaReceiverRequiredRedundancyLevel { constructor(raw) { this.raw = raw; } /** number of packet streams referenced by this receiver's media description at track A that must have been registered at their respective network interfaces for the receiver to attempt readout */ get sdp_a() { return new VScript.rKeyword(this, "sdp_a"); } /** number of packet streams referenced by this receiver's media description at track B that must have been registered at their respective network interfaces for the receiver to attempt readout */ get sdp_b() { return new VScript.rKeyword(this, "sdp_b"); } } class MediaReceiverRedundancyLevels { constructor(raw) { this.raw = raw; } get nominally_present() { return new CurrentRedundancyLevels(this.raw.find("nominally_present")); } get within_safe_bounds() { return new CurrentRedundancyLevels(this.raw.find("within_safe_bounds")); } } class MediaReceiverLatencySpread { constructor(raw) { this.raw = raw; } get per_subflow() { return new VScript.rKeyword(this, "per_subflow"); } get overall() { return new VScript.rKeyword(this, "overall"); } } class MediaReceiver { constructor(raw) { this.raw = raw; } get state() { return new VScript.rKeyword(this, "state"); } get hosting_session() { return new VScript.duplexKeyword(this, "hosting_session", { lift: exports.lift.Session, lower: exports.lower.Session }); } /** Clear error counters */ get clear_error_counters() { return new VScript.wKeyword(this, "clear_error_counters"); } /** Clear event counters */ get clear_event_counters() { return new VScript.wKeyword(this, "clear_event_counters"); } get preparation_time() { return new VScript.duplexKeyword(this, "preparation_time"); } get cooldown_time() { return new VScript.duplexKeyword(this, "cooldown_time"); } get current_target() { return new VScript.rKeyword(this, "current_target"); } get next_target() { return new VScript.rKeyword(this, "next_target"); } /** when set to `FirstStreamPresent`, the first packet stream to provide this receiver with valid format and timing characteristics will be used as the basis for the ensuing readout attempt. When set to `AllStreamsPresent`, the receiver will stall until all packet streams have been registered at their respective network interfaces. Whereas `FirstStreamPresent` may slightly reduce the time to readout, `AllStreamsPresent` is safer as it ensures immediate SPS protection (if so configured), and allows the receiver to correctly pick a rearguard stream if different network paths exhibit different transmission delays. In both cases, the set of packet streams considered encompasses only those flows directly referenced by this receiver's media description, not the auxiliary flows that may be routed to the receiver through stream sharing. */ get initiate_readout_on() { return new VScript.rwKeyword(this, "initiate_readout_on"); } get ingress() { return new Ingress(this.raw.find("ingress")); } get egress() { return new Egress(this.raw.find("egress")); } get expecting() { return new Expectations(this.raw.find("expecting")); } get issues() { return new MediaReceiverIssues(this.raw.find("issues")); } get flight_permit() { return new MediaReceiverFlightPermit(this.raw.find("flight_permit")); } get error_counters() { return new MediaReceiverErrorCounters(this.raw.find("error_counters")); } get event_counters() { return new MediaReceiverEventCounters(this.raw.find("event_counters")); } get timing() { return new Timing(this.raw.find("timing")); } get current_phase() { return new _Time.Source(this.raw.find("current_phase")); } get read_delay() { return new MediaReceiverReadDelay(this.raw.find("read_delay")); } get required_redundancy_level() { return new MediaReceiverRequiredRedundancyLevel(this.raw.find("required_redundancy_level")); } get redundancy_levels() { return new MediaReceiverRedundancyLevels(this.raw.find("redundancy_levels")); } get latency_spread() { return new MediaReceiverLatencySpread(this.raw.find("latency_spread")); } } exports.MediaReceiver = MediaReceiver; class AudioServo { constructor(raw) { this.raw = raw; } get relative_speed() { return new VScript.rKeyword(this, "relative_speed"); } get max_relative_speed() { return new VScript.rwKeyword(this, "max_relative_speed"); } get max_acceleration() { return new VScript.rwKeyword(this, "max_acceleration"); } get prioritize() { return new VScript.rKeyword(this, "prioritize"); } } exports.AudioServo = AudioServo; class AudioServoAsArrayRow extends AudioServo { constructor(st, index, parent) { super(st); this.index = index; this.parent = parent; } } exports.AudioServoAsArrayRow = AudioServoAsArrayRow; class AudioReceiverAudioSpecificFlowPartitions { constructor(raw) { this.raw = raw; } get sdp_a() { return new VScript.rKeyword(this, "sdp_a", { lift: exports.lift.AudioFlowPartition, lower: exports.lower.AudioFlowPartition }); } get sdp_b() { return new VScript.rKeyword(this, "sdp_b", { lift: exports.lift.AudioFlowPartition, lower: exports.lower.AudioFlowPartition }); } } class AudioReceiverAudioSpecificOutput { constructor(raw) { this.raw = raw; } get audio() { return new _Audio.Essence(this.raw.find("audio")); } get ptp_traits() { return new _PTP.Traits(this.raw.find("ptp_traits")); } } class AudioReceiverAudioSpecific { constructor(raw) { this.raw = raw; } get channel_capacity() { return new VScript.duplexKeyword(this, "channel_capacity"); } get read_speed() { return new VScript.duplexKeyword(this, "read_speed"); } get servo() { return new VScript.rKeyword(this, "servo", { lift: exports.lift.AudioServo, lower: exports.lower.AudioServo }); } get permit_jumps() { return new VScript.duplexKeyword(this, "permit_jumps"); } get decoder_index() { return new VScript.rKeyword(this, "decoder_index"); } get flow_partitions() { return new AudioReceiverAudioSpecificFlowPartitions(this.raw.find("flow_partitions")); } get output() { return new AudioReceiverAudioSpecificOutput(this.raw.find("output")); } } class AudioReceiver { constructor(raw) { this.raw = raw; } get generic() { return new MediaReceiver(this.raw.find("generic")); } get audio_specific() { return new AudioReceiverAudioSpecific(this.raw.find("audio_specific")); } } exports.AudioReceiver = AudioReceiver; class AudioReceiverAsNamedTableRow extends AudioReceiver { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.raw_row = raw_row; this.enclosing_table = enclosing_table; this.index = raw_row.index; } async rename(name, opts) { await this.raw_row.rename(name, opts); } async delete(opts) { await this.raw_row.delete(opts); } } exports.AudioReceiverAsNamedTableRow = AudioReceiverAsNamedTableRow; class PassthroughEssence { constructor(raw) { this.raw = raw; } get brief() { return new VScript.rKeyword(this, "brief"); } get stream_id() { return new VScript.rKeyword(this, "stream_id"); } get memory_blocks() { return new VScript.rKeyword(this, "memory_blocks"); } get sdp() { return new VScript.rKeyword(this, "sdp"); } } exports.PassthroughEssence = PassthroughEssence; class PassthroughReceiverEgress { constructor(raw) { this.raw = raw; } get track() { return new VScript.rKeyword(this, "track"); } } class PassthroughReceiverIssues { constructor(raw) { this.raw = raw; } get subscription_failed() { return new VScript.rKeyword(this, "subscription_failed"); } } class PassthroughReceiverFlowPartitions { constructor(raw) { this.raw = raw; } get sdp_a() { return new VScript.rKeyword(this, "sdp_a", { lift: exports.lift.PassthroughFlowPartition, lower: exports.lower.PassthroughFlowPartition }); } get sdp_b() { return new VScript.rKeyword(this, "sdp_b", { lift: exports.lift.PassthroughFlowPartition, lower: exports.lower.PassthroughFlowPartition }); } } class PassthroughReceiver { constructor(raw) { this.raw = raw; } get state() { return new VScript.rKeyword(this, "state"); } get hosting_session() { return new VScript.duplexKeyword(this, "hosting_session", { lift: exports.lift.Session, lower: exports.lower.Session }); } get current_target() { return new VScript.rKeyword(this, "current_target"); } get next_target() { return new VScript.rKeyword(this, "next_target"); } get ingress() { return new Ingress(this.raw.find("ingress")); } get egress() { return new PassthroughReceiverEgress(this.raw.find("egress")); } get issues() { return new PassthroughReceiverIssues(this.raw.find("issues")); } get output() { return new PassthroughEssence(this.raw.find("output")); } get flow_partitions() { return new PassthroughReceiverFlowPartitions(this.raw.find("flow_partitions")); } } exports.PassthroughReceiver = PassthroughReceiver; class PassthroughReceiverAsNamedTableRow extends PassthroughReceiver { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.raw_row = raw_row; this.enclosing_table = enclosing_table; this.index = raw_row.index; } async rename(name, opts) { await this.raw_row.rename(name, opts); } async delete(opts) { await this.raw_row.delete(opts); } } exports.PassthroughReceiverAsNamedTableRow = PassthroughReceiverAsNamedTableRow; class VideoServo { constructor(raw) { this.raw = raw; } get relative_speed() { return new VScript.rKeyword(this, "relative_speed"); } get max_relative_speed() { return new VScript.rwKeyword(this, "max_relative_speed"); } get max_acceleration() { return new VScript.rwKeyword(this, "max_acceleration"); } } exports.VideoServo = VideoServo; class VideoServoAsArrayRow extends VideoServo { constructor(st, index, parent) { super(st); this.index = index; this.parent = parent; } } exports.VideoServoAsArrayRow = VideoServoAsArrayRow; class AncBurstReceiverMediaClock { constructor(raw) { this.raw = raw; } get ingress() { return new _Time.Source(this.raw.find("ingress")); } get egress() { return new _Time.Source(this.raw.find("egress")); } } class AncBurstReceiver { constructor(raw) { this.raw = raw; } get generic() { return new MediaReceiver(this.raw.find("generic")); } get media_clock() { return new AncBurstReceiverMediaClock(this.raw.find("media_clock")); } } exports.AncBurstReceiver = AncBurstReceiver; class AncBurstReceiverAsNamedTableRow extends AncBurstReceiver { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.raw_row = raw_row; this.enclosing_table = enclosing_table; this.index = raw_row.index; } async rename(name, opts) { await this.raw_row.rename(name, opts); } async delete(opts) { await this.raw_row.delete(opts); } } exports.AncBurstReceiverAsNamedTableRow = AncBurstReceiverAsNamedTableRow; class VideoReceiverVideoSpecificCapabilities { constructor(raw) { this.raw = raw; } get operational() { return new VScript.rKeyword(this, "operational"); } get supports_st_2042() { return new VScript.duplexKeyword(this, "supports_st_2042"); } get supports_uhd_2110_singlelink() { return new VScript.duplexKeyword(this, "supports_uhd_2110_singlelink"); } get supports_uhd_sample_interleaved() { return new VScript.duplexKeyword(this, "supports_uhd_sample_interleaved"); } get supports_2110_40_reception() { return new VScript.rKeyword(this, "supports_2110_40_reception"); } get main_decoder_index() { return new VScript.rKeyword(this, "main_decoder_index"); } } class VideoReceiverVideoSpecificErrorCounters { constructor(raw) { this.raw = raw; } get mpacket_error() { return new VScript.rKeyword(this, "mpacket_error", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } get offset_2110_error() { return new VScript.rKeyword(this, "offset_2110_error", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } get linenr_2110_error() { return new VScript.rKeyword(this, "linenr_2110_error", { lift: exports.lift.ErrorCounter, lower: exports.lower.ErrorCounter }); } } class VideoReceiverVideoSpecificEventCounters { constructor(raw) { this.raw = raw; } get frame_drop_events() { return new VScript.rKeyword(this, "frame_drop_events"); } get frame_repeat_events() { return new VScript.rKeyword(this, "frame_repeat_events"); } /** if a flow used by a frozen BBM-mode video receiver is reactivated by another receiver's subscription request, the frozen receiver must attempt to unfreeze its signal to preserve signal integrity */ get forced_unfreeze_events() { return new VScript.rKeyword(this, "forced_unfreeze_events"); } } class VideoReceiverVideoSpecificFlowPartitions { constructor(raw) { this.raw = raw; } get sdp_a() { return new VScript.rKeyword(this, "sdp_a", { lift: exports.lift.VideoFlowPartition, lower: exports.lower.VideoFlowPartition }); } get sdp_b() { return new VScript.rKeyword(this, "sdp_b", { lift: exports.lift.VideoFlowPartition, lower: exports.lower.VideoFlowPartition }); } } class VideoReceiverVideoSpecificOutput { constructor(raw) {