Revert "Clean up last_packet_received_time_ as it's no longer used."

This reverts commit 2f4bc6416651be40ef8f95a4695e6b7c41f18666.

Reason for revert: Breaks downstream test

Original change's description:
> Clean up last_packet_received_time_ as it's no longer used.
>
> Bug: webrtc:15377
> Change-Id: I5453b9fd572a04dbea3241a2eb1c8ad8bb8b1186
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/320560
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Ying Wang <yinwa@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#40792}

Bug: webrtc:15377
Change-Id: Ifa57671cc479cdd86f543c4edc236221beb76f90
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/321340
Auto-Submit: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Owners-Override: Björn Terelius <terelius@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40797}
This commit is contained in:
Björn Terelius 2023-09-24 20:36:41 +00:00 committed by WebRTC LUCI CQ
parent 9c58483b5a
commit b4d4bbcebd
13 changed files with 40 additions and 1 deletions

View File

@ -79,6 +79,9 @@ class NetworkControllerInterface {
// Called when a packet is sent on the network.
ABSL_MUST_USE_RESULT virtual NetworkControlUpdate OnSentPacket(
SentPacket) = 0;
// Called when a packet is received from the remote client.
ABSL_MUST_USE_RESULT virtual NetworkControlUpdate OnReceivedPacket(
ReceivedPacket) = 0;
// Called when the stream specific configuration has been updated.
ABSL_MUST_USE_RESULT virtual NetworkControlUpdate OnStreamsConfig(
StreamsConfig) = 0;

View File

@ -39,6 +39,10 @@ class MockNetworkControllerInterface : public NetworkControllerInterface {
(RoundTripTimeUpdate),
(override));
MOCK_METHOD(NetworkControlUpdate, OnSentPacket, (SentPacket), (override));
MOCK_METHOD(NetworkControlUpdate,
OnReceivedPacket,
(ReceivedPacket),
(override));
MOCK_METHOD(NetworkControlUpdate,
OnStreamsConfig,
(StreamsConfig),

View File

@ -1460,6 +1460,7 @@ void Call::NotifyBweOfReceivedPacket(const RtpPacketReceived& packet,
if (packet.GetExtension<AbsoluteSendTime>(&time_24)) {
packet_msg.send_time = AbsoluteSendTime::ToTimestamp(time_24);
}
transport_send_->OnReceivedPacket(packet_msg);
receive_side_cc_.OnReceivedPacket(packet, media_type);
}

View File

@ -419,6 +419,13 @@ void RtpTransportControllerSend::ProcessSentPacketUpdates(
}
}
void RtpTransportControllerSend::OnReceivedPacket(
const ReceivedPacket& packet_msg) {
RTC_DCHECK_RUN_ON(&sequence_checker_);
if (controller_)
PostUpdates(controller_->OnReceivedPacket(packet_msg));
}
void RtpTransportControllerSend::UpdateBitrateConstraints(
const BitrateConstraints& updated) {
RTC_DCHECK_RUN_ON(&sequence_checker_);

View File

@ -96,6 +96,7 @@ class RtpTransportControllerSend final
absl::optional<Timestamp> GetFirstPacketTime() const override;
void EnablePeriodicAlrProbing(bool enable) override;
void OnSentPacket(const rtc::SentPacket& sent_packet) override;
void OnReceivedPacket(const ReceivedPacket& packet_msg) override;
void SetSdpBitrateParameters(const BitrateConstraints& constraints) override;
void SetClientBitratePreferences(const BitrateSettings& preferences) override;

View File

@ -32,6 +32,7 @@
#include "modules/rtp_rtcp/include/rtcp_statistics.h"
#include "modules/rtp_rtcp/include/rtp_packet_sender.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
namespace rtc {
struct SentPacket;
@ -138,6 +139,8 @@ class RtpTransportControllerSendInterface {
// the calling thread or make assumptions about the thread context.
virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0;
virtual void OnReceivedPacket(const ReceivedPacket& received_packet) = 0;
virtual void SetSdpBitrateParameters(
const BitrateConstraints& constraints) = 0;
virtual void SetClientBitratePreferences(

View File

@ -98,6 +98,7 @@ class MockRtpTransportControllerSend
MOCK_METHOD(void, OnTransportOverheadChanged, (size_t), (override));
MOCK_METHOD(void, AccountForAudioPacketsInPacedSender, (bool), (override));
MOCK_METHOD(void, IncludeOverheadInPacedSender, (), (override));
MOCK_METHOD(void, OnReceivedPacket, (const ReceivedPacket&), (override));
MOCK_METHOD(void, EnsureStarted, (), (override));
};
} // namespace webrtc

View File

@ -240,7 +240,7 @@ NetworkControlUpdate GoogCcNetworkController::OnProcessInterval(
probes.begin(), probes.end());
if (rate_control_settings_.UseCongestionWindow() &&
!feedback_max_rtts_.empty()) {
last_packet_received_time_.IsFinite() && !feedback_max_rtts_.empty()) {
UpdateCongestionWindowSize();
}
if (congestion_window_pushback_controller_ && current_data_window_) {
@ -304,6 +304,12 @@ NetworkControlUpdate GoogCcNetworkController::OnSentPacket(
}
}
NetworkControlUpdate GoogCcNetworkController::OnReceivedPacket(
ReceivedPacket received_packet) {
last_packet_received_time_ = received_packet.receive_time;
return NetworkControlUpdate();
}
NetworkControlUpdate GoogCcNetworkController::OnStreamsConfig(
StreamsConfig msg) {
NetworkControlUpdate update;

View File

@ -63,6 +63,7 @@ class GoogCcNetworkController : public NetworkControllerInterface {
NetworkControlUpdate OnRemoteBitrateReport(RemoteBitrateReport msg) override;
NetworkControlUpdate OnRoundTripTimeUpdate(RoundTripTimeUpdate msg) override;
NetworkControlUpdate OnSentPacket(SentPacket msg) override;
NetworkControlUpdate OnReceivedPacket(ReceivedPacket msg) override;
NetworkControlUpdate OnStreamsConfig(StreamsConfig msg) override;
NetworkControlUpdate OnTargetRateConstraints(
TargetRateConstraints msg) override;
@ -132,6 +133,7 @@ class GoogCcNetworkController : public NetworkControllerInterface {
absl::optional<uint8_t> last_estimated_fraction_loss_ = 0;
TimeDelta last_estimated_round_trip_time_ = TimeDelta::PlusInfinity();
Timestamp last_packet_received_time_ = Timestamp::MinusInfinity();
double pacing_factor_;
DataRate min_total_allocated_bitrate_;

View File

@ -377,6 +377,11 @@ NetworkControlUpdate PccNetworkController::OnStreamsConfig(StreamsConfig msg) {
return NetworkControlUpdate();
}
NetworkControlUpdate PccNetworkController::OnReceivedPacket(
ReceivedPacket msg) {
return NetworkControlUpdate();
}
NetworkControlUpdate PccNetworkController::OnNetworkStateEstimate(
NetworkStateEstimate msg) {
return NetworkControlUpdate();

View File

@ -78,6 +78,7 @@ class PccNetworkController : public NetworkControllerInterface {
NetworkControlUpdate OnRemoteBitrateReport(RemoteBitrateReport msg) override;
NetworkControlUpdate OnRoundTripTimeUpdate(RoundTripTimeUpdate msg) override;
NetworkControlUpdate OnTransportLossReport(TransportLossReport msg) override;
NetworkControlUpdate OnReceivedPacket(ReceivedPacket msg) override;
NetworkControlUpdate OnNetworkStateEstimate(
NetworkStateEstimate msg) override;

View File

@ -122,6 +122,10 @@ NetworkControlUpdate NetworkControleUpdateCache::OnRoundTripTimeUpdate(
NetworkControlUpdate NetworkControleUpdateCache::OnSentPacket(SentPacket msg) {
return Update(controller_->OnSentPacket(msg));
}
NetworkControlUpdate NetworkControleUpdateCache::OnReceivedPacket(
ReceivedPacket msg) {
return Update(controller_->OnReceivedPacket(msg));
}
NetworkControlUpdate NetworkControleUpdateCache::OnStreamsConfig(
StreamsConfig msg) {
return Update(controller_->OnStreamsConfig(msg));

View File

@ -47,6 +47,7 @@ class NetworkControleUpdateCache : public NetworkControllerInterface {
NetworkControlUpdate OnRemoteBitrateReport(RemoteBitrateReport msg) override;
NetworkControlUpdate OnRoundTripTimeUpdate(RoundTripTimeUpdate msg) override;
NetworkControlUpdate OnSentPacket(SentPacket msg) override;
NetworkControlUpdate OnReceivedPacket(ReceivedPacket msg) override;
NetworkControlUpdate OnStreamsConfig(StreamsConfig msg) override;
NetworkControlUpdate OnTargetRateConstraints(
TargetRateConstraints msg) override;