Chromium Code Reviews| 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..707b6013d0293367195662948a5dce2828eae834 100644 |
| --- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc |
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc |
| @@ -642,11 +642,13 @@ 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 +1081,22 @@ 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 (using_transport_seq && transport_feedback_observer_) { |
|
sprang_webrtc
2016/01/27 11:32:17
Nit: Wrap in same if-block as if (using_transport_
stefan-webrtc
2016/01/27 11:39:41
Done.
|
| + 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 |