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

Unified Diff: webrtc/audio/audio_send_stream_unittest.cc

Issue 2658233002: Wire up audio packet loss to BWE. (Closed)
Patch Set: Only register BandwidthObserver when needed BWE is negotiated. Created 3 years, 10 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
« no previous file with comments | « webrtc/audio/audio_send_stream.cc ('k') | webrtc/test/mock_voe_channel_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 4b7415a738969e8805de751444f4c50c1e85bd3e..9ae0a879990db1e859426b389783691ac67fa0e0 100644
--- a/webrtc/audio/audio_send_stream_unittest.cc
+++ b/webrtc/audio/audio_send_stream_unittest.cc
@@ -32,6 +32,8 @@ namespace test {
namespace {
using testing::_;
+using testing::Eq;
+using testing::Ne;
using testing::Return;
const int kChannelId = 1;
@@ -62,7 +64,7 @@ class MockLimitObserver : public BitrateAllocator::LimitObserver {
};
struct ConfigHelper {
- ConfigHelper()
+ explicit ConfigHelper(bool audio_bwe_enabled)
: simulated_clock_(123456),
stream_config_(nullptr),
congestion_controller_(&simulated_clock_,
@@ -87,7 +89,7 @@ struct ConfigHelper {
config.audio_mixer = AudioMixerImpl::Create();
audio_state_ = AudioState::Create(config);
- SetupDefaultChannelProxy();
+ SetupDefaultChannelProxy(audio_bwe_enabled);
EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId))
.WillOnce(Invoke([this](int channel_id) {
@@ -102,8 +104,12 @@ struct ConfigHelper {
stream_config_.rtp.c_name = kCName;
stream_config_.rtp.extensions.push_back(
RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
- stream_config_.rtp.extensions.push_back(RtpExtension(
- RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId));
+ if (audio_bwe_enabled) {
+ stream_config_.rtp.extensions.push_back(
+ RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+ kTransportSequenceNumberId));
+ stream_config_.send_codec_spec.transport_cc_enabled = true;
+ }
// Use ISAC as default codec so as to prevent unnecessary |voice_engine_|
// calls from the default ctor behavior.
stream_config_.send_codec_spec.codec_inst = kIsacCodec;
@@ -123,7 +129,7 @@ struct ConfigHelper {
RtcEventLog* event_log() { return &event_log_; }
MockVoiceEngine* voice_engine() { return &voice_engine_; }
- void SetupDefaultChannelProxy() {
+ void SetupDefaultChannelProxy(bool audio_bwe_enabled) {
using testing::StrEq;
channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>();
EXPECT_CALL(*channel_proxy_, SetRTCPStatus(true)).Times(1);
@@ -133,15 +139,25 @@ struct ConfigHelper {
EXPECT_CALL(*channel_proxy_,
SetSendAudioLevelIndicationStatus(true, kAudioLevelId))
.Times(1);
- EXPECT_CALL(*channel_proxy_,
- EnableSendTransportSequenceNumber(kTransportSequenceNumberId))
- .Times(1);
- EXPECT_CALL(*channel_proxy_,
- RegisterSenderCongestionControlObjects(
- congestion_controller_.pacer(),
- congestion_controller_.GetTransportFeedbackObserver(),
- packet_router()))
- .Times(1);
+
+ if (audio_bwe_enabled) {
+ EXPECT_CALL(*channel_proxy_,
+ EnableSendTransportSequenceNumber(kTransportSequenceNumberId))
+ .Times(1);
+ EXPECT_CALL(*channel_proxy_,
+ RegisterSenderCongestionControlObjects(
+ congestion_controller_.pacer(),
+ congestion_controller_.GetTransportFeedbackObserver(),
+ packet_router(), Ne(nullptr)))
+ .Times(1);
+ } else {
+ EXPECT_CALL(*channel_proxy_,
+ RegisterSenderCongestionControlObjects(
+ congestion_controller_.pacer(),
+ congestion_controller_.GetTransportFeedbackObserver(),
+ packet_router(), Eq(nullptr)))
+ .Times(1);
+ }
EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()).Times(1);
EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)).Times(1);
EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()).Times(1);
@@ -271,7 +287,7 @@ TEST(AudioSendStreamTest, ConfigToString) {
}
TEST(AudioSendStreamTest, ConstructDestruct) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
internal::AudioSendStream send_stream(
helper.config(), helper.audio_state(), helper.worker_queue(),
helper.packet_router(), helper.congestion_controller(),
@@ -279,7 +295,7 @@ TEST(AudioSendStreamTest, ConstructDestruct) {
}
TEST(AudioSendStreamTest, SendTelephoneEvent) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
internal::AudioSendStream send_stream(
helper.config(), helper.audio_state(), helper.worker_queue(),
helper.packet_router(), helper.congestion_controller(),
@@ -291,7 +307,7 @@ TEST(AudioSendStreamTest, SendTelephoneEvent) {
}
TEST(AudioSendStreamTest, SetMuted) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
internal::AudioSendStream send_stream(
helper.config(), helper.audio_state(), helper.worker_queue(),
helper.packet_router(), helper.congestion_controller(),
@@ -300,8 +316,24 @@ TEST(AudioSendStreamTest, SetMuted) {
send_stream.SetMuted(true);
}
+TEST(AudioSendStreamTest, AudioBweCorrectObjectsOnChannelProxy) {
+ ConfigHelper helper(true);
+ internal::AudioSendStream send_stream(
+ helper.config(), helper.audio_state(), helper.worker_queue(),
+ helper.packet_router(), helper.congestion_controller(),
+ helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats());
+}
+
+TEST(AudioSendStreamTest, NoAudioBweCorrectObjectsOnChannelProxy) {
+ ConfigHelper helper(false);
+ internal::AudioSendStream send_stream(
+ helper.config(), helper.audio_state(), helper.worker_queue(),
+ helper.packet_router(), helper.congestion_controller(),
+ helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats());
+}
+
TEST(AudioSendStreamTest, GetStats) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
internal::AudioSendStream send_stream(
helper.config(), helper.audio_state(), helper.worker_queue(),
helper.packet_router(), helper.congestion_controller(),
@@ -332,7 +364,7 @@ TEST(AudioSendStreamTest, GetStats) {
}
TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
internal::AudioSendStream send_stream(
helper.config(), helper.audio_state(), helper.worker_queue(),
helper.packet_router(), helper.congestion_controller(),
@@ -351,7 +383,7 @@ TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) {
}
TEST(AudioSendStreamTest, SendCodecAppliesConfigParams) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
auto stream_config = helper.config();
const CodecInst kOpusCodec = {111, "opus", 48000, 960, 2, 64000};
stream_config.send_codec_spec.codec_inst = kOpusCodec;
@@ -396,7 +428,7 @@ TEST(AudioSendStreamTest, SendCodecAppliesConfigParams) {
// VAD is applied when codec is mono and the CNG frequency matches the codec
// sample rate.
TEST(AudioSendStreamTest, SendCodecCanApplyVad) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
auto stream_config = helper.config();
const CodecInst kG722Codec = {9, "g722", 8000, 160, 1, 16000};
stream_config.send_codec_spec.codec_inst = kG722Codec;
@@ -411,7 +443,7 @@ TEST(AudioSendStreamTest, SendCodecCanApplyVad) {
}
TEST(AudioSendStreamTest, DoesNotPassHigherBitrateThanMaxBitrate) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
internal::AudioSendStream send_stream(
helper.config(), helper.audio_state(), helper.worker_queue(),
helper.packet_router(), helper.congestion_controller(),
@@ -423,7 +455,7 @@ TEST(AudioSendStreamTest, DoesNotPassHigherBitrateThanMaxBitrate) {
}
TEST(AudioSendStreamTest, ProbingIntervalOnBitrateUpdated) {
- ConfigHelper helper;
+ ConfigHelper helper(false);
internal::AudioSendStream send_stream(
helper.config(), helper.audio_state(), helper.worker_queue(),
helper.packet_router(), helper.congestion_controller(),
« no previous file with comments | « webrtc/audio/audio_send_stream.cc ('k') | webrtc/test/mock_voe_channel_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698