Add SDES, APP, IJ, SLI and PLI packet types to RTCP packet class.
BUG=2450 R=mflodman@webrtc.org, stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/19559004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6449 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -13,6 +13,7 @@
|
||||
#define WEBRTC_TEST_RTCP_PACKET_PARSER_H_
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
|
||||
@ -100,6 +101,65 @@ class ReportBlock : public PacketType {
|
||||
RTCPUtility::RTCPPacketReportBlockItem rb_;
|
||||
};
|
||||
|
||||
class Ij : public PacketType {
|
||||
public:
|
||||
Ij() {}
|
||||
virtual ~Ij() {}
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set() { ++num_packets_; }
|
||||
};
|
||||
|
||||
class IjItem : public PacketType {
|
||||
public:
|
||||
IjItem() {}
|
||||
virtual ~IjItem() {}
|
||||
|
||||
uint32_t Jitter() const { return ij_item_.Jitter; }
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set(const RTCPUtility::RTCPPacketExtendedJitterReportItem& ij_item) {
|
||||
ij_item_ = ij_item;
|
||||
++num_packets_;
|
||||
}
|
||||
|
||||
RTCPUtility::RTCPPacketExtendedJitterReportItem ij_item_;
|
||||
};
|
||||
|
||||
class Sdes : public PacketType {
|
||||
public:
|
||||
Sdes() {}
|
||||
virtual ~Sdes() {}
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set() { ++num_packets_; }
|
||||
};
|
||||
|
||||
class SdesChunk : public PacketType {
|
||||
public:
|
||||
SdesChunk() {}
|
||||
virtual ~SdesChunk() {}
|
||||
|
||||
uint32_t Ssrc() const { return cname_.SenderSSRC; }
|
||||
std::string Cname() const { return cname_.CName; }
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set(const RTCPUtility::RTCPPacketSDESCName& cname) {
|
||||
cname_ = cname;
|
||||
++num_packets_;
|
||||
}
|
||||
|
||||
RTCPUtility::RTCPPacketSDESCName cname_;
|
||||
};
|
||||
|
||||
class Bye : public PacketType {
|
||||
public:
|
||||
Bye() {}
|
||||
@ -140,6 +200,102 @@ class Rpsi : public PacketType {
|
||||
RTCPUtility::RTCPPacketPSFBRPSI rpsi_;
|
||||
};
|
||||
|
||||
class App : public PacketType {
|
||||
public:
|
||||
App() {}
|
||||
virtual ~App() {}
|
||||
|
||||
uint8_t SubType() const { return app_.SubType; }
|
||||
uint32_t Name() const { return app_.Name; }
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set(const RTCPUtility::RTCPPacketAPP& app) {
|
||||
app_ = app;
|
||||
++num_packets_;
|
||||
}
|
||||
|
||||
RTCPUtility::RTCPPacketAPP app_;
|
||||
};
|
||||
|
||||
class AppItem : public PacketType {
|
||||
public:
|
||||
AppItem() {}
|
||||
virtual ~AppItem() {}
|
||||
|
||||
uint8_t* Data() { return app_item_.Data; }
|
||||
uint16_t DataLength() const { return app_item_.Size; }
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set(const RTCPUtility::RTCPPacketAPP& app) {
|
||||
app_item_ = app;
|
||||
++num_packets_;
|
||||
}
|
||||
|
||||
RTCPUtility::RTCPPacketAPP app_item_;
|
||||
};
|
||||
|
||||
class Pli : public PacketType {
|
||||
public:
|
||||
Pli() {}
|
||||
virtual ~Pli() {}
|
||||
|
||||
uint32_t Ssrc() const { return pli_.SenderSSRC; }
|
||||
uint32_t MediaSsrc() const { return pli_.MediaSSRC; }
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set(const RTCPUtility::RTCPPacketPSFBPLI& pli) {
|
||||
pli_ = pli;
|
||||
++num_packets_;
|
||||
}
|
||||
|
||||
RTCPUtility::RTCPPacketPSFBPLI pli_;
|
||||
};
|
||||
|
||||
class Sli : public PacketType {
|
||||
public:
|
||||
Sli() {}
|
||||
virtual ~Sli() {}
|
||||
|
||||
uint32_t Ssrc() const { return sli_.SenderSSRC; }
|
||||
uint32_t MediaSsrc() const { return sli_.MediaSSRC; }
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set(const RTCPUtility::RTCPPacketPSFBSLI& sli) {
|
||||
sli_ = sli;
|
||||
++num_packets_;
|
||||
}
|
||||
|
||||
RTCPUtility::RTCPPacketPSFBSLI sli_;
|
||||
};
|
||||
|
||||
class SliItem : public PacketType {
|
||||
public:
|
||||
SliItem() {}
|
||||
virtual ~SliItem() {}
|
||||
|
||||
uint16_t FirstMb() const { return sli_item_.FirstMB; }
|
||||
uint16_t NumberOfMb() const { return sli_item_.NumberOfMB; }
|
||||
uint8_t PictureId() const { return sli_item_.PictureId; }
|
||||
|
||||
private:
|
||||
friend class RtcpPacketParser;
|
||||
|
||||
void Set(const RTCPUtility::RTCPPacketPSFBSLIItem& sli_item) {
|
||||
sli_item_ = sli_item;
|
||||
++num_packets_;
|
||||
}
|
||||
|
||||
RTCPUtility::RTCPPacketPSFBSLIItem sli_item_;
|
||||
};
|
||||
|
||||
class Fir : public PacketType {
|
||||
public:
|
||||
Fir() {}
|
||||
@ -232,7 +388,16 @@ class RtcpPacketParser {
|
||||
SenderReport* sender_report() { return &sender_report_; }
|
||||
ReceiverReport* receiver_report() { return &receiver_report_; }
|
||||
ReportBlock* report_block() { return &report_block_; }
|
||||
Sdes* sdes() { return &sdes_; }
|
||||
SdesChunk* sdes_chunk() { return &sdes_chunk_; }
|
||||
Bye* bye() { return &bye_; }
|
||||
App* app() { return &app_; }
|
||||
AppItem* app_item() { return &app_item_; }
|
||||
Ij* ij() { return &ij_; }
|
||||
IjItem* ij_item() { return &ij_item_; }
|
||||
Pli* pli() { return &pli_; }
|
||||
Sli* sli() { return &sli_; }
|
||||
SliItem* sli_item() { return &sli_item_; }
|
||||
Rpsi* rpsi() { return &rpsi_; }
|
||||
Fir* fir() { return &fir_; }
|
||||
FirItem* fir_item() { return &fir_item_; }
|
||||
@ -247,7 +412,16 @@ class RtcpPacketParser {
|
||||
SenderReport sender_report_;
|
||||
ReceiverReport receiver_report_;
|
||||
ReportBlock report_block_;
|
||||
Sdes sdes_;
|
||||
SdesChunk sdes_chunk_;
|
||||
Bye bye_;
|
||||
App app_;
|
||||
AppItem app_item_;
|
||||
Ij ij_;
|
||||
IjItem ij_item_;
|
||||
Pli pli_;
|
||||
Sli sli_;
|
||||
SliItem sli_item_;
|
||||
Rpsi rpsi_;
|
||||
Fir fir_;
|
||||
FirItem fir_item_;
|
||||
|
||||
Reference in New Issue
Block a user