Ensure CallTest derived tests per default set min/max audio bitrate.

This ensure BWE works as intended with transport sequence numbers on
audio.

Tested with webrtc_perf_tests --gtest_filter=CallPerfTest.Min_Bitrate_VideoAndAudio
and --gtest_filter=Rampup*

Bug: webrtc:14854, webrtc:7135, b/266786240
Change-Id: I3b7a743149c22035e582a2157b5f0a93747857cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291523
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39208}
This commit is contained in:
Per K 2023-01-26 16:11:31 +01:00 committed by WebRTC LUCI CQ
parent 6c032cb835
commit b0d8a3728c
2 changed files with 8 additions and 15 deletions

View File

@ -35,6 +35,7 @@
#include "modules/audio_mixer/audio_mixer_impl.h" #include "modules/audio_mixer/audio_mixer_impl.h"
#include "modules/rtp_rtcp/source/rtp_packet.h" #include "modules/rtp_rtcp/source/rtp_packet.h"
#include "rtc_base/checks.h" #include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/synchronization/mutex.h" #include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_queue_for_test.h" #include "rtc_base/task_queue_for_test.h"
#include "rtc_base/thread.h" #include "rtc_base/thread.h"
@ -910,7 +911,6 @@ void CallPerfTest::TestMinAudioVideoBitrate(int test_bitrate_from,
int start_bwe, int start_bwe,
int max_bwe) { int max_bwe) {
static const std::string kAudioTrackId = "audio_track_0"; static const std::string kAudioTrackId = "audio_track_0";
static constexpr int kOpusBitrateFbBps = 32000;
static constexpr int kBitrateStabilizationMs = 10000; static constexpr int kBitrateStabilizationMs = 10000;
static constexpr int kBitrateMeasurements = 10; static constexpr int kBitrateMeasurements = 10;
static constexpr int kBitrateMeasurementMs = 1000; static constexpr int kBitrateMeasurementMs = 1000;
@ -989,8 +989,12 @@ void CallPerfTest::TestMinAudioVideoBitrate(int test_bitrate_from,
} }
avg_rtt = avg_rtt / kBitrateMeasurements; avg_rtt = avg_rtt / kBitrateMeasurements;
if (avg_rtt > kMinGoodRttMs) { if (avg_rtt > kMinGoodRttMs) {
RTC_LOG(LS_WARNING)
<< "Failed test bitrate: " << test_bitrate << " RTT: " << avg_rtt;
break; break;
} else { } else {
RTC_LOG(LS_INFO) << "Passed test bitrate: " << test_bitrate
<< " RTT: " << avg_rtt;
last_passed_test_bitrate = test_bitrate; last_passed_test_bitrate = test_bitrate;
} }
} }
@ -1015,13 +1019,6 @@ void CallPerfTest::TestMinAudioVideoBitrate(int test_bitrate_from,
size_t GetNumAudioStreams() const override { return 1; } size_t GetNumAudioStreams() const override { return 1; }
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
std::vector<AudioReceiveStreamInterface::Config>*
receive_configs) override {
send_config->send_codec_spec->target_bitrate_bps =
absl::optional<int>(kOpusBitrateFbBps);
}
private: private:
const int test_bitrate_from_; const int test_bitrate_from_;
const int test_bitrate_to_; const int test_bitrate_to_;
@ -1039,13 +1036,7 @@ void CallPerfTest::TestMinAudioVideoBitrate(int test_bitrate_from,
RunBaseTest(&test); RunBaseTest(&test);
} }
// TODO(bugs.webrtc.org/8878) TEST_F(CallPerfTest, Min_Bitrate_VideoAndAudio) {
#if defined(WEBRTC_MAC)
#define MAYBE_Min_Bitrate_VideoAndAudio DISABLED_Min_Bitrate_VideoAndAudio
#else
#define MAYBE_Min_Bitrate_VideoAndAudio Min_Bitrate_VideoAndAudio
#endif
TEST_F(CallPerfTest, MAYBE_Min_Bitrate_VideoAndAudio) {
TestMinAudioVideoBitrate(110, 40, -10, 10000, 70000, 200000); TestMinAudioVideoBitrate(110, 40, -10, 10000, 70000, 200000);
} }

View File

@ -292,6 +292,8 @@ void CallTest::CreateAudioAndFecSendConfigs(size_t num_audio_streams,
audio_send_config.send_codec_spec = AudioSendStream::Config::SendCodecSpec( audio_send_config.send_codec_spec = AudioSendStream::Config::SendCodecSpec(
kAudioSendPayloadType, {"opus", 48000, 2, {{"stereo", "1"}}}); kAudioSendPayloadType, {"opus", 48000, 2, {{"stereo", "1"}}});
audio_send_config.min_bitrate_bps = 6000;
audio_send_config.max_bitrate_bps = 60000;
audio_send_config.encoder_factory = audio_encoder_factory_; audio_send_config.encoder_factory = audio_encoder_factory_;
SetAudioConfig(audio_send_config); SetAudioConfig(audio_send_config);
} }