Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: webrtc/test/fake_voice_engine.h

Issue 1414743004: Implement AudioSendStream::GetStats(). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: TODOs Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« webrtc/audio/audio_send_stream.cc ('K') | « webrtc/call/call.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/test/fake_voice_engine.h
diff --git a/webrtc/test/fake_voice_engine.h b/webrtc/test/fake_voice_engine.h
index 72f6b27dd2e3c6d995427e4aa4ae9c53ee238926..2ef3d058f7d9ba83572c8e81e65983983c0b1f98 100644
--- a/webrtc/test/fake_voice_engine.h
+++ b/webrtc/test/fake_voice_engine.h
@@ -25,10 +25,16 @@ namespace test {
class FakeVoiceEngine final : public VoiceEngineImpl {
public:
const int kSendChannelId = 1;
- const int kReceiveChannelId = 2;
-
+ const int kRecvChannelId = 2;
tommi 2015/10/23 12:50:37 I think these should all be static and be referenc
the sun 2015/10/23 15:14:17 Ok, you get the .cc :)
+ const uint32_t kSendSsrc = 665;
+ const uint32_t kRecvSsrc = 667;
+ const int kSendEchoDelayMedian = 254;
+ const int kSendEchoDelayStdDev = -3;
+ const int kSendEchoReturnLoss = -65;
+ const int kSendEchoReturnLossEnhancement = 101;
const int kRecvJitterBufferDelay = -7;
const int kRecvPlayoutBufferDelay = 302;
+ const unsigned int kSendSpeechInputLevel = 96;
const unsigned int kRecvSpeechOutputLevel = 99;
FakeVoiceEngine() : VoiceEngineImpl(new Config(), true) {
@@ -42,16 +48,37 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
--_ref_count;
}
+ const CallStatistics& GetSendCallStats() const {
+ static const CallStatistics kStats = {
tommi 2015/10/23 12:50:37 I'm a bit on the fence whether using statics like
the sun 2015/10/23 15:14:17 I've made this static const structs and moved them
kwiberg-webrtc 2015/10/25 02:07:43 CallStatistics looks like a POD to me (if I'm look
the sun 2015/10/26 09:11:02 So now that the structs are static const members o
+ 1345, 1678, 1901, 1234, 112, 13456, 17890, 1567, -1890, -1123
+ };
+ return kStats;
+ }
+
+ const CodecInst& GetSendCodecInst() const {
+ static const CodecInst kStats = {
+ -121, "codec_name_send", 48000, -231, -451, -671
+ };
+ return kStats;
+ }
+
+ const ReportBlock& GetSendReportBlock() const {
+ static const ReportBlock kBlock = {
+ 456, 780, 123, 567, 890, 132, 143, 13354
+ };
+ return kBlock;
+ }
+
const CallStatistics& GetRecvCallStats() const {
static const CallStatistics kStats = {
- 345, 678, 901, 234, -1, 0, 0, 567, 890, 123
+ 345, 678, 901, 234, -12, 3456, 7890, 567, 890, 123
};
return kStats;
}
- const CodecInst& GetRecvRecCodecInst() const {
+ const CodecInst& GetRecvCodecInst() const {
static const CodecInst kStats = {
- 123, "codec_name", 96000, -1, -1, -1
+ 123, "codec_name_recv", 96000, -187, -198, -103
};
return kStats;
}
@@ -76,6 +103,84 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
return stats;
}
+ // VoEAudioProcessing
+ int SetNsStatus(bool enable, NsModes mode = kNsUnchanged) override {
+ return -1;
+ }
+ int GetNsStatus(bool& enabled, NsModes& mode) override { return -1; }
+ int SetAgcStatus(bool enable, AgcModes mode = kAgcUnchanged) override {
+ return -1;
+ }
+ int GetAgcStatus(bool& enabled, AgcModes& mode) override { return -1; }
+ int SetAgcConfig(AgcConfig config) override { return -1; }
+ int GetAgcConfig(AgcConfig& config) override { return -1; }
+ int SetEcStatus(bool enable, EcModes mode = kEcUnchanged) override {
+ return -1;
+ }
+ int GetEcStatus(bool& enabled, EcModes& mode) override { return -1; }
+ int EnableDriftCompensation(bool enable) override { return -1; }
+ bool DriftCompensationEnabled() override { return false; }
+ void SetDelayOffsetMs(int offset) override {}
+ int DelayOffsetMs() override { return -1; }
+ int SetAecmMode(AecmModes mode = kAecmSpeakerphone,
+ bool enableCNG = true) override { return -1; }
+ int GetAecmMode(AecmModes& mode, bool& enabledCNG) override { return -1; }
+ int EnableHighPassFilter(bool enable) override { return -1; }
+ bool IsHighPassFilterEnabled() override { return false; }
+ int SetRxNsStatus(int channel,
+ bool enable,
+ NsModes mode = kNsUnchanged) override { return -1; }
+ int GetRxNsStatus(int channel, bool& enabled, NsModes& mode) override {
+ return -1;
+ }
+ int SetRxAgcStatus(int channel,
+ bool enable,
+ AgcModes mode = kAgcUnchanged) override { return -1; }
+ int GetRxAgcStatus(int channel, bool& enabled, AgcModes& mode) override {
+ return -1;
+ }
+ int SetRxAgcConfig(int channel, AgcConfig config) override { return -1; }
+ int GetRxAgcConfig(int channel, AgcConfig& config) override { return -1; }
+ int RegisterRxVadObserver(int channel,
+ VoERxVadCallback& observer) override { return -1; }
+ int DeRegisterRxVadObserver(int channel) override { return -1; }
+ int VoiceActivityIndicator(int channel) override { return -1; }
+ int SetEcMetricsStatus(bool enable) override { return -1; }
+ int GetEcMetricsStatus(bool& enabled) override {
+ enabled = true;
+ return 0;
+ }
+ int GetEchoMetrics(int& ERL, int& ERLE, int& RERL, int& A_NLP) override {
+ ERL = kSendEchoReturnLoss;
+ ERLE = kSendEchoReturnLossEnhancement;
+ RERL = -123456789;
+ A_NLP = 123456789;
+ return 0;
+ }
+ int GetEcDelayMetrics(int& delay_median,
+ int& delay_std,
+ float& fraction_poor_delays) override {
+ delay_median = kSendEchoDelayMedian;
+ delay_std = kSendEchoDelayStdDev;
+ fraction_poor_delays = -12345.7890;
+ return 0;
+ }
+ int StartDebugRecording(const char* fileNameUTF8) override { return -1; }
+ int StartDebugRecording(FILE* file_handle) override { return -1; }
+ int StopDebugRecording() override { return -1; }
+ int SetTypingDetectionStatus(bool enable) override { return -1; }
+ int GetTypingDetectionStatus(bool& enabled) override { return -1; }
+ int TimeSinceLastTyping(int& seconds) override { return -1; }
+ int SetTypingDetectionParameters(int timeWindow,
+ int costPerTyping,
+ int reportingThreshold,
+ int penaltyDecay,
+ int typeEventDelay = 0) override {
+ return -1;
+ }
+ void EnableStereoChannelSwapping(bool enable) override {}
+ bool IsStereoChannelSwappingEnabled() override { return false; }
+
// VoEBase
int RegisterVoiceEngineObserver(VoiceEngineObserver& observer) override {
return -1;
@@ -105,11 +210,15 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
int NumOfCodecs() override { return -1; }
int GetCodec(int index, CodecInst& codec) override { return -1; }
int SetSendCodec(int channel, const CodecInst& codec) override { return -1; }
- int GetSendCodec(int channel, CodecInst& codec) override { return -1; }
+ int GetSendCodec(int channel, CodecInst& codec) override {
+ EXPECT_EQ(channel, kSendChannelId);
+ codec = GetSendCodecInst();
+ return 0;
+ }
int SetBitRate(int channel, int bitrate_bps) override { return -1; }
int GetRecCodec(int channel, CodecInst& codec) override {
- EXPECT_EQ(channel, kReceiveChannelId);
- codec = GetRecvRecCodecInst();
+ EXPECT_EQ(channel, kRecvChannelId);
+ codec = GetRecvCodecInst();
return 0;
}
int SetRecPayloadType(int channel, const CodecInst& codec) override {
@@ -295,13 +404,13 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
// VoENetEqStats
int GetNetworkStatistics(int channel, NetworkStatistics& stats) override {
- EXPECT_EQ(channel, kReceiveChannelId);
+ EXPECT_EQ(channel, kRecvChannelId);
stats = GetRecvNetworkStats();
return 0;
}
int GetDecodingCallStatistics(int channel,
AudioDecodingCallStats* stats) const override {
- EXPECT_EQ(channel, kReceiveChannelId);
+ EXPECT_EQ(channel, kRecvChannelId);
EXPECT_NE(nullptr, stats);
*stats = GetRecvAudioDecodingCallStats();
return 0;
@@ -309,9 +418,13 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
// VoERTP_RTCP
int SetLocalSSRC(int channel, unsigned int ssrc) override { return -1; }
- int GetLocalSSRC(int channel, unsigned int& ssrc) override { return -1; }
+ int GetLocalSSRC(int channel, unsigned int& ssrc) override {
+ EXPECT_EQ(channel, kSendChannelId);
+ ssrc = 0;
+ return 0;
+ }
int GetRemoteSSRC(int channel, unsigned int& ssrc) override {
- EXPECT_EQ(channel, kReceiveChannelId);
+ EXPECT_EQ(channel, kRecvChannelId);
ssrc = 0;
return 0;
}
@@ -347,13 +460,28 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
unsigned int& maxJitterMs,
unsigned int& discardedPackets) override { return -1; }
int GetRTCPStatistics(int channel, CallStatistics& stats) override {
- EXPECT_EQ(channel, kReceiveChannelId);
- stats = GetRecvCallStats();
+ if (channel == kSendChannelId) {
+ stats = GetSendCallStats();
+ } else {
+ EXPECT_EQ(channel, kRecvChannelId);
+ stats = GetRecvCallStats();
+ }
return 0;
}
int GetRemoteRTCPReportBlocks(
int channel,
- std::vector<ReportBlock>* receive_blocks) override { return -1; }
+ std::vector<ReportBlock>* receive_blocks) override {
+ EXPECT_EQ(channel, kSendChannelId);
+ EXPECT_NE(receive_blocks, nullptr);
+ EXPECT_EQ(receive_blocks->size(), 0u);
+ webrtc::ReportBlock block = GetSendReportBlock();
+ receive_blocks->push_back(block); // Has wrong SSRC.
+ block.source_SSRC = kSendSsrc;
+ receive_blocks->push_back(block); // Correct block.
+ block.fraction_lost = 0;
+ receive_blocks->push_back(block); // Duplicate SSRC, bad fraction_lost.
+ return 0;
+ }
int SetNACKStatus(int channel, bool enable, int maxNoPackets) override {
return -1;
}
@@ -365,7 +493,7 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
int GetDelayEstimate(int channel,
int* jitter_buffer_delay_ms,
int* playout_buffer_delay_ms) override {
- EXPECT_EQ(channel, kReceiveChannelId);
+ EXPECT_EQ(channel, kRecvChannelId);
*jitter_buffer_delay_ms = kRecvJitterBufferDelay;
*playout_buffer_delay_ms = kRecvPlayoutBufferDelay;
return 0;
@@ -395,10 +523,13 @@ class FakeVoiceEngine final : public VoiceEngineImpl {
int GetSpeechOutputLevel(int channel, unsigned int& level) override {
return -1;
}
- int GetSpeechInputLevelFullRange(unsigned int& level) override { return -1; }
+ int GetSpeechInputLevelFullRange(unsigned int& level) override {
+ level = kSendSpeechInputLevel;
+ return 0;
+ }
int GetSpeechOutputLevelFullRange(int channel,
unsigned int& level) override {
- EXPECT_EQ(channel, kReceiveChannelId);
+ EXPECT_EQ(channel, kRecvChannelId);
level = kRecvSpeechOutputLevel;
return 0;
}
« webrtc/audio/audio_send_stream.cc ('K') | « webrtc/call/call.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698