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 25016e053f2b43a948f803846fda364423d31dbe..51d8c334799fc2a93ecfa09a415458fa0fa4e274 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc |
@@ -591,9 +591,9 @@ size_t RTPSender::SendPadData(size_t bytes, |
size_t padding_bytes_in_packet = |
std::min(MaxDataPayloadLength(), kMaxPaddingLength); |
size_t bytes_sent = 0; |
- bool using_transport_seq = rtp_header_extension_map_.IsRegistered( |
- kRtpExtensionTransportSequenceNumber) && |
- transport_sequence_number_allocator_; |
+ bool using_transport_seq = |
+ IsRtpHeaderExtensionRegistered(kRtpExtensionTransportSequenceNumber) && |
+ transport_sequence_number_allocator_; |
for (; bytes > 0; bytes -= padding_bytes_in_packet) { |
if (bytes < padding_bytes_in_packet) |
bytes = padding_bytes_in_packet; |
@@ -647,9 +647,13 @@ size_t RTPSender::SendPadData(size_t bytes, |
} |
uint8_t padding_packet[IP_PACKET_SIZE]; |
- size_t header_length = |
- CreateRtpHeader(padding_packet, payload_type, ssrc, false, timestamp, |
- sequence_number, std::vector<uint32_t>()); |
+ size_t header_length = 0; |
+ { |
+ rtc::CritScope lock(&send_critsect_); |
+ header_length = |
+ CreateRtpHeader(padding_packet, payload_type, ssrc, false, timestamp, |
+ sequence_number, std::vector<uint32_t>()); |
+ } |
BuildPaddingPacket(padding_packet, header_length, padding_bytes_in_packet); |
size_t length = padding_bytes_in_packet + header_length; |
int64_t now_ms = clock_->TimeInMilliseconds(); |
@@ -666,7 +670,8 @@ size_t RTPSender::SendPadData(size_t bytes, |
UpdateAbsoluteSendTime(padding_packet, length, rtp_header, now_ms); |
PacketOptions options; |
- if (AllocateTransportSequenceNumber(&options.packet_id)) { |
+ if (IsRtpHeaderExtensionRegistered(kRtpExtensionTransportSequenceNumber) && |
+ AllocateTransportSequenceNumber(&options.packet_id)) { |
if (UpdateTransportSequenceNumber(options.packet_id, padding_packet, |
length, rtp_header)) { |
if (transport_feedback_observer_) |
@@ -859,7 +864,8 @@ bool RTPSender::PrepareAndSendPacket(uint8_t* buffer, |
UpdateAbsoluteSendTime(buffer_to_send_ptr, length, rtp_header, now_ms); |
PacketOptions options; |
- if (AllocateTransportSequenceNumber(&options.packet_id)) { |
+ if (IsRtpHeaderExtensionRegistered(kRtpExtensionTransportSequenceNumber) && |
+ AllocateTransportSequenceNumber(&options.packet_id)) { |
if (UpdateTransportSequenceNumber(options.packet_id, buffer_to_send_ptr, |
length, rtp_header)) { |
if (transport_feedback_observer_) |
@@ -992,7 +998,8 @@ int32_t RTPSender::SendToNetwork(uint8_t* buffer, |
} |
PacketOptions options; |
- if (AllocateTransportSequenceNumber(&options.packet_id)) { |
+ if (IsRtpHeaderExtensionRegistered(kRtpExtensionTransportSequenceNumber) && |
+ AllocateTransportSequenceNumber(&options.packet_id)) { |
if (UpdateTransportSequenceNumber(options.packet_id, buffer, length, |
rtp_header)) { |
if (transport_feedback_observer_) |