| 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 b9d2bb9fffbbdcf542f9cc4a162818ebbe804c34..38069688f2ba635e826d245132f172d8e12396c1 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
| @@ -828,35 +828,27 @@ bool RTPSender::PrepareAndSendPacket(std::unique_ptr<RtpPacketToSend> packet,
|
| void RTPSender::UpdateRtpStats(const RtpPacketToSend& packet,
|
| bool is_rtx,
|
| bool is_retransmit) {
|
| - StreamDataCounters* counters;
|
| - // Get ssrc before taking statistics_crit_ to avoid possible deadlock.
|
| - uint32_t ssrc = is_rtx ? RtxSsrc() : SSRC();
|
| int64_t now_ms = clock_->TimeInMilliseconds();
|
|
|
| rtc::CritScope lock(&statistics_crit_);
|
| - if (is_rtx) {
|
| - counters = &rtx_rtp_stats_;
|
| - } else {
|
| - counters = &rtp_stats_;
|
| - }
|
| + StreamDataCounters* counters = is_rtx ? &rtx_rtp_stats_ : &rtp_stats_;
|
|
|
| total_bitrate_sent_.Update(packet.size(), now_ms);
|
|
|
| - if (counters->first_packet_time_ms == -1) {
|
| - counters->first_packet_time_ms = clock_->TimeInMilliseconds();
|
| - }
|
| - if (IsFecPacket(packet)) {
|
| + if (counters->first_packet_time_ms == -1)
|
| + counters->first_packet_time_ms = now_ms;
|
| +
|
| + if (IsFecPacket(packet))
|
| CountPacket(&counters->fec, packet);
|
| - }
|
| +
|
| if (is_retransmit) {
|
| CountPacket(&counters->retransmitted, packet);
|
| nack_bitrate_sent_.Update(packet.size(), now_ms);
|
| }
|
| CountPacket(&counters->transmitted, packet);
|
|
|
| - if (rtp_stats_callback_) {
|
| - rtp_stats_callback_->DataCountersUpdated(*counters, ssrc);
|
| - }
|
| + if (rtp_stats_callback_)
|
| + rtp_stats_callback_->DataCountersUpdated(*counters, packet.Ssrc());
|
| }
|
|
|
| bool RTPSender::IsFecPacket(const RtpPacketToSend& packet) const {
|
|
|