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

Unified Diff: media/cast/net/rtcp/rtcp_builder.h

Issue 102413014: Cast:Splitting rtcp sender (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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: media/cast/net/rtcp/rtcp_builder.h
diff --git a/media/cast/net/rtcp/rtcp_builder.h b/media/cast/net/rtcp/rtcp_builder.h
new file mode 100644
index 0000000000000000000000000000000000000000..8e1507b63404790a03c0110536f9d4184ac2fb09
--- /dev/null
+++ b/media/cast/net/rtcp/rtcp_builder.h
@@ -0,0 +1,78 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// 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_NET_RTCP_SENDER_H_
+#define MEDIA_CAST_NET_RTCP_NET_RTCP_SENDER_H_
+
+#include <list>
+#include <string>
+
+#include "media/cast/cast_config.h"
+#include "media/cast/cast_defines.h"
+#include "media/cast/rtcp/rtcp.h"
+#include "media/cast/rtcp/rtcp_defines.h"
+
+namespace media {
+namespace cast {
+
+class RtcpBuilder {
+ public:
+ RtcpBuilder(PacedPacketSender* const paced_packet_sender,
+ uint32 sending_ssrc,
+ const std::string& c_name);
+
+ virtual ~RtcpBuilder();
+
+ void SendRtcpFromRtpSender(uint32 packet_type_flags,
+ const RtcpSenderInfo* sender_info,
+ const RtcpDlrrReportBlock* dlrr,
+ RtcpSenderLogMessage* sender_log);
+
+ enum RtcpPacketType {
+ kRtcpSr = 0x0002,
+ kRtcpRr = 0x0004,
+ kRtcpBye = 0x0008,
+ kRtcpPli = 0x0010,
+ kRtcpNack = 0x0020,
+ kRtcpFir = 0x0040,
+ kRtcpSrReq = 0x0200,
+ kRtcpDlrr = 0x0400,
+ kRtcpRrtr = 0x0800,
+ kRtcpRpsi = 0x8000,
+ kRtcpRemb = 0x10000,
+ kRtcpCast = 0x20000,
+ kRtcpSenderLog = 0x40000,
+ kRtcpReceiverLog = 0x80000,
+ };
+
+ private:
+ void BuildSR(const RtcpSenderInfo& sender_info,
+ const RtcpReportBlock* report_block,
+ std::vector<uint8>* packet) const;
+
+ void AddReportBlocks(const RtcpReportBlock& report_block,
+ std::vector<uint8>* packet) const;
+
+ void BuildSdec(std::vector<uint8>* packet) const;
+
+ void BuildBye(std::vector<uint8>* packet) const;
+
+ void BuildDlrrRb(const RtcpDlrrReportBlock* dlrr,
+ std::vector<uint8>* packet) const;
+ void BuildSenderLog(RtcpSenderLogMessage* sender_log_message,
+ std::vector<uint8>* packet) const;
+
+ const uint32 ssrc_;
+ const std::string c_name_;
+
+ // Not owned by this class.
+ PacedPacketSender* transport_;
+
+ DISALLOW_COPY_AND_ASSIGN(RtcpBuilder);
+};
+
+} // namespace cast
+} // namespace media
+
+#endif // MEDIA_CAST_NET_RTCP_NET_RTCP_SENDER_H_

Powered by Google App Engine
This is Rietveld 408576698