Commit 6cdfc247 authored by noel's avatar noel Committed by Commit bot

Revert of Cast: Re-factor rtcp_sender.cc into rtcp_builder.cc and do some...

Revert of Cast: Re-factor rtcp_sender.cc into rtcp_builder.cc and do some cleanup (patchset #3 id:40001 of https://codereview.chromium.org/513313004/)

Reason for revert:
Caused cast_unittest rtcp test failures on Linux Asan Lsan builders (memory leaks).

http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%282%29/builds/7132

Original issue's description:
> Cast: Re-factor rtcp_sender.cc into rtcp_builder.cc and do some cleanup
>
> Committed: https://chromium.googlesource.com/chromium/src/+/6217e450d9e75037c62fff773c94aebe7f3ed2e6

TBR=miu@chromium.org,hubbe@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/541293004

Cr-Commit-Position: refs/heads/master@{#293665}
parent fd9fcc21
...@@ -72,8 +72,8 @@ source_set("net") { ...@@ -72,8 +72,8 @@ source_set("net") {
"net/rtcp/rtcp_defines.h", "net/rtcp/rtcp_defines.h",
"net/rtcp/rtcp.h", "net/rtcp/rtcp.h",
"net/rtcp/rtcp.cc", "net/rtcp/rtcp.cc",
"net/rtcp/rtcp_builder.cc", "net/rtcp/rtcp_sender.cc",
"net/rtcp/rtcp_builder.h", "net/rtcp/rtcp_sender.h",
"net/rtcp/rtcp_utility.cc", "net/rtcp/rtcp_utility.cc",
"net/rtcp/rtcp_utility.h", "net/rtcp/rtcp_utility.h",
"net/rtp/packet_storage.cc", "net/rtp/packet_storage.cc",
...@@ -229,7 +229,7 @@ test("cast_unittests") { ...@@ -229,7 +229,7 @@ test("cast_unittests") {
"net/pacing/mock_paced_packet_sender.cc", "net/pacing/mock_paced_packet_sender.cc",
"net/pacing/mock_paced_packet_sender.h", "net/pacing/mock_paced_packet_sender.h",
"net/pacing/paced_sender_unittest.cc", "net/pacing/paced_sender_unittest.cc",
"net/rtcp/rtcp_builder_unittest.cc", "net/rtcp/rtcp_sender_unittest.cc",
"net/rtcp/rtcp_unittest.cc", "net/rtcp/rtcp_unittest.cc",
"net/rtcp/rtcp_utility_unittest.cc", "net/rtcp/rtcp_utility_unittest.cc",
"net/rtcp/receiver_rtcp_event_subscriber_unittest.cc", "net/rtcp/receiver_rtcp_event_subscriber_unittest.cc",
......
...@@ -184,12 +184,12 @@ ...@@ -184,12 +184,12 @@
'net/pacing/paced_sender.cc', 'net/pacing/paced_sender.cc',
'net/pacing/paced_sender.h', 'net/pacing/paced_sender.h',
'net/rtcp/receiver_rtcp_event_subscriber.cc', 'net/rtcp/receiver_rtcp_event_subscriber.cc',
'net/rtcp/rtcp_builder.cc',
'net/rtcp/rtcp_builder.h',
'net/rtcp/rtcp_defines.cc', 'net/rtcp/rtcp_defines.cc',
'net/rtcp/rtcp_defines.h', 'net/rtcp/rtcp_defines.h',
'net/rtcp/rtcp.h', 'net/rtcp/rtcp.h',
'net/rtcp/rtcp.cc', 'net/rtcp/rtcp.cc',
'net/rtcp/rtcp_sender.cc',
'net/rtcp/rtcp_sender.h',
'net/rtcp/rtcp_utility.cc', 'net/rtcp/rtcp_utility.cc',
'net/rtcp/rtcp_utility.h', 'net/rtcp/rtcp_utility.h',
'net/rtp/packet_storage.cc', 'net/rtp/packet_storage.cc',
......
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
'net/pacing/mock_paced_packet_sender.cc', 'net/pacing/mock_paced_packet_sender.cc',
'net/pacing/mock_paced_packet_sender.h', 'net/pacing/mock_paced_packet_sender.h',
'net/pacing/paced_sender_unittest.cc', 'net/pacing/paced_sender_unittest.cc',
'net/rtcp/rtcp_builder_unittest.cc', 'net/rtcp/rtcp_sender_unittest.cc',
'net/rtcp/rtcp_unittest.cc', 'net/rtcp/rtcp_unittest.cc',
'net/rtcp/rtcp_utility_unittest.cc', 'net/rtcp/rtcp_utility_unittest.cc',
'net/rtcp/receiver_rtcp_event_subscriber_unittest.cc', 'net/rtcp/receiver_rtcp_event_subscriber_unittest.cc',
......
...@@ -8,9 +8,8 @@ ...@@ -8,9 +8,8 @@
#include "media/cast/cast_defines.h" #include "media/cast/cast_defines.h"
#include "media/cast/cast_environment.h" #include "media/cast/cast_environment.h"
#include "media/cast/net/cast_transport_defines.h" #include "media/cast/net/cast_transport_defines.h"
#include "media/cast/net/pacing/paced_sender.h"
#include "media/cast/net/rtcp/rtcp_builder.h"
#include "media/cast/net/rtcp/rtcp_defines.h" #include "media/cast/net/rtcp/rtcp_defines.h"
#include "media/cast/net/rtcp/rtcp_sender.h"
#include "media/cast/net/rtcp/rtcp_utility.h" #include "media/cast/net/rtcp/rtcp_utility.h"
using base::TimeDelta; using base::TimeDelta;
...@@ -65,8 +64,7 @@ Rtcp::Rtcp(const RtcpCastMessageCallback& cast_callback, ...@@ -65,8 +64,7 @@ Rtcp::Rtcp(const RtcpCastMessageCallback& cast_callback,
rtt_callback_(rtt_callback), rtt_callback_(rtt_callback),
log_callback_(log_callback), log_callback_(log_callback),
clock_(clock), clock_(clock),
rtcp_builder_(local_ssrc), rtcp_sender_(new RtcpSender(packet_sender, local_ssrc)),
packet_sender_(packet_sender),
local_ssrc_(local_ssrc), local_ssrc_(local_ssrc),
remote_ssrc_(remote_ssrc), remote_ssrc_(remote_ssrc),
last_report_truncated_ntp_(0), last_report_truncated_ntp_(0),
...@@ -230,14 +228,12 @@ void Rtcp::SendRtcpFromRtpReceiver( ...@@ -230,14 +228,12 @@ void Rtcp::SendRtcpFromRtpReceiver(
report_block.delay_since_last_sr = 0; report_block.delay_since_last_sr = 0;
} }
} }
packet_sender_->SendRtcpPacket( rtcp_sender_->SendRtcpFromRtpReceiver(
local_ssrc_,
rtcp_builder_.BuildRtcpFromReceiver(
rtp_receiver_statistics ? &report_block : NULL, rtp_receiver_statistics ? &report_block : NULL,
&rrtr, &rrtr,
cast_message, cast_message,
rtcp_events, rtcp_events,
target_delay)); target_delay);
} }
void Rtcp::SendRtcpFromRtpSender(base::TimeTicks current_time, void Rtcp::SendRtcpFromRtpSender(base::TimeTicks current_time,
...@@ -258,9 +254,7 @@ void Rtcp::SendRtcpFromRtpSender(base::TimeTicks current_time, ...@@ -258,9 +254,7 @@ void Rtcp::SendRtcpFromRtpSender(base::TimeTicks current_time,
sender_info.send_packet_count = send_packet_count; sender_info.send_packet_count = send_packet_count;
sender_info.send_octet_count = send_octet_count; sender_info.send_octet_count = send_octet_count;
packet_sender_->SendRtcpPacket( rtcp_sender_->SendRtcpFromRtpSender(sender_info);
local_ssrc_,
rtcp_builder_.BuildRtcpFromSender(sender_info));
} }
void Rtcp::OnReceivedNtp(uint32 ntp_seconds, uint32 ntp_fraction) { void Rtcp::OnReceivedNtp(uint32 ntp_seconds, uint32 ntp_fraction) {
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
#include "media/cast/net/cast_transport_defines.h" #include "media/cast/net/cast_transport_defines.h"
#include "media/cast/net/cast_transport_sender.h" #include "media/cast/net/cast_transport_sender.h"
#include "media/cast/net/rtcp/receiver_rtcp_event_subscriber.h" #include "media/cast/net/rtcp/receiver_rtcp_event_subscriber.h"
#include "media/cast/net/rtcp/rtcp_builder.h"
#include "media/cast/net/rtcp/rtcp_defines.h" #include "media/cast/net/rtcp/rtcp_defines.h"
namespace media { namespace media {
...@@ -32,7 +31,7 @@ namespace cast { ...@@ -32,7 +31,7 @@ namespace cast {
class LocalRtcpReceiverFeedback; class LocalRtcpReceiverFeedback;
class PacedPacketSender; class PacedPacketSender;
class RtcpReceiver; class RtcpReceiver;
class RtcpBuilder; class RtcpSender;
typedef std::pair<uint32, base::TimeTicks> RtcpSendTimePair; typedef std::pair<uint32, base::TimeTicks> RtcpSendTimePair;
typedef std::map<uint32, base::TimeTicks> RtcpSendTimeMap; typedef std::map<uint32, base::TimeTicks> RtcpSendTimeMap;
...@@ -139,8 +138,7 @@ class Rtcp { ...@@ -139,8 +138,7 @@ class Rtcp {
const RtcpRttCallback rtt_callback_; const RtcpRttCallback rtt_callback_;
const RtcpLogMessageCallback log_callback_; const RtcpLogMessageCallback log_callback_;
base::TickClock* const clock_; // Not owned by this class. base::TickClock* const clock_; // Not owned by this class.
RtcpBuilder rtcp_builder_; const scoped_ptr<RtcpSender> rtcp_sender_;
PacedPacketSender* packet_sender_; // Not owned.
const uint32 local_ssrc_; const uint32 local_ssrc_;
const uint32 remote_ssrc_; const uint32 remote_ssrc_;
......
...@@ -2,14 +2,13 @@ ...@@ -2,14 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef MEDIA_CAST_NET_RTCP_RTCP_BUILDER_H_ #ifndef MEDIA_CAST_NET_RTCP_RTCP_SENDER_H_
#define MEDIA_CAST_NET_RTCP_RTCP_BUILDER_H_ #define MEDIA_CAST_NET_RTCP_RTCP_SENDER_H_
#include <deque> #include <deque>
#include <list> #include <list>
#include <string> #include <string>
#include "base/big_endian.h"
#include "media/cast/cast_config.h" #include "media/cast/cast_config.h"
#include "media/cast/cast_defines.h" #include "media/cast/cast_defines.h"
#include "media/cast/net/cast_transport_defines.h" #include "media/cast/net/cast_transport_defines.h"
...@@ -39,49 +38,67 @@ COMPILE_ASSERT(kSecondRedundancyOffset > ...@@ -39,49 +38,67 @@ COMPILE_ASSERT(kSecondRedundancyOffset >
kReceiveLogMessageHistorySize, kReceiveLogMessageHistorySize,
redundancy_offset_out_of_range); redundancy_offset_out_of_range);
class PacedPacketSender;
class RtcpBuilder { // TODO(hclam): This should be renamed to RtcpPacketBuilder. The function
// of this class is to only to build a RTCP packet but not to send it.
class RtcpSender {
public: public:
explicit RtcpBuilder(uint32 sending_ssrc); RtcpSender(PacedPacketSender* outgoing_transport,
~RtcpBuilder(); uint32 sending_ssrc);
~RtcpSender();
PacketRef BuildRtcpFromReceiver( // TODO(hclam): This method should be to build a packet instead of
// sending it.
void SendRtcpFromRtpReceiver(
const RtcpReportBlock* report_block, const RtcpReportBlock* report_block,
const RtcpReceiverReferenceTimeReport* rrtr, const RtcpReceiverReferenceTimeReport* rrtr,
const RtcpCastMessage* cast_message, const RtcpCastMessage* cast_message,
const ReceiverRtcpEventSubscriber::RtcpEventMultiMap* rtcp_events, const ReceiverRtcpEventSubscriber::RtcpEventMultiMap* rtcp_events,
base::TimeDelta target_delay); base::TimeDelta target_delay);
PacketRef BuildRtcpFromSender(const RtcpSenderInfo& sender_info); // TODO(hclam): This method should be to build a packet instead of
// sending it.
void SendRtcpFromRtpSender(const RtcpSenderInfo& sender_info);
private: private:
void AddRtcpHeader(RtcpPacketFields payload, int format_or_count); void BuildRR(const RtcpReportBlock* report_block,
void PatchLengthField(); Packet* packet) const;
void AddRR(const RtcpReportBlock* report_block);
void AddReportBlocks(const RtcpReportBlock& report_block); void AddReportBlocks(const RtcpReportBlock& report_block,
void AddRrtr(const RtcpReceiverReferenceTimeReport* rrtr); Packet* packet) const;
void AddCast(const RtcpCastMessage* cast_message,
base::TimeDelta target_delay); void BuildRrtr(const RtcpReceiverReferenceTimeReport* rrtr,
void AddSR(const RtcpSenderInfo& sender_info); Packet* packet) const;
void AddDlrrRb(const RtcpDlrrReportBlock& dlrr);
void AddReceiverLog( void BuildCast(const RtcpCastMessage* cast_message,
const ReceiverRtcpEventSubscriber::RtcpEventMultiMap& rtcp_events); base::TimeDelta target_delay,
Packet* packet) const;
void BuildSR(const RtcpSenderInfo& sender_info, Packet* packet) const;
void BuildDlrrRb(const RtcpDlrrReportBlock& dlrr, Packet* packet) const;
bool GetRtcpReceiverLogMessage( void BuildReceiverLog(
const ReceiverRtcpEventSubscriber::RtcpEventMultiMap& rtcp_events, const ReceiverRtcpEventSubscriber::RtcpEventMultiMap& rtcp_events,
RtcpReceiverLogMessage* receiver_log_message, Packet* packet);
size_t* total_number_of_messages_to_send);
void Start(); bool BuildRtcpReceiverLogMessage(
PacketRef Finish(); const ReceiverRtcpEventSubscriber::RtcpEventMultiMap& rtcp_events,
size_t start_size,
RtcpReceiverLogMessage* receiver_log_message,
size_t* number_of_frames,
size_t* total_number_of_messages_to_send,
size_t* rtcp_log_size);
base::BigEndianWriter writer_;
const uint32 ssrc_; const uint32 ssrc_;
char* ptr_of_length_;
PacketRef packet_; // Not owned by this class.
PacedPacketSender* const transport_;
std::deque<RtcpReceiverLogMessage> rtcp_events_history_; std::deque<RtcpReceiverLogMessage> rtcp_events_history_;
DISALLOW_COPY_AND_ASSIGN(RtcpBuilder); DISALLOW_COPY_AND_ASSIGN(RtcpSender);
}; };
} // namespace cast } // namespace cast
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment