const uint8_t* const _ptrRTPDataBegin;
const uint8_t* const _ptrRTPDataEnd;
};
-
- enum FrameTypes
- {
- kIFrame, // key frame
- kPFrame // Delta frame
- };
-
- struct RTPPayloadVP8
- {
- bool nonReferenceFrame;
- bool beginningOfPartition;
- int partitionID;
- bool hasPictureID;
- bool hasTl0PicIdx;
- bool hasTID;
- bool hasKeyIdx;
- int pictureID;
- int tl0PicIdx;
- int tID;
- bool layerSync;
- int keyIdx;
- int frameWidth;
- int frameHeight;
-
- const uint8_t* data;
- uint16_t dataLength;
- };
-
- union RTPPayloadUnion
- {
- RTPPayloadVP8 VP8;
- };
-
- struct RTPPayload
- {
- void SetType(RtpVideoCodecTypes videoType);
-
- RtpVideoCodecTypes type;
- FrameTypes frameType;
- RTPPayloadUnion info;
- };
-
- // RTP payload parser
- class RTPPayloadParser
- {
- public:
- RTPPayloadParser(const RtpVideoCodecTypes payloadType,
- const uint8_t* payloadData,
- // Length w/o padding.
- const uint16_t payloadDataLength);
-
- ~RTPPayloadParser();
-
- bool Parse(RTPPayload& parsedPacket) const;
-
- private:
- bool ParseGeneric(RTPPayload& parsedPacket) const;
-
- bool ParseVP8(RTPPayload& parsedPacket) const;
-
- int ParseVP8Extension(RTPPayloadVP8 *vp8,
- const uint8_t *dataPtr,
- int dataLength) const;
-
- int ParseVP8PictureID(RTPPayloadVP8 *vp8,
- const uint8_t **dataPtr,
- int *dataLength,
- int *parsedBytes) const;
-
- int ParseVP8Tl0PicIdx(RTPPayloadVP8 *vp8,
- const uint8_t **dataPtr,
- int *dataLength,
- int *parsedBytes) const;
-
- int ParseVP8TIDAndKeyIdx(RTPPayloadVP8 *vp8,
- const uint8_t **dataPtr,
- int *dataLength,
- int *parsedBytes) const;
-
- int ParseVP8FrameSize(RTPPayload& parsedPacket,
- const uint8_t *dataPtr,
- int dataLength) const;
-
- private:
- const uint8_t* _dataPtr;
- const uint16_t _dataLength;
- const RtpVideoCodecTypes _videoType;
- };
-
- } // namespace RtpUtility
-
+} // namespace RtpUtility
} // namespace webrtc
#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_UTILITY_H_