@observertc/samples-encoder
Version:
ObserveRTC Library for Encoding Samples
67 lines (66 loc) • 3.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MediaSourceStatsEncoder = void 0;
const utils_1 = require("./utils");
const utils_2 = require("./utils");
const OutputSamples_1 = require("./OutputSamples");
class MediaSourceStatsEncoder {
constructor(attachmentsEncoder) {
this._visited = false;
this._timestampEncoder = new utils_2.NumberToNumberEncoder();
this._idEncoder = new utils_2.StringToStringEncoder();
this._kindEncoder = new utils_2.StringToStringEncoder();
this._trackIdentifierEncoder = new utils_1.StringToUint8ArrayEncoder();
this._audioLevelEncoder = new utils_2.NumberToNumberEncoder();
this._totalAudioEnergyEncoder = new utils_2.NumberToNumberEncoder();
this._totalSamplesDurationEncoder = new utils_2.NumberToNumberEncoder();
this._echoReturnLossEncoder = new utils_2.NumberToNumberEncoder();
this._echoReturnLossEnhancementEncoder = new utils_2.NumberToNumberEncoder();
this._widthEncoder = new utils_2.NumberToNumberEncoder();
this._heightEncoder = new utils_2.NumberToNumberEncoder();
this._framesEncoder = new utils_2.NumberToNumberEncoder();
this._framesPerSecondEncoder = new utils_2.NumberToNumberEncoder();
this._attachmentsEncoder = attachmentsEncoder;
}
get visited() {
const result = this._visited;
this._visited = false;
return result;
}
reset() {
this._timestampEncoder.reset();
this._idEncoder.reset();
this._kindEncoder.reset();
this._trackIdentifierEncoder.reset();
this._audioLevelEncoder.reset();
this._totalAudioEnergyEncoder.reset();
this._totalSamplesDurationEncoder.reset();
this._echoReturnLossEncoder.reset();
this._echoReturnLossEnhancementEncoder.reset();
this._widthEncoder.reset();
this._heightEncoder.reset();
this._framesEncoder.reset();
this._framesPerSecondEncoder.reset();
this._attachmentsEncoder.reset();
}
encode(sample) {
this._visited = true;
return new OutputSamples_1.ClientSample_PeerConnectionSample_MediaSourceStats({
timestamp: this._timestampEncoder.encode(sample.timestamp),
id: sample.id,
kind: this._kindEncoder.encode(sample.kind),
trackIdentifier: this._trackIdentifierEncoder.encode(sample.trackIdentifier),
audioLevel: this._audioLevelEncoder.encode(sample.audioLevel),
totalAudioEnergy: this._totalAudioEnergyEncoder.encode(sample.totalAudioEnergy),
totalSamplesDuration: this._totalSamplesDurationEncoder.encode(sample.totalSamplesDuration),
echoReturnLoss: this._echoReturnLossEncoder.encode(sample.echoReturnLoss),
echoReturnLossEnhancement: this._echoReturnLossEnhancementEncoder.encode(sample.echoReturnLossEnhancement),
width: this._widthEncoder.encode(sample.width),
height: this._heightEncoder.encode(sample.height),
frames: this._framesEncoder.encode(sample.frames),
framesPerSecond: this._framesPerSecondEncoder.encode(sample.framesPerSecond),
attachments: this._attachmentsEncoder.encode(sample.attachments),
});
}
}
exports.MediaSourceStatsEncoder = MediaSourceStatsEncoder;