Index: webrtc/audio/audio_send_stream_unittest.cc |
diff --git a/webrtc/audio/audio_send_stream_unittest.cc b/webrtc/audio/audio_send_stream_unittest.cc |
index a05c00ba49b4c3d9dfcedfbec3c53e8e6c734932..2ad7d937d6e29083f8c7a38d589e03b1c2b7a0af 100644 |
--- a/webrtc/audio/audio_send_stream_unittest.cc |
+++ b/webrtc/audio/audio_send_stream_unittest.cc |
@@ -44,11 +44,11 @@ const int kEchoReturnLossEnhancement = 101; |
const unsigned int kSpeechInputLevel = 96; |
const CallStatistics kCallStats = { |
1345, 1678, 1901, 1234, 112, 13456, 17890, 1567, -1890, -1123}; |
-const CodecInst kCodecInst = {-121, "codec_name_send", 48000, -231, 0, -671}; |
const ReportBlock kReportBlock = {456, 780, 123, 567, 890, 132, 143, 13354}; |
const int kTelephoneEventPayloadType = 123; |
const int kTelephoneEventCode = 45; |
const int kTelephoneEventDuration = 6789; |
+constexpr CodecInst kOpusCodec = {111, "opus", 48000, 960, 2, 64000}; |
class MockLimitObserver : public BitrateAllocator::LimitObserver { |
public: |
@@ -111,6 +111,7 @@ struct ConfigHelper { |
.Times(1); // Destructor resets the event log |
return channel_proxy_; |
})); |
+ SetupMockForSetupSendCodec(); |
stream_config_.voe_channel_id = kChannelId; |
stream_config_.rtp.ssrc = kSsrc; |
stream_config_.rtp.nack.rtp_history_ms = 200; |
@@ -121,6 +122,7 @@ struct ConfigHelper { |
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); |
stream_config_.rtp.extensions.push_back(RtpExtension( |
RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); |
+ stream_config_.send_codec_spec.codec_inst = kOpusCodec; |
} |
AudioSendStream::Config& config() { return stream_config_; } |
@@ -133,6 +135,19 @@ struct ConfigHelper { |
rtc::TaskQueue* worker_queue() { return &worker_queue_; } |
RtcEventLog* event_log() { return &event_log_; } |
+ void SetupMockForSetupSendCodec() { |
+ EXPECT_CALL(voice_engine_, SetVADStatus(kChannelId, _, _, _)) |
+ .WillRepeatedly(Return(0)); |
+ EXPECT_CALL(voice_engine_, SetFECStatus(kChannelId, _)) |
+ .WillRepeatedly(Return(0)); |
+ EXPECT_CALL(voice_engine_, SetSendCodec(kChannelId, _)) |
+ .WillRepeatedly(Return(0)); |
+ // Let |GetSendCodec| return -1 for the first time to indicate that no send |
+ // codec has been set. |
+ EXPECT_CALL(voice_engine_, GetSendCodec(kChannelId, _)) |
+ .WillOnce(Return(-1)); |
+ } |
+ |
void SetupMockForSendTelephoneEvent() { |
EXPECT_TRUE(channel_proxy_); |
EXPECT_CALL(*channel_proxy_, |
@@ -162,7 +177,7 @@ struct ConfigHelper { |
.WillRepeatedly(Return(report_blocks)); |
EXPECT_CALL(voice_engine_, GetSendCodec(kChannelId, _)) |
- .WillRepeatedly(DoAll(SetArgReferee<1>(kCodecInst), Return(0))); |
+ .WillRepeatedly(DoAll(SetArgReferee<1>(kOpusCodec), Return(0))); |
EXPECT_CALL(voice_engine_, GetSpeechInputLevelFullRange(_)) |
.WillRepeatedly(DoAll(SetArgReferee<0>(kSpeechInputLevel), Return(0))); |
EXPECT_CALL(voice_engine_, GetEcMetricsStatus(_)) |
@@ -201,7 +216,7 @@ TEST(AudioSendStreamTest, ConfigToString) { |
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); |
config.rtp.c_name = kCName; |
config.voe_channel_id = kChannelId; |
- config.cng_payload_type = 42; |
+ config.send_codec_spec.cng_payload_type = 42; |
EXPECT_EQ( |
"{rtp: {ssrc: 1234, extensions: [{uri: " |
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], " |
@@ -253,11 +268,11 @@ TEST(AudioSendStreamTest, GetStats) { |
EXPECT_EQ(static_cast<int32_t>(kReportBlock.cumulative_num_packets_lost), |
stats.packets_lost); |
EXPECT_EQ(Q8ToFloat(kReportBlock.fraction_lost), stats.fraction_lost); |
- EXPECT_EQ(std::string(kCodecInst.plname), stats.codec_name); |
+ EXPECT_EQ(std::string(kOpusCodec.plname), stats.codec_name); |
EXPECT_EQ(static_cast<int32_t>(kReportBlock.extended_highest_sequence_number), |
stats.ext_seqnum); |
EXPECT_EQ(static_cast<int32_t>(kReportBlock.interarrival_jitter / |
- (kCodecInst.plfreq / 1000)), |
+ (kOpusCodec.plfreq / 1000)), |
stats.jitter_ms); |
EXPECT_EQ(kCallStats.rttMs, stats.rtt_ms); |
EXPECT_EQ(static_cast<int32_t>(kSpeechInputLevel), stats.audio_level); |
@@ -287,5 +302,8 @@ TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) { |
voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_OFF_WARNING); |
EXPECT_FALSE(send_stream.GetStats().typing_noise_detected); |
} |
+ |
+// TODO(minyue): Add tests on logics involved in SetSendCodecs. |
+ |
} // namespace test |
} // namespace webrtc |