Propagate Environment to video RtpRtcp modules

No-Iwyu: suggests too many changes, better address them separately.
Bug: webrtc:362762208
Change-Id: I1f97895109bda2b66eb864145f765ad3abb7de21
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361144
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42906}
This commit is contained in:
Danil Chapovalov 2024-08-30 17:12:04 +02:00 committed by WebRTC LUCI CQ
parent 5a92ddb2b9
commit af7155e3ae
4 changed files with 13 additions and 18 deletions

View File

@ -199,7 +199,6 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
RTC_DCHECK_GT(rtp_config.ssrcs.size(), 0); RTC_DCHECK_GT(rtp_config.ssrcs.size(), 0);
RtpRtcpInterface::Configuration configuration; RtpRtcpInterface::Configuration configuration;
configuration.clock = &env.clock();
configuration.audio = false; configuration.audio = false;
configuration.receiver_only = false; configuration.receiver_only = false;
configuration.outgoing_transport = send_transport; configuration.outgoing_transport = send_transport;
@ -217,7 +216,6 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
configuration.paced_sender = transport->packet_sender(); configuration.paced_sender = transport->packet_sender();
configuration.send_bitrate_observer = observers.bitrate_observer; configuration.send_bitrate_observer = observers.bitrate_observer;
configuration.send_packet_observer = observers.send_packet_observer; configuration.send_packet_observer = observers.send_packet_observer;
configuration.event_log = &env.event_log();
if (env.field_trials().IsDisabled("WebRTC-DisableRtxRateLimiter")) { if (env.field_trials().IsDisabled("WebRTC-DisableRtxRateLimiter")) {
configuration.retransmission_rate_limiter = retransmission_rate_limiter; configuration.retransmission_rate_limiter = retransmission_rate_limiter;
} }
@ -227,7 +225,6 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
crypto_options.sframe.require_frame_encryption; crypto_options.sframe.require_frame_encryption;
configuration.extmap_allow_mixed = rtp_config.extmap_allow_mixed; configuration.extmap_allow_mixed = rtp_config.extmap_allow_mixed;
configuration.rtcp_report_interval_ms = rtcp_report_interval_ms; configuration.rtcp_report_interval_ms = rtcp_report_interval_ms;
configuration.field_trials = &env.field_trials();
configuration.enable_send_packet_batching = configuration.enable_send_packet_batching =
rtp_config.enable_send_packet_batching; rtp_config.enable_send_packet_batching;
@ -258,15 +255,14 @@ std::vector<RtpStreamSender> CreateRtpStreamSenders(
configuration.need_rtp_packet_infos = rtp_config.lntf.enabled; configuration.need_rtp_packet_infos = rtp_config.lntf.enabled;
std::unique_ptr<ModuleRtpRtcpImpl2> rtp_rtcp( auto rtp_rtcp = std::make_unique<ModuleRtpRtcpImpl2>(env, configuration);
ModuleRtpRtcpImpl2::Create(configuration));
rtp_rtcp->SetSendingStatus(false); rtp_rtcp->SetSendingStatus(false);
rtp_rtcp->SetSendingMediaStatus(false); rtp_rtcp->SetSendingMediaStatus(false);
rtp_rtcp->SetRTCPStatus(RtcpMode::kCompound); rtp_rtcp->SetRTCPStatus(RtcpMode::kCompound);
// Set NACK. // Set NACK.
rtp_rtcp->SetStorePacketsStatus(true, kMinSendSidePacketHistorySize); rtp_rtcp->SetStorePacketsStatus(true, kMinSendSidePacketHistorySize);
video_config.clock = configuration.clock; video_config.clock = &env.clock();
video_config.rtp_sender = rtp_rtcp->RtpSender(); video_config.rtp_sender = rtp_rtcp->RtpSender();
video_config.frame_encryptor = frame_encryptor; video_config.frame_encryptor = frame_encryptor;
video_config.require_frame_encryption = video_config.require_frame_encryption =

View File

@ -10,6 +10,8 @@
#include <memory> #include <memory>
#include "api/environment/environment.h"
#include "api/environment/environment_factory.h"
#include "api/task_queue/task_queue_base.h" #include "api/task_queue/task_queue_base.h"
#include "api/test/simulated_network.h" #include "api/test/simulated_network.h"
#include "api/units/time_delta.h" #include "api/units/time_delta.h"
@ -196,11 +198,11 @@ TEST_F(BandwidthEndToEndTest, RembWithSendSideBwe) {
explicit BweObserver(TaskQueueBase* task_queue) explicit BweObserver(TaskQueueBase* task_queue)
: EndToEndTest(test::VideoTestConstants::kDefaultTimeout), : EndToEndTest(test::VideoTestConstants::kDefaultTimeout),
sender_call_(nullptr), sender_call_(nullptr),
clock_(Clock::GetRealTimeClock()), env_(CreateEnvironment()),
sender_ssrc_(0), sender_ssrc_(0),
remb_bitrate_bps_(1000000), remb_bitrate_bps_(1000000),
state_(kWaitForFirstRampUp), state_(kWaitForFirstRampUp),
retransmission_rate_limiter_(clock_, 1000), retransmission_rate_limiter_(&env_.clock(), 1000),
task_queue_(task_queue) {} task_queue_(task_queue) {}
void OnStreamsStopped() override { rtp_rtcp_ = nullptr; } void OnStreamsStopped() override { rtp_rtcp_ = nullptr; }
@ -238,12 +240,11 @@ TEST_F(BandwidthEndToEndTest, RembWithSendSideBwe) {
SimulatedNetworkInterface* /*receiver_network*/) override { SimulatedNetworkInterface* /*receiver_network*/) override {
RtpRtcpInterface::Configuration config; RtpRtcpInterface::Configuration config;
config.receiver_only = true; config.receiver_only = true;
config.clock = clock_;
config.outgoing_transport = to_sender; config.outgoing_transport = to_sender;
config.retransmission_rate_limiter = &retransmission_rate_limiter_; config.retransmission_rate_limiter = &retransmission_rate_limiter_;
config.local_media_ssrc = remb_sender_local_ssrc_; config.local_media_ssrc = remb_sender_local_ssrc_;
rtp_rtcp_ = ModuleRtpRtcpImpl2::Create(config); rtp_rtcp_ = std::make_unique<ModuleRtpRtcpImpl2>(env_, config);
rtp_rtcp_->SetRemoteSSRC(remb_sender_remote_ssrc_); rtp_rtcp_->SetRemoteSSRC(remb_sender_remote_ssrc_);
rtp_rtcp_->SetRTCPStatus(RtcpMode::kReducedSize); rtp_rtcp_->SetRTCPStatus(RtcpMode::kReducedSize);
} }
@ -294,7 +295,7 @@ TEST_F(BandwidthEndToEndTest, RembWithSendSideBwe) {
enum TestState { kWaitForFirstRampUp, kWaitForRemb, kWaitForSecondRampUp }; enum TestState { kWaitForFirstRampUp, kWaitForRemb, kWaitForSecondRampUp };
Call* sender_call_; Call* sender_call_;
Clock* const clock_; const Environment env_;
uint32_t sender_ssrc_; uint32_t sender_ssrc_;
uint32_t remb_sender_local_ssrc_ = 0; uint32_t remb_sender_local_ssrc_ = 0;
uint32_t remb_sender_remote_ssrc_ = 0; uint32_t remb_sender_remote_ssrc_ = 0;

View File

@ -84,7 +84,6 @@ std::unique_ptr<ModuleRtpRtcpImpl2> CreateRtpRtcpModule(
bool non_sender_rtt_measurement, bool non_sender_rtt_measurement,
uint32_t local_ssrc) { uint32_t local_ssrc) {
RtpRtcpInterface::Configuration configuration; RtpRtcpInterface::Configuration configuration;
configuration.clock = &env.clock();
configuration.audio = false; configuration.audio = false;
configuration.receiver_only = true; configuration.receiver_only = true;
configuration.receive_statistics = receive_statistics; configuration.receive_statistics = receive_statistics;
@ -95,11 +94,8 @@ std::unique_ptr<ModuleRtpRtcpImpl2> CreateRtpRtcpModule(
configuration.rtcp_cname_callback = rtcp_cname_callback; configuration.rtcp_cname_callback = rtcp_cname_callback;
configuration.local_media_ssrc = local_ssrc; configuration.local_media_ssrc = local_ssrc;
configuration.non_sender_rtt_measurement = non_sender_rtt_measurement; configuration.non_sender_rtt_measurement = non_sender_rtt_measurement;
configuration.event_log = &env.event_log();
configuration.field_trials = &env.field_trials();
std::unique_ptr<ModuleRtpRtcpImpl2> rtp_rtcp = auto rtp_rtcp = std::make_unique<ModuleRtpRtcpImpl2>(env, configuration);
ModuleRtpRtcpImpl2::Create(configuration);
rtp_rtcp->SetRTCPStatus(RtcpMode::kCompound); rtp_rtcp->SetRTCPStatus(RtcpMode::kCompound);
return rtp_rtcp; return rtp_rtcp;

View File

@ -13,6 +13,8 @@
#include "absl/algorithm/container.h" #include "absl/algorithm/container.h"
#include "absl/strings/match.h" #include "absl/strings/match.h"
#include "api/environment/environment.h"
#include "api/environment/environment_factory.h"
#include "api/sequence_checker.h" #include "api/sequence_checker.h"
#include "api/task_queue/task_queue_base.h" #include "api/task_queue/task_queue_base.h"
#include "api/test/metrics/global_metrics_logger_and_exporter.h" #include "api/test/metrics/global_metrics_logger_and_exporter.h"
@ -1561,10 +1563,9 @@ TEST_F(VideoSendStreamTest, MinTransmitBitrateRespectsRemb) {
receive_streams) override { receive_streams) override {
stream_ = send_stream; stream_ = send_stream;
RtpRtcpInterface::Configuration config; RtpRtcpInterface::Configuration config;
config.clock = Clock::GetRealTimeClock();
config.outgoing_transport = feedback_transport_.get(); config.outgoing_transport = feedback_transport_.get();
config.retransmission_rate_limiter = &retranmission_rate_limiter_; config.retransmission_rate_limiter = &retranmission_rate_limiter_;
rtp_rtcp_ = ModuleRtpRtcpImpl2::Create(config); rtp_rtcp_ = std::make_unique<ModuleRtpRtcpImpl2>(env_, config);
rtp_rtcp_->SetRTCPStatus(RtcpMode::kReducedSize); rtp_rtcp_->SetRTCPStatus(RtcpMode::kReducedSize);
} }
@ -1589,6 +1590,7 @@ TEST_F(VideoSendStreamTest, MinTransmitBitrateRespectsRemb) {
} }
TaskQueueBase* const task_queue_; TaskQueueBase* const task_queue_;
const Environment env_ = CreateEnvironment();
std::unique_ptr<ModuleRtpRtcpImpl2> rtp_rtcp_; std::unique_ptr<ModuleRtpRtcpImpl2> rtp_rtcp_;
std::unique_ptr<internal::TransportAdapter> feedback_transport_; std::unique_ptr<internal::TransportAdapter> feedback_transport_;
RateLimiter retranmission_rate_limiter_; RateLimiter retranmission_rate_limiter_;