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

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

Issue 1307663004: Add a ParseHeader method to RtcpPacket, for parsing common RTCP header. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed comments, rebase Created 5 years, 3 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_utility.h
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_utility.h b/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
index fcafe5960ee883fa04c4d17164fd1ed89b43ea81..73658a01f892b1077fe3185d37275bb8904fdb3d 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
@@ -306,12 +306,24 @@ struct RTCPModRawPacket {
uint8_t* _ptrPacketEnd;
};
-struct RTCPCommonHeader {
- uint8_t V; // Version
- bool P; // Padding
- uint8_t IC; // Item count/subtype
- uint8_t PT; // Packet Type
- uint16_t LengthInOctets;
+struct RtcpCommonHeader {
+ static const uint8_t kHeaderSizeBytes = 4;
+ RtcpCommonHeader()
+ : version(2),
+ count_or_format(0),
+ packet_type(0),
+ payload_size_bytes(0),
+ padding_bytes(0) {}
+
+ uint32_t BlockSize() const {
+ return kHeaderSizeBytes + payload_size_bytes + padding_bytes;
+ }
+
+ uint8_t version;
+ uint8_t count_or_format;
+ uint8_t packet_type;
+ uint32_t payload_size_bytes;
+ uint8_t padding_bytes;
};
enum RTCPPT : uint8_t {
@@ -333,9 +345,9 @@ enum RtcpXrBlockType : uint8_t {
kBtVoipMetric = 7
};
-bool RTCPParseCommonHeader(const uint8_t* ptrDataBegin,
- const uint8_t* ptrDataEnd,
- RTCPCommonHeader& parsedHeader);
+bool RtcpParseCommonHeader(const uint8_t* buffer,
+ size_t size_bytes,
+ RtcpCommonHeader* parsed_header);
class RTCPParserV2 {
public:
@@ -418,7 +430,7 @@ class RTCPParserV2 {
bool ParseXrVoipMetricItem(int block_length_4bytes);
bool ParseXrUnsupportedBlockType(int block_length_4bytes);
- bool ParseFBCommon(const RTCPCommonHeader& header);
+ bool ParseFBCommon(const RtcpCommonHeader& header);
bool ParseNACKItem();
bool ParseTMMBRItem();
bool ParseTMMBNItem();
@@ -428,7 +440,7 @@ class RTCPParserV2 {
bool ParsePsfbAppItem();
bool ParsePsfbREMBItem();
- bool ParseAPP(const RTCPCommonHeader& header);
+ bool ParseAPP(const RtcpCommonHeader& header);
bool ParseAPPItem();
private:
@@ -452,9 +464,9 @@ class RTCPPacketIterator {
RTCPPacketIterator(uint8_t* rtcpData, size_t rtcpDataLength);
~RTCPPacketIterator();
- const RTCPCommonHeader* Begin();
- const RTCPCommonHeader* Iterate();
- const RTCPCommonHeader* Current();
+ const RtcpCommonHeader* Begin();
+ const RtcpCommonHeader* Iterate();
+ const RtcpCommonHeader* Current();
private:
uint8_t* const _ptrBegin;
@@ -462,7 +474,7 @@ class RTCPPacketIterator {
uint8_t* _ptrBlock;
- RTCPCommonHeader _header;
+ RtcpCommonHeader _header;
};
} // RTCPUtility
} // namespace webrtc
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc ('k') | webrtc/modules/rtp_rtcp/source/rtcp_utility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698