| 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
|
|
|