123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #ifndef MODULES_RTP_RTCP_INCLUDE_RTP_HEADER_PARSER_H_
- #define MODULES_RTP_RTCP_INCLUDE_RTP_HEADER_PARSER_H_
- #include "../rtp_header_extension/rtp_header_extension_map.h"
- class RTPHeaderExtensionParser {
- public:
- static RTPHeaderExtensionParser* Create();
- virtual ~RTPHeaderExtensionParser(){}
- // Parses the packet and stores the parsed packet in |header|. Returns true on
- // success, false otherwise.
- // This method is thread-safe in the sense that it can parse multiple packets
- // at once.
- virtual bool Parse(const uint8_t* packet,
- size_t length,
- RTPHeaderExtension* header,
- int *header_length) = 0;
- // Registers an RTP header extension and binds it to |id|.
- virtual bool RegisterRtpHeaderExtension(RTPExtensionType type,
- uint8_t id) = 0;
- // Registers an RTP header extension.
- virtual bool RegisterRtpHeaderExtension(RtpExtension extension) = 0;
- // De-registers an RTP header extension.
- virtual bool DeregisterRtpHeaderExtension(RTPExtensionType type) = 0;
- // De-registers an RTP header extension.
- virtual bool DeregisterRtpHeaderExtension(RtpExtension extension) = 0;
- };
- namespace RtpUtility {
- class RTPHeaderExtensionParser {
- public:
- RTPHeaderExtensionParser(const uint8_t* rtpData, size_t rtpDataLength);
- bool Parse(RTPHeaderExtension* header,
- const RtpHeaderExtensionMap* ptrExtensionMap,
- int *header_length);
- private:
- void ParseOneByteExtensionHeader(RTPHeaderExtension* extension,
- const RtpHeaderExtensionMap* ptrExtensionMap,
- const uint8_t* ptrRTPDataExtensionEnd,
- const uint8_t* ptr) const;
- const uint8_t* const _ptrRTPDataBegin;
- const uint8_t* const _ptrRTPDataEnd;
- };
- }
- #endif // MODULES_RTP_RTCP_INCLUDE_RTP_HEADER_PARSER_H_
|