| Index: media/cast/net/rtcp/rtcp_builder.h
|
| diff --git a/media/cast/net/rtcp/rtcp_sender.h b/media/cast/net/rtcp/rtcp_builder.h
|
| similarity index 55%
|
| rename from media/cast/net/rtcp/rtcp_sender.h
|
| rename to media/cast/net/rtcp/rtcp_builder.h
|
| index 06b11d4844518188fa65a7ed21a27d3543a79683..b530648e4f3689dfd909b9b320ee462c8930b7d1 100644
|
| --- a/media/cast/net/rtcp/rtcp_sender.h
|
| +++ b/media/cast/net/rtcp/rtcp_builder.h
|
| @@ -2,13 +2,14 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef MEDIA_CAST_NET_RTCP_RTCP_SENDER_H_
|
| -#define MEDIA_CAST_NET_RTCP_RTCP_SENDER_H_
|
| +#ifndef MEDIA_CAST_NET_RTCP_RTCP_BUILDER_H_
|
| +#define MEDIA_CAST_NET_RTCP_RTCP_BUILDER_H_
|
|
|
| #include <deque>
|
| #include <list>
|
| #include <string>
|
|
|
| +#include "base/big_endian.h"
|
| #include "media/cast/cast_config.h"
|
| #include "media/cast/cast_defines.h"
|
| #include "media/cast/net/cast_transport_defines.h"
|
| @@ -38,67 +39,49 @@ COMPILE_ASSERT(kSecondRedundancyOffset >
|
| kReceiveLogMessageHistorySize,
|
| redundancy_offset_out_of_range);
|
|
|
| -class PacedPacketSender;
|
|
|
| -// 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 {
|
| +class RtcpBuilder {
|
| public:
|
| - RtcpSender(PacedPacketSender* outgoing_transport,
|
| - uint32 sending_ssrc);
|
| - ~RtcpSender();
|
| + explicit RtcpBuilder(uint32 sending_ssrc);
|
| + ~RtcpBuilder();
|
|
|
| - // TODO(hclam): This method should be to build a packet instead of
|
| - // sending it.
|
| - void SendRtcpFromRtpReceiver(
|
| + PacketRef BuildRtcpFromReceiver(
|
| const RtcpReportBlock* report_block,
|
| const RtcpReceiverReferenceTimeReport* rrtr,
|
| const RtcpCastMessage* cast_message,
|
| const ReceiverRtcpEventSubscriber::RtcpEventMultiMap* rtcp_events,
|
| base::TimeDelta target_delay);
|
|
|
| - // TODO(hclam): This method should be to build a packet instead of
|
| - // sending it.
|
| - void SendRtcpFromRtpSender(const RtcpSenderInfo& sender_info);
|
| + PacketRef BuildRtcpFromSender(const RtcpSenderInfo& sender_info);
|
|
|
| private:
|
| - void BuildRR(const RtcpReportBlock* report_block,
|
| - Packet* packet) const;
|
| -
|
| - void AddReportBlocks(const RtcpReportBlock& report_block,
|
| - Packet* packet) const;
|
| -
|
| - void BuildRrtr(const RtcpReceiverReferenceTimeReport* rrtr,
|
| - Packet* packet) const;
|
| -
|
| - void BuildCast(const RtcpCastMessage* cast_message,
|
| - base::TimeDelta target_delay,
|
| - Packet* packet) const;
|
| -
|
| - void BuildSR(const RtcpSenderInfo& sender_info, Packet* packet) const;
|
| -
|
| - void BuildDlrrRb(const RtcpDlrrReportBlock& dlrr, Packet* packet) const;
|
| -
|
| - void BuildReceiverLog(
|
| + void AddRtcpHeader(RtcpPacketFields payload, int format_or_count);
|
| + void PatchLengthField();
|
| + void AddRR(const RtcpReportBlock* report_block);
|
| + void AddReportBlocks(const RtcpReportBlock& report_block);
|
| + void AddRrtr(const RtcpReceiverReferenceTimeReport* rrtr);
|
| + void AddCast(const RtcpCastMessage* cast_message,
|
| + base::TimeDelta target_delay);
|
| + void AddSR(const RtcpSenderInfo& sender_info);
|
| + void AddDlrrRb(const RtcpDlrrReportBlock& dlrr);
|
| + void AddReceiverLog(
|
| + const ReceiverRtcpEventSubscriber::RtcpEventMultiMap& rtcp_events);
|
| +
|
| + bool GetRtcpReceiverLogMessage(
|
| const ReceiverRtcpEventSubscriber::RtcpEventMultiMap& rtcp_events,
|
| - Packet* packet);
|
| -
|
| - bool BuildRtcpReceiverLogMessage(
|
| - 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);
|
| + size_t* total_number_of_messages_to_send);
|
|
|
| - const uint32 ssrc_;
|
| -
|
| - // Not owned by this class.
|
| - PacedPacketSender* const transport_;
|
| + void Start();
|
| + PacketRef Finish();
|
|
|
| + base::BigEndianWriter writer_;
|
| + const uint32 ssrc_;
|
| + char* ptr_of_length_;
|
| + PacketRef packet_;
|
| std::deque<RtcpReceiverLogMessage> rtcp_events_history_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(RtcpSender);
|
| + DISALLOW_COPY_AND_ASSIGN(RtcpBuilder);
|
| };
|
|
|
| } // namespace cast
|
|
|