UNPKG

@observertc/samples-encoder

Version:

ObserveRTC Library for Encoding Samples

127 lines (126 loc) 7.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IceCandidatePairStatsEnumEncoder = exports.IceCandidatePairEncoder = void 0; const utils_1 = require("./utils"); const utils_2 = require("./utils"); const OutputSamples_1 = require("./OutputSamples"); const OutputSamples_2 = require("./OutputSamples"); class IceCandidatePairEncoder { constructor(attachmentsEncoder) { this._visited = false; this._availableIncomingBitrateEncoder = new utils_2.NumberToNumberEncoder(); this._availableOutgoingBitrateEncoder = new utils_2.NumberToNumberEncoder(); this._bytesDiscardedOnSendEncoder = new utils_1.NumberToBigIntEncoder(); this._bytesReceivedEncoder = new utils_1.NumberToBigIntEncoder(); this._bytesSentEncoder = new utils_1.NumberToBigIntEncoder(); this._consentRequestsSentEncoder = new utils_2.NumberToNumberEncoder(); this._currentRoundTripTimeEncoder = new utils_2.NumberToNumberEncoder(); this._lastPacketReceivedTimestampEncoder = new utils_2.NumberToNumberEncoder(); this._lastPacketSentTimestampEncoder = new utils_2.NumberToNumberEncoder(); this._localCandidateIdEncoder = new utils_2.StringToStringEncoder(); this._nominatedEncoder = new utils_1.BooleanToBooleanEncoder(); this._packetsDiscardedOnSendEncoder = new utils_2.NumberToNumberEncoder(); this._packetsReceivedEncoder = new utils_2.NumberToNumberEncoder(); this._packetsSentEncoder = new utils_2.NumberToNumberEncoder(); this._remoteCandidateIdEncoder = new utils_2.StringToStringEncoder(); this._requestsReceivedEncoder = new utils_2.NumberToNumberEncoder(); this._requestsSentEncoder = new utils_2.NumberToNumberEncoder(); this._responsesReceivedEncoder = new utils_2.NumberToNumberEncoder(); this._responsesSentEncoder = new utils_2.NumberToNumberEncoder(); this._timestampEncoder = new utils_2.NumberToNumberEncoder(); this._totalRoundTripTimeEncoder = new utils_2.NumberToNumberEncoder(); this._transportIdEncoder = new utils_2.StringToStringEncoder(); this._attachmentsEncoder = attachmentsEncoder; this._stateEncoder = new IceCandidatePairStatsEnumEncoder(); } get visited() { const result = this._visited; this._visited = false; return result; } reset() { this._availableIncomingBitrateEncoder.reset(); this._availableOutgoingBitrateEncoder.reset(); this._bytesDiscardedOnSendEncoder.reset(); this._bytesReceivedEncoder.reset(); this._bytesSentEncoder.reset(); this._consentRequestsSentEncoder.reset(); this._currentRoundTripTimeEncoder.reset(); this._lastPacketReceivedTimestampEncoder.reset(); this._lastPacketSentTimestampEncoder.reset(); this._localCandidateIdEncoder.reset(); this._nominatedEncoder.reset(); this._packetsDiscardedOnSendEncoder.reset(); this._packetsReceivedEncoder.reset(); this._packetsSentEncoder.reset(); this._remoteCandidateIdEncoder.reset(); this._requestsReceivedEncoder.reset(); this._requestsSentEncoder.reset(); this._responsesReceivedEncoder.reset(); this._responsesSentEncoder.reset(); this._timestampEncoder.reset(); this._totalRoundTripTimeEncoder.reset(); this._transportIdEncoder.reset(); this._attachmentsEncoder.reset(); this._stateEncoder.reset(); } encode(sample) { this._visited = true; return new OutputSamples_1.ClientSample_PeerConnectionSample_IceCandidatePairStats({ id: sample.id, availableIncomingBitrate: this._availableIncomingBitrateEncoder.encode(sample.availableIncomingBitrate), availableOutgoingBitrate: this._availableOutgoingBitrateEncoder.encode(sample.availableOutgoingBitrate), bytesDiscardedOnSend: this._bytesDiscardedOnSendEncoder.encode(sample.bytesDiscardedOnSend), bytesReceived: this._bytesReceivedEncoder.encode(sample.bytesReceived), bytesSent: this._bytesSentEncoder.encode(sample.bytesSent), consentRequestsSent: this._consentRequestsSentEncoder.encode(sample.consentRequestsSent), currentRoundTripTime: this._currentRoundTripTimeEncoder.encode(sample.currentRoundTripTime), lastPacketReceivedTimestamp: this._lastPacketReceivedTimestampEncoder.encode(sample.lastPacketReceivedTimestamp), lastPacketSentTimestamp: this._lastPacketSentTimestampEncoder.encode(sample.lastPacketSentTimestamp), localCandidateId: this._localCandidateIdEncoder.encode(sample.localCandidateId), nominated: this._nominatedEncoder.encode(sample.nominated), packetsDiscardedOnSend: this._packetsDiscardedOnSendEncoder.encode(sample.packetsDiscardedOnSend), packetsReceived: this._packetsReceivedEncoder.encode(sample.packetsReceived), packetsSent: this._packetsSentEncoder.encode(sample.packetsSent), remoteCandidateId: this._remoteCandidateIdEncoder.encode(sample.remoteCandidateId), requestsReceived: this._requestsReceivedEncoder.encode(sample.requestsReceived), requestsSent: this._requestsSentEncoder.encode(sample.requestsSent), responsesReceived: this._responsesReceivedEncoder.encode(sample.responsesReceived), responsesSent: this._responsesSentEncoder.encode(sample.responsesSent), timestamp: this._timestampEncoder.encode(sample.timestamp), totalRoundTripTime: this._totalRoundTripTimeEncoder.encode(sample.totalRoundTripTime), transportId: this._transportIdEncoder.encode(sample.transportId), attachments: this._attachmentsEncoder.encode(sample.attachments), state: this._stateEncoder.encode(sample.state), }); } } exports.IceCandidatePairEncoder = IceCandidatePairEncoder; class IceCandidatePairStatsEnumEncoder { reset() { this._actualValue = undefined; } encode(state) { if (this._actualValue === state) return; this._actualValue = state; switch (state) { case 'new': return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.NEW; case 'in-progress': case 'inprogress': return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.INPROGRESS; case 'failed': return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.FAILED; case 'succeeded': return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.SUCCEEDED; case 'waiting': return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.WAITING; case 'cancelled': return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.CANCELLED; default: throw new Error(`Unknown IceCandidatePairStats state: ${state}`); } } } exports.IceCandidatePairStatsEnumEncoder = IceCandidatePairStatsEnumEncoder;