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

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_sender.cc

Issue 1635093002: Add transport sequence number on the non-pacer path of the rtp sender. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comments addressed. Created 4 years, 11 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 | « no previous file | webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/rtp_rtcp/source/rtp_sender.cc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
index bd9314d5d768b6e2d30c5be2a4ef2287b9c35ef5..a576284f637be4f6cef81b56c945f2a7b9527a5c 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -642,11 +642,15 @@ size_t RTPSender::SendPadData(size_t bytes,
payload_type = payload_type_;
over_rtx = false;
} else {
- // Without abs-send-time a media packet must be sent before padding so
- // that the timestamps used for estimation are correct.
- if (!media_has_been_sent_ && !rtp_header_extension_map_.IsRegistered(
- kRtpExtensionAbsoluteSendTime))
+ // Without abs-send-time or transport sequence number a media packet
+ // must be sent before padding so that the timestamps used for
+ // estimation are correct.
+ if (!media_has_been_sent_ &&
+ !(rtp_header_extension_map_.IsRegistered(
+ kRtpExtensionAbsoluteSendTime) ||
+ using_transport_seq)) {
return 0;
+ }
// Only change change the timestamp of padding packets sent over RTX.
// Padding only packets over RTP has to be sent as part of a media
// frame (and therefore the same timestamp).
@@ -1079,7 +1083,21 @@ int32_t RTPSender::SendToNetwork(uint8_t* buffer,
UpdateDelayStatistics(capture_time_ms, now_ms);
}
- bool sent = SendPacketToNetwork(buffer, length, PacketOptions());
+ // TODO(sprang): Potentially too much overhead in IsRegistered()?
+ bool using_transport_seq = rtp_header_extension_map_.IsRegistered(
+ kRtpExtensionTransportSequenceNumber) &&
+ transport_sequence_number_allocator_;
+
+ PacketOptions options;
+ if (using_transport_seq) {
+ options.packet_id =
+ UpdateTransportSequenceNumber(buffer, length, rtp_header);
+ if (transport_feedback_observer_) {
+ transport_feedback_observer_->AddPacket(options.packet_id, length, true);
+ }
+ }
+
+ bool sent = SendPacketToNetwork(buffer, length, options);
// Mark the packet as sent in the history even if send failed. Dropping a
// packet here should be treated as any other packet drop so we should be
« no previous file with comments | « no previous file | webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698