Index: webrtc/modules/rtp_rtcp/source/rtcp_sender.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc |
index a4f6f3923b87c5ff4c6eaaf172f8b1509b9b4bb1..22e5a225498faedf6d477b79a9d4079f00d0d9b8 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc |
@@ -20,6 +20,8 @@ |
#include "webrtc/base/checks.h" |
#include "webrtc/base/logging.h" |
#include "webrtc/base/trace_event.h" |
+#include "webrtc/call.h" |
+#include "webrtc/call/rtc_event_log.h" |
#include "webrtc/common_types.h" |
#include "webrtc/modules/rtp_rtcp/source/byte_io.h" |
#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/app.h" |
@@ -79,16 +81,20 @@ RTCPSender::FeedbackState::FeedbackState() |
class PacketContainer : public rtcp::Empty, |
public rtcp::RtcpPacket::PacketReadyCallback { |
public: |
- explicit PacketContainer(Transport* transport) |
- : transport_(transport), bytes_sent_(0) {} |
+ PacketContainer(Transport* transport, RtcEventLog* event_log) |
+ : transport_(transport), event_log_(event_log), bytes_sent_(0) {} |
virtual ~PacketContainer() { |
for (RtcpPacket* packet : appended_packets_) |
delete packet; |
} |
void OnPacketReady(uint8_t* data, size_t length) override { |
- if (transport_->SendRtcp(data, length)) |
+ if (transport_->SendRtcp(data, length)) { |
bytes_sent_ += length; |
+ if (event_log_) { |
+ event_log_->LogRtcpPacket(false, MediaType::ANY, data, length); |
+ } |
+ } |
} |
size_t SendPackets() { |
@@ -98,6 +104,7 @@ class PacketContainer : public rtcp::Empty, |
private: |
Transport* transport_; |
+ RtcEventLog* event_log_; |
the sun
2016/01/11 12:36:16
* const event_log_ = nullptr
(there's a an implict
terelius
2016/01/11 15:04:03
Added RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(PacketCon
|
size_t bytes_sent_; |
}; |
@@ -138,11 +145,13 @@ RTCPSender::RTCPSender( |
Clock* clock, |
ReceiveStatistics* receive_statistics, |
RtcpPacketTypeCounterObserver* packet_type_counter_observer, |
+ RtcEventLog* event_log, |
Transport* outgoing_transport) |
: audio_(audio), |
clock_(clock), |
random_(clock_->TimeInMicroseconds()), |
method_(RtcpMode::kOff), |
+ event_log_(event_log), |
transport_(outgoing_transport), |
critical_section_rtcp_sender_( |
@@ -798,7 +807,7 @@ int32_t RTCPSender::SendCompoundRTCP( |
const uint16_t* nack_list, |
bool repeat, |
uint64_t pictureID) { |
- PacketContainer container(transport_); |
+ PacketContainer container(transport_, event_log_); |
{ |
CriticalSectionScoped lock(critical_section_rtcp_sender_.get()); |
if (method_ == RtcpMode::kOff) { |
@@ -1040,17 +1049,23 @@ bool RTCPSender::AllVolatileFlagsConsumed() const { |
bool RTCPSender::SendFeedbackPacket(const rtcp::TransportFeedback& packet) { |
class Sender : public rtcp::RtcpPacket::PacketReadyCallback { |
public: |
- explicit Sender(Transport* transport) |
- : transport_(transport), send_failure_(false) {} |
+ Sender(Transport* transport, RtcEventLog* event_log) |
+ : transport_(transport), event_log_(event_log), send_failure_(false) {} |
void OnPacketReady(uint8_t* data, size_t length) override { |
- if (!transport_->SendRtcp(data, length)) |
+ if (transport_->SendRtcp(data, length)) { |
+ if (event_log_) { |
+ event_log_->LogRtcpPacket(false, MediaType::ANY, data, length); |
+ } |
+ } else { |
send_failure_ = true; |
+ } |
} |
Transport* const transport_; |
+ RtcEventLog* event_log_; |
bool send_failure_; |
- } sender(transport_); |
+ } sender(transport_, event_log_); |
uint8_t buffer[IP_PACKET_SIZE]; |
return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) && |