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

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

Issue 1550293003: [rtp_rtcp] rtcp::Rpsi cleaned and got Parse function (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 11 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/rpsi.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/rpsi.h
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/rpsi.h b/webrtc/modules/rtp_rtcp/source/rtcp_packet/rpsi.h
index 1882ca6488fac5ea8e77206198305cce7ff2f02b..1fa3352335e19e24829f7d0dd75e9da1542bc9e0 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/rpsi.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/rpsi.h
@@ -12,34 +12,29 @@
#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_RPSI_H_
#include "webrtc/base/basictypes.h"
-#include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h"
+#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/psfb.h"
#include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
namespace webrtc {
namespace rtcp {
// Reference picture selection indication (RPSI) (RFC 4585).
-class Rpsi : public RtcpPacket {
+// Assumes native bit string stores PictureId (VP8, VP9).
+class Rpsi : public Psfb {
public:
- Rpsi()
- : RtcpPacket(),
- padding_bytes_(0) {
- memset(&rpsi_, 0, sizeof(rpsi_));
- }
-
- virtual ~Rpsi() {}
-
- void From(uint32_t ssrc) {
- rpsi_.SenderSSRC = ssrc;
- }
- void To(uint32_t ssrc) {
- rpsi_.MediaSSRC = ssrc;
- }
- void WithPayloadType(uint8_t payload) {
- assert(payload <= 0x7f);
- rpsi_.PayloadType = payload;
- }
+ static const uint8_t kFeedbackMessageType = 3;
+ Rpsi();
+ ~Rpsi() override {}
+
+ // Parse assumes header is already parsed and validated.
+ bool Parse(const RTCPUtility::RtcpCommonHeader& header,
+ const uint8_t* payload); // Size of the payload is in the header.
+
+ void WithPayloadType(uint8_t payload);
void WithPictureId(uint64_t picture_id);
+ uint8_t payload_type() const { return payload_type_; }
+ uint64_t picture_id() const { return picture_id_; }
+
protected:
bool Create(uint8_t* packet,
size_t* index,
@@ -47,13 +42,12 @@ class Rpsi : public RtcpPacket {
RtcpPacket::PacketReadyCallback* callback) const override;
private:
- size_t BlockLength() const {
- size_t fci_length = 2 + (rpsi_.NumberOfValidBits / 8) + padding_bytes_;
- return kCommonFbFmtLength + fci_length;
- }
+ size_t BlockLength() const override { return block_length_; }
+ static size_t CalculateBlockLength(uint8_t bitstring_size_bytes);
- uint8_t padding_bytes_;
- RTCPUtility::RTCPPacketPSFBRPSI rpsi_;
+ uint8_t payload_type_;
+ uint64_t picture_id_;
+ size_t block_length_;
RTC_DISALLOW_COPY_AND_ASSIGN(Rpsi);
};
« no previous file with comments | « no previous file | webrtc/modules/rtp_rtcp/source/rtcp_packet/rpsi.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698