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

Unified Diff: webrtc/modules/rtp_rtcp/source/rtcp_packet.h

Issue 1582323005: [rtp_rtcp] Append functionality moved from base RtcpPacket class to CompoundPacket (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 4 years, 9 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
« no previous file with comments | « no previous file | webrtc/modules/rtp_rtcp/source/rtcp_packet.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/rtp_rtcp/source/rtcp_packet.h
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet.h b/webrtc/modules/rtp_rtcp/source/rtcp_packet.h
index fef7258b5a8874e3aaf5f03e382ecc737e70279c..27ec57aaa92970b10d3ee422038c4e63dd509fb5 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_packet.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet.h
@@ -12,17 +12,11 @@
#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_H_
#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_H_
-#include <vector>
-
#include "webrtc/base/buffer.h"
#include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
-#include "webrtc/typedefs.h"
namespace webrtc {
namespace rtcp {
-
-static const int kCommonFbFmtLength = 12;
-
// Class for building RTCP packets.
//
// Example:
@@ -45,16 +39,15 @@ static const int kCommonFbFmtLength = 12;
// rtc::Buffer packet = fir.Build(); // Returns a RawPacket holding
// // the built rtcp packet.
//
-// rr.Append(&fir); // Builds a compound RTCP packet with
-// rtc::Buffer packet = rr.Build(); // a receiver report, report block
-// // and fir message.
+// CompoundPacket compound; // Builds a compound RTCP packet with
+// compound.Append(&rr); // a receiver report, report block
+// compound.Append(&fir); // and fir message.
+// rtc::Buffer packet = compound.Build();
class RtcpPacket {
public:
virtual ~RtcpPacket() {}
- void Append(RtcpPacket* packet);
-
// Callback used to signal that an RTCP packet is ready. Note that this may
// not contain all data in this RtcpPacket; if a packet cannot fit in
// max_length bytes, it will be fragmented and multiple calls to this
@@ -71,27 +64,30 @@ class RtcpPacket {
// used, will cause assertion error if fragmentation occurs.
rtc::Buffer Build() const;
- // Returns true if all calls to Create succeeded. A buffer of size
+ // Returns true if call to Create succeeded. A buffer of size
// IP_PACKET_SIZE will be allocated and reused between calls to callback.
bool Build(PacketReadyCallback* callback) const;
- // Returns true if all calls to Create succeeded. Provided buffer reference
+ // Returns true if call to Create succeeded. Provided buffer reference
// will be used for all calls to callback.
bool BuildExternalBuffer(uint8_t* buffer,
size_t max_length,
PacketReadyCallback* callback) const;
- // Size of this packet in bytes (including headers, excluding nested packets).
+ // Size of this packet in bytes (including headers).
virtual size_t BlockLength() const = 0;
- protected:
- RtcpPacket() {}
-
+ // Creates packet in the given buffer at the given position.
+ // Calls PacketReadyCallback::OnPacketReady if remaining buffer is too small
+ // and assume buffer can be reused after OnPacketReady returns.
virtual bool Create(uint8_t* packet,
size_t* index,
size_t max_length,
PacketReadyCallback* callback) const = 0;
+ protected:
+ RtcpPacket() {}
+
static void CreateHeader(uint8_t count_or_format,
uint8_t packet_type,
size_t block_length, // Size in 32bit words - 1.
@@ -105,13 +101,6 @@ class RtcpPacket {
size_t HeaderLength() const;
static const size_t kHeaderLength = 4;
- std::vector<RtcpPacket*> appended_packets_;
-
- private:
- bool CreateAndAddAppended(uint8_t* packet,
- size_t* index,
- size_t max_length,
- PacketReadyCallback* callback) const;
};
} // namespace rtcp
} // namespace webrtc
« no previous file with comments | « no previous file | webrtc/modules/rtp_rtcp/source/rtcp_packet.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698