aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanil Chapovalov <danilchap@webrtc.org>2023-02-01 18:42:07 +0100
committerWebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-02-02 10:01:27 +0000
commit65ab5fd728a467350a937cf5eec9a9e75e7a6f09 (patch)
tree6a4359f43dcbd2cbaa490d024a01353d35d09d5a
parentba846ccf2487aa6b7123ad002245eed996cb8ed5 (diff)
downloadwebrtc-65ab5fd728a467350a937cf5eec9a9e75e7a6f09.tar.gz
Cleanup RemoteEstimatorProxy::IncomingPacket
relax DCHECK and explain when it previous version could be hit. Use concise versions of the GetExtension functions. Reduce scope of the `lock_` Bug: None Change-Id: Iafc570ffe7e5b2dcbdfe166b26b140f7959c28c7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291711 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39246}
-rw-r--r--modules/remote_bitrate_estimator/remote_estimator_proxy.cc33
1 files changed, 18 insertions, 15 deletions
diff --git a/modules/remote_bitrate_estimator/remote_estimator_proxy.cc b/modules/remote_bitrate_estimator/remote_estimator_proxy.cc
index 367260491f..01a23ba9b0 100644
--- a/modules/remote_bitrate_estimator/remote_estimator_proxy.cc
+++ b/modules/remote_bitrate_estimator/remote_estimator_proxy.cc
@@ -88,28 +88,31 @@ void RemoteEstimatorProxy::IncomingPacket(const RtpPacketReceived& packet) {
RTC_LOG(LS_WARNING) << "Arrival time not set.";
return;
}
- MutexLock lock(&lock_);
- send_periodic_feedback_ = packet.HasExtension<TransportSequenceNumber>();
Packet internal_packet = {.arrival_time = packet.arrival_time(),
.size = DataSize::Bytes(packet.size()),
.ssrc = packet.Ssrc()};
uint16_t seqnum;
- absl::optional<FeedbackRequest> feedback_request;
- if (!packet.GetExtension<TransportSequenceNumber>(&seqnum)) {
- if (!packet.GetExtension<TransportSequenceNumberV2>(&seqnum,
- &feedback_request)) {
- RTC_DCHECK_NOTREACHED() << " Expected transport sequence number.";
- return;
- }
+ if (packet.GetExtension<TransportSequenceNumber>(&seqnum) ||
+ packet.GetExtension<TransportSequenceNumberV2>(
+ &seqnum, &internal_packet.feedback_request)) {
+ internal_packet.transport_sequence_number = seqnum;
+ } else {
+ // This function expected to be called only for packets that have
+ // TransportSequenceNumber rtp header extension, however malformed RTP
+ // packet may contain unparsable TransportSequenceNumber.
+ RTC_DCHECK(packet.HasExtension<TransportSequenceNumber>() ||
+ packet.HasExtension<TransportSequenceNumberV2>())
+ << " Expected transport sequence number.";
+ return;
}
- internal_packet.transport_sequence_number = seqnum;
- internal_packet.feedback_request = feedback_request;
- uint32_t send_time_24_bits;
- if (packet.GetExtension<AbsoluteSendTime>(&send_time_24_bits)) {
- internal_packet.absolute_send_time_24bits = send_time_24_bits;
- }
+ internal_packet.absolute_send_time_24bits =
+ packet.GetExtension<AbsoluteSendTime>();
+
+ MutexLock lock(&lock_);
+ send_periodic_feedback_ = packet.HasExtension<TransportSequenceNumber>();
+
IncomingPacket(internal_packet);
}