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}
diff --git a/webrtc/modules/audio_coding/neteq/include/neteq.h b/webrtc/modules/audio_coding/neteq/include/neteq.h
index 322a86f..f034580 100644
--- a/webrtc/modules/audio_coding/neteq/include/neteq.h
+++ b/webrtc/modules/audio_coding/neteq/include/neteq.h
@@ -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 @@
// 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 @@
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() {}