NetEq: Add functionality to assist with delay analysis and tooling

This CL adds a few methods to the NetEq API that will be used for
delay analysis and plotting.

BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2839163002
Cr-Commit-Position: refs/heads/master@{#17889}
This commit is contained in:
henrik.lundin
2017-04-26 07:47:32 -07:00
committed by Commit bot
parent 2e79958c42
commit 114c1b3afa
6 changed files with 126 additions and 18 deletions

View File

@ -14,6 +14,7 @@
#include <string.h> // Provide access to size_t.
#include <string>
#include <vector>
#include "webrtc/base/constructormagic.h"
#include "webrtc/base/optional.h"
@ -211,8 +212,9 @@ class NetEq {
// Not implemented.
virtual int SetTargetDelay() = 0;
// Not implemented.
virtual int TargetDelay() = 0;
// Returns the current target delay in ms. This includes any extra delay
// requested through SetMinimumDelay.
virtual int TargetDelayMs() = 0;
// Returns the current total delay (packet buffer and sync buffer) in ms.
virtual int CurrentDelayMs() const = 0;
@ -302,6 +304,16 @@ class NetEq {
virtual std::vector<uint16_t> GetNackList(
int64_t round_trip_time_ms) const = 0;
// Returns a vector containing the timestamps of the packets that were decoded
// in the last GetAudio call. If no packets were decoded in the last call, the
// vector is empty.
// Mainly intended for testing.
virtual std::vector<uint32_t> LastDecodedTimestamps() const = 0;
// Returns the length of the audio yet to play in the sync buffer.
// Mainly intended for testing.
virtual int SyncBufferSizeMs() const = 0;
protected:
NetEq() {}