Revert "Remove CodecInst pt.1"
This reverts commit 056f9738bf7a3d16da45398239656e165c4e0851. Reason for revert: breaks downstream Original change's description: > Remove CodecInst pt.1 > > Update audio_coding tests to not use CodecInst. > > Bug: webrtc:7626 > Change-Id: I880fb8d72d7d0a915d274e67feb6106f023697c2 > Reviewed-on: https://webrtc-review.googlesource.com/c/112594 > Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25879} TBR=solenberg@webrtc.org,kwiberg@webrtc.org Change-Id: I51d666969bcd63e2b7cb7d669ec2f59b5f8f9dde No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:7626 Reviewed-on: https://webrtc-review.googlesource.com/c/112906 Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25881}
This commit is contained in:
committed by
Commit Bot
parent
9d54bd8898
commit
ec0f45be11
@ -287,6 +287,113 @@ void Channel::ResetStats() {
|
||||
_channelCritSect.Leave();
|
||||
}
|
||||
|
||||
int16_t Channel::Stats(CodecInst& codecInst,
|
||||
ACMTestPayloadStats& payloadStats) {
|
||||
_channelCritSect.Enter();
|
||||
int n;
|
||||
payloadStats.payloadType = -1;
|
||||
for (n = 0; n < MAX_NUM_PAYLOADS; n++) {
|
||||
if (_payloadStats[n].payloadType == codecInst.pltype) {
|
||||
memcpy(&payloadStats, &_payloadStats[n], sizeof(ACMTestPayloadStats));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (payloadStats.payloadType == -1) {
|
||||
_channelCritSect.Leave();
|
||||
return -1;
|
||||
}
|
||||
for (n = 0; n < MAX_NUM_FRAMESIZES; n++) {
|
||||
if (payloadStats.frameSizeStats[n].frameSizeSample == 0) {
|
||||
_channelCritSect.Leave();
|
||||
return 0;
|
||||
}
|
||||
payloadStats.frameSizeStats[n].usageLenSec =
|
||||
(double)payloadStats.frameSizeStats[n].totalEncodedSamples /
|
||||
(double)codecInst.plfreq;
|
||||
|
||||
payloadStats.frameSizeStats[n].rateBitPerSec =
|
||||
payloadStats.frameSizeStats[n].totalPayloadLenByte * 8 /
|
||||
payloadStats.frameSizeStats[n].usageLenSec;
|
||||
}
|
||||
_channelCritSect.Leave();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Channel::Stats(uint32_t* numPackets) {
|
||||
_channelCritSect.Enter();
|
||||
int k;
|
||||
int n;
|
||||
memset(numPackets, 0, MAX_NUM_PAYLOADS * sizeof(uint32_t));
|
||||
for (k = 0; k < MAX_NUM_PAYLOADS; k++) {
|
||||
if (_payloadStats[k].payloadType == -1) {
|
||||
break;
|
||||
}
|
||||
numPackets[k] = 0;
|
||||
for (n = 0; n < MAX_NUM_FRAMESIZES; n++) {
|
||||
if (_payloadStats[k].frameSizeStats[n].frameSizeSample == 0) {
|
||||
break;
|
||||
}
|
||||
numPackets[k] += _payloadStats[k].frameSizeStats[n].numPackets;
|
||||
}
|
||||
}
|
||||
_channelCritSect.Leave();
|
||||
}
|
||||
|
||||
void Channel::Stats(uint8_t* payloadType, uint32_t* payloadLenByte) {
|
||||
_channelCritSect.Enter();
|
||||
|
||||
int k;
|
||||
int n;
|
||||
memset(payloadLenByte, 0, MAX_NUM_PAYLOADS * sizeof(uint32_t));
|
||||
for (k = 0; k < MAX_NUM_PAYLOADS; k++) {
|
||||
if (_payloadStats[k].payloadType == -1) {
|
||||
break;
|
||||
}
|
||||
payloadType[k] = (uint8_t)_payloadStats[k].payloadType;
|
||||
payloadLenByte[k] = 0;
|
||||
for (n = 0; n < MAX_NUM_FRAMESIZES; n++) {
|
||||
if (_payloadStats[k].frameSizeStats[n].frameSizeSample == 0) {
|
||||
break;
|
||||
}
|
||||
payloadLenByte[k] +=
|
||||
(uint16_t)_payloadStats[k].frameSizeStats[n].totalPayloadLenByte;
|
||||
}
|
||||
}
|
||||
|
||||
_channelCritSect.Leave();
|
||||
}
|
||||
|
||||
void Channel::PrintStats(CodecInst& codecInst) {
|
||||
ACMTestPayloadStats payloadStats;
|
||||
Stats(codecInst, payloadStats);
|
||||
printf("%s %d kHz\n", codecInst.plname, codecInst.plfreq / 1000);
|
||||
printf("=====================================================\n");
|
||||
if (payloadStats.payloadType == -1) {
|
||||
printf("No Packets are sent with payload-type %d (%s)\n\n",
|
||||
codecInst.pltype, codecInst.plname);
|
||||
return;
|
||||
}
|
||||
for (int k = 0; k < MAX_NUM_FRAMESIZES; k++) {
|
||||
if (payloadStats.frameSizeStats[k].frameSizeSample == 0) {
|
||||
break;
|
||||
}
|
||||
printf("Frame-size.................... %d samples\n",
|
||||
payloadStats.frameSizeStats[k].frameSizeSample);
|
||||
printf("Average Rate.................. %.0f bits/sec\n",
|
||||
payloadStats.frameSizeStats[k].rateBitPerSec);
|
||||
printf("Maximum Payload-Size.......... %" PRIuS " Bytes\n",
|
||||
payloadStats.frameSizeStats[k].maxPayloadLen);
|
||||
printf("Maximum Instantaneous Rate.... %.0f bits/sec\n",
|
||||
((double)payloadStats.frameSizeStats[k].maxPayloadLen * 8.0 *
|
||||
(double)codecInst.plfreq) /
|
||||
(double)payloadStats.frameSizeStats[k].frameSizeSample);
|
||||
printf("Number of Packets............. %u\n",
|
||||
(unsigned int)payloadStats.frameSizeStats[k].numPackets);
|
||||
printf("Duration...................... %0.3f sec\n\n",
|
||||
payloadStats.frameSizeStats[k].usageLenSec);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t Channel::LastInTimestamp() {
|
||||
uint32_t timestamp;
|
||||
_channelCritSect.Enter();
|
||||
|
||||
Reference in New Issue
Block a user