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

Unified Diff: webrtc/audio/audio_receive_stream_unittest.cc

Issue 1403363003: Move VoiceEngineObserver into AudioSendStream so that we detect typing noises and return properly i… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: that's all folks! (incl rebase), or is it? Created 5 years, 1 month 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
« no previous file with comments | « webrtc/audio/audio_receive_stream.cc ('k') | webrtc/audio/audio_send_stream.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/audio/audio_receive_stream_unittest.cc
diff --git a/webrtc/audio/audio_receive_stream_unittest.cc b/webrtc/audio/audio_receive_stream_unittest.cc
index 0bb9b51e166e00243a5cfb72291192f500769e83..755d634d56f24b9924f078db5ff1472e5b2fc73c 100644
--- a/webrtc/audio/audio_receive_stream_unittest.cc
+++ b/webrtc/audio/audio_receive_stream_unittest.cc
@@ -20,10 +20,84 @@ namespace webrtc {
namespace test {
namespace {
+AudioDecodingCallStats MakeAudioDecodeStatsForTest() {
+ AudioDecodingCallStats audio_decode_stats;
+ audio_decode_stats.calls_to_silence_generator = 234;
+ audio_decode_stats.calls_to_neteq = 567;
+ audio_decode_stats.decoded_normal = 890;
+ audio_decode_stats.decoded_plc = 123;
+ audio_decode_stats.decoded_cng = 456;
+ audio_decode_stats.decoded_plc_cng = 789;
+ return audio_decode_stats;
+}
+
const int kChannelId = 2;
const uint32_t kRemoteSsrc = 1234;
const uint32_t kLocalSsrc = 5678;
const size_t kAbsoluteSendTimeLength = 4;
+const int kAbsSendTimeId = 3;
+const int kJitterBufferDelay = -7;
+const int kPlayoutBufferDelay = 302;
+const unsigned int kSpeechOutputLevel = 99;
+const CallStatistics kCallStats = {
+ 345, 678, 901, 234, -12, 3456, 7890, 567, 890, 123};
+const CodecInst kCodecInst = {
+ 123, "codec_name_recv", 96000, -187, -198, -103};
+const NetworkStatistics kNetworkStats = {
+ 123, 456, false, 0, 0, 789, 12, 345, 678, 901, -1, -1, -1, -1, -1, 0};
+const AudioDecodingCallStats kAudioDecodeStats = MakeAudioDecodeStatsForTest();
+
+struct ConfigHelper {
+ ConfigHelper() {
+ EXPECT_CALL(voice_engine_,
+ RegisterVoiceEngineObserver(testing::_)).WillOnce(testing::Return(0));
+ EXPECT_CALL(voice_engine_,
+ DeRegisterVoiceEngineObserver()).WillOnce(testing::Return(0));
+ AudioState::Config config;
+ config.voice_engine = &voice_engine_;
+ audio_state_ = AudioState::Create(config);
+ stream_config_.voe_channel_id = kChannelId;
+ stream_config_.rtp.local_ssrc = kLocalSsrc;
+ stream_config_.rtp.remote_ssrc = kRemoteSsrc;
+ }
+
+ MockRemoteBitrateEstimator* remote_bitrate_estimator() {
+ return &remote_bitrate_estimator_;
+ }
+ AudioReceiveStream::Config& config() { return stream_config_; }
+ rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; }
+ MockVoiceEngine& voice_engine() { return voice_engine_; }
+
+ void SetupMockForGetStats() {
+ using testing::_;
+ using testing::DoAll;
+ using testing::Return;
+ using testing::SetArgPointee;
+ using testing::SetArgReferee;
+ EXPECT_CALL(voice_engine_, GetRemoteSSRC(kChannelId, _))
+ .WillOnce(DoAll(SetArgReferee<1>(0), Return(0)));
+ EXPECT_CALL(voice_engine_, GetRTCPStatistics(kChannelId, _))
+ .WillOnce(DoAll(SetArgReferee<1>(kCallStats), Return(0)));
+ EXPECT_CALL(voice_engine_, GetRecCodec(kChannelId, _))
+ .WillOnce(DoAll(SetArgReferee<1>(kCodecInst), Return(0)));
+ EXPECT_CALL(voice_engine_, GetDelayEstimate(kChannelId, _, _))
+ .WillOnce(DoAll(SetArgPointee<1>(kJitterBufferDelay),
+ SetArgPointee<2>(kPlayoutBufferDelay), Return(0)));
+ EXPECT_CALL(voice_engine_,
+ GetSpeechOutputLevelFullRange(kChannelId, _)).WillOnce(
+ DoAll(SetArgReferee<1>(kSpeechOutputLevel), Return(0)));
+ EXPECT_CALL(voice_engine_, GetNetworkStatistics(kChannelId, _))
+ .WillOnce(DoAll(SetArgReferee<1>(kNetworkStats), Return(0)));
+ EXPECT_CALL(voice_engine_, GetDecodingCallStatistics(kChannelId, _))
+ .WillOnce(DoAll(SetArgPointee<1>(kAudioDecodeStats), Return(0)));
+ }
+
+ private:
+ MockRemoteBitrateEstimator remote_bitrate_estimator_;
+ MockVoiceEngine voice_engine_;
+ rtc::scoped_refptr<AudioState> audio_state_;
+ AudioReceiveStream::Config stream_config_;
+};
void BuildAbsoluteSendTimeExtension(uint8_t* buffer,
int id,
@@ -62,7 +136,6 @@ size_t CreateRtpHeaderWithAbsSendTime(uint8_t* header,
} // namespace
TEST(AudioReceiveStreamTest, ConfigToString) {
- const int kAbsSendTimeId = 3;
AudioReceiveStream::Config config;
config.rtp.remote_ssrc = kRemoteSsrc;
config.rtp.local_ssrc = kLocalSsrc;
@@ -79,31 +152,24 @@ TEST(AudioReceiveStreamTest, ConfigToString) {
}
TEST(AudioReceiveStreamTest, ConstructDestruct) {
- MockRemoteBitrateEstimator remote_bitrate_estimator;
- MockVoiceEngine voice_engine;
- AudioReceiveStream::Config config;
- config.voe_channel_id = kChannelId;
- internal::AudioReceiveStream recv_stream(&remote_bitrate_estimator, config,
- &voice_engine);
+ ConfigHelper helper;
+ internal::AudioReceiveStream recv_stream(
+ helper.remote_bitrate_estimator(), helper.config(), helper.audio_state());
}
TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweWithTimestamp) {
- MockRemoteBitrateEstimator remote_bitrate_estimator;
- MockVoiceEngine voice_engine;
- AudioReceiveStream::Config config;
- config.combined_audio_video_bwe = true;
- config.voe_channel_id = kChannelId;
- const int kAbsSendTimeId = 3;
- config.rtp.extensions.push_back(
+ ConfigHelper helper;
+ helper.config().combined_audio_video_bwe = true;
+ helper.config().rtp.extensions.push_back(
RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId));
- internal::AudioReceiveStream recv_stream(&remote_bitrate_estimator, config,
- &voice_engine);
+ internal::AudioReceiveStream recv_stream(
+ helper.remote_bitrate_estimator(), helper.config(), helper.audio_state());
uint8_t rtp_packet[30];
const int kAbsSendTimeValue = 1234;
CreateRtpHeaderWithAbsSendTime(rtp_packet, kAbsSendTimeId, kAbsSendTimeValue);
PacketTime packet_time(5678000, 0);
const size_t kExpectedHeaderLength = 20;
- EXPECT_CALL(remote_bitrate_estimator,
+ EXPECT_CALL(*helper.remote_bitrate_estimator(),
IncomingPacket(packet_time.timestamp / 1000,
sizeof(rtp_packet) - kExpectedHeaderLength,
testing::_, false))
@@ -113,57 +179,10 @@ TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweWithTimestamp) {
}
TEST(AudioReceiveStreamTest, GetStats) {
- const int kJitterBufferDelay = -7;
- const int kPlayoutBufferDelay = 302;
- const unsigned int kSpeechOutputLevel = 99;
- const CallStatistics kCallStats = {345, 678, 901, 234, -12,
- 3456, 7890, 567, 890, 123};
-
- const CodecInst kCodecInst = {123, "codec_name_recv", 96000, -187, -198,
- -103};
-
- const NetworkStatistics kNetworkStats = {
- 123, 456, false, 0, 0, 789, 12, 345, 678, 901, -1, -1, -1, -1, -1, 0};
-
- webrtc::AudioDecodingCallStats audio_decode_stats;
- {
- audio_decode_stats.calls_to_silence_generator = 234;
- audio_decode_stats.calls_to_neteq = 567;
- audio_decode_stats.decoded_normal = 890;
- audio_decode_stats.decoded_plc = 123;
- audio_decode_stats.decoded_cng = 456;
- audio_decode_stats.decoded_plc_cng = 789;
- }
-
- MockRemoteBitrateEstimator remote_bitrate_estimator;
- MockVoiceEngine voice_engine;
- AudioReceiveStream::Config config;
- config.rtp.remote_ssrc = kRemoteSsrc;
- config.voe_channel_id = kChannelId;
- internal::AudioReceiveStream recv_stream(&remote_bitrate_estimator, config,
- &voice_engine);
-
- using testing::_;
- using testing::DoAll;
- using testing::Return;
- using testing::SetArgPointee;
- using testing::SetArgReferee;
- EXPECT_CALL(voice_engine, GetRemoteSSRC(kChannelId, _))
- .WillOnce(DoAll(SetArgReferee<1>(0), Return(0)));
- EXPECT_CALL(voice_engine, GetRTCPStatistics(kChannelId, _))
- .WillOnce(DoAll(SetArgReferee<1>(kCallStats), Return(0)));
- EXPECT_CALL(voice_engine, GetRecCodec(kChannelId, _))
- .WillOnce(DoAll(SetArgReferee<1>(kCodecInst), Return(0)));
- EXPECT_CALL(voice_engine, GetDelayEstimate(kChannelId, _, _))
- .WillOnce(DoAll(SetArgPointee<1>(kJitterBufferDelay),
- SetArgPointee<2>(kPlayoutBufferDelay), Return(0)));
- EXPECT_CALL(voice_engine, GetSpeechOutputLevelFullRange(kChannelId, _))
- .WillOnce(DoAll(SetArgReferee<1>(kSpeechOutputLevel), Return(0)));
- EXPECT_CALL(voice_engine, GetNetworkStatistics(kChannelId, _))
- .WillOnce(DoAll(SetArgReferee<1>(kNetworkStats), Return(0)));
- EXPECT_CALL(voice_engine, GetDecodingCallStatistics(kChannelId, _))
- .WillOnce(DoAll(SetArgPointee<1>(audio_decode_stats), Return(0)));
-
+ ConfigHelper helper;
+ internal::AudioReceiveStream recv_stream(
+ helper.remote_bitrate_estimator(), helper.config(), helper.audio_state());
+ helper.SetupMockForGetStats();
AudioReceiveStream::Stats stats = recv_stream.GetStats();
EXPECT_EQ(kRemoteSsrc, stats.remote_ssrc);
EXPECT_EQ(static_cast<int64_t>(kCallStats.bytesReceived), stats.bytes_rcvd);
@@ -190,13 +209,13 @@ TEST(AudioReceiveStreamTest, GetStats) {
stats.accelerate_rate);
EXPECT_EQ(Q14ToFloat(kNetworkStats.currentPreemptiveRate),
stats.preemptive_expand_rate);
- EXPECT_EQ(audio_decode_stats.calls_to_silence_generator,
+ EXPECT_EQ(kAudioDecodeStats.calls_to_silence_generator,
stats.decoding_calls_to_silence_generator);
- EXPECT_EQ(audio_decode_stats.calls_to_neteq, stats.decoding_calls_to_neteq);
- EXPECT_EQ(audio_decode_stats.decoded_normal, stats.decoding_normal);
- EXPECT_EQ(audio_decode_stats.decoded_plc, stats.decoding_plc);
- EXPECT_EQ(audio_decode_stats.decoded_cng, stats.decoding_cng);
- EXPECT_EQ(audio_decode_stats.decoded_plc_cng, stats.decoding_plc_cng);
+ EXPECT_EQ(kAudioDecodeStats.calls_to_neteq, stats.decoding_calls_to_neteq);
+ EXPECT_EQ(kAudioDecodeStats.decoded_normal, stats.decoding_normal);
+ EXPECT_EQ(kAudioDecodeStats.decoded_plc, stats.decoding_plc);
+ EXPECT_EQ(kAudioDecodeStats.decoded_cng, stats.decoding_cng);
+ EXPECT_EQ(kAudioDecodeStats.decoded_plc_cng, stats.decoding_plc_cng);
EXPECT_EQ(kCallStats.capture_start_ntp_time_ms_,
stats.capture_start_ntp_time_ms);
}
« no previous file with comments | « webrtc/audio/audio_receive_stream.cc ('k') | webrtc/audio/audio_send_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698