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

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

Issue 1571283002: Fixes a bug which incorrectly logs incoming RTCP as outgoing. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: 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
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) &&

Powered by Google App Engine
This is Rietveld 408576698