Index: webrtc/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.cc b/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.cc |
index 510565929286f838c413b8695db291e0950c1e61..8b20aebb90aff7e11ae60b690eaf2c172053689b 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.cc |
@@ -17,22 +17,22 @@ namespace webrtc { |
namespace test { |
+constexpr RtpPacketToSend::ExtensionManager* kNoExtensions = nullptr; |
+ |
RtpFormatVp8TestHelper::RtpFormatVp8TestHelper(const RTPVideoHeaderVP8* hdr) |
- : payload_data_(NULL), |
- buffer_(NULL), |
+ : packet_(kNoExtensions), |
+ payload_data_(NULL), |
data_ptr_(NULL), |
fragmentation_(NULL), |
hdr_info_(hdr), |
payload_start_(0), |
payload_size_(0), |
- buffer_size_(0), |
sloppy_partitioning_(false), |
inited_(false) {} |
RtpFormatVp8TestHelper::~RtpFormatVp8TestHelper() { |
delete fragmentation_; |
delete [] payload_data_; |
- delete [] buffer_; |
} |
bool RtpFormatVp8TestHelper::Init(const size_t* partition_sizes, |
@@ -45,9 +45,7 @@ bool RtpFormatVp8TestHelper::Init(const size_t* partition_sizes, |
for (size_t p = 0; p < num_partitions; ++p) { |
payload_size_ += partition_sizes[p]; |
} |
- buffer_size_ = payload_size_ + 6; // Add space for payload descriptor. |
payload_data_ = new uint8_t[payload_size_]; |
- buffer_ = new uint8_t[buffer_size_]; |
size_t j = 0; |
// Loop through the partitions again. |
for (size_t p = 0; p < num_partitions; ++p) { |
@@ -70,15 +68,13 @@ void RtpFormatVp8TestHelper::GetAllPacketsAndCheck( |
const bool* expected_frag_start, |
size_t expected_num_packets) { |
ASSERT_TRUE(inited_); |
- size_t send_bytes = 0; |
bool last = false; |
for (size_t i = 0; i < expected_num_packets; ++i) { |
std::ostringstream ss; |
ss << "Checking packet " << i; |
SCOPED_TRACE(ss.str()); |
- EXPECT_TRUE(packetizer->NextPacket(buffer_, &send_bytes, &last)); |
- CheckPacket(send_bytes, expected_sizes[i], last, |
- expected_frag_start[i]); |
+ EXPECT_TRUE(packetizer->NextPacket(&packet_, &last)); |
+ CheckPacket(expected_sizes[i], last, expected_frag_start[i]); |
} |
EXPECT_TRUE(last); |
} |
@@ -127,67 +123,68 @@ void RtpFormatVp8TestHelper::GetAllPacketsAndCheck( |
void RtpFormatVp8TestHelper::CheckHeader(bool frag_start) { |
payload_start_ = 1; |
- EXPECT_BIT_EQ(buffer_[0], 6, 0); // Check reserved bit. |
+ rtc::ArrayView<const uint8_t> buffer = packet_.payload(); |
+ EXPECT_BIT_EQ(buffer[0], 6, 0); // Check reserved bit. |
if (hdr_info_->pictureId != kNoPictureId || |
hdr_info_->temporalIdx != kNoTemporalIdx || |
hdr_info_->tl0PicIdx != kNoTl0PicIdx || |
hdr_info_->keyIdx != kNoKeyIdx) { |
- EXPECT_BIT_X_EQ(buffer_[0], 1); |
+ EXPECT_BIT_X_EQ(buffer[0], 1); |
++payload_start_; |
CheckPictureID(); |
CheckTl0PicIdx(); |
CheckTIDAndKeyIdx(); |
} else { |
- EXPECT_BIT_X_EQ(buffer_[0], 0); |
+ EXPECT_BIT_X_EQ(buffer[0], 0); |
} |
- EXPECT_BIT_N_EQ(buffer_[0], hdr_info_->nonReference ? 1 : 0); |
- EXPECT_BIT_S_EQ(buffer_[0], frag_start ? 1 : 0); |
+ EXPECT_BIT_N_EQ(buffer[0], hdr_info_->nonReference ? 1 : 0); |
+ EXPECT_BIT_S_EQ(buffer[0], frag_start ? 1 : 0); |
// Check partition index. |
if (!sloppy_partitioning_) { |
// The test payload data is constructed such that the payload value is the |
// same as the partition index. |
- EXPECT_EQ(buffer_[0] & 0x0F, buffer_[payload_start_]); |
+ EXPECT_EQ(buffer[0] & 0x0F, buffer[payload_start_]); |
} else { |
// Partition should be set to 0. |
- EXPECT_EQ(buffer_[0] & 0x0F, 0); |
+ EXPECT_EQ(buffer[0] & 0x0F, 0); |
} |
} |
// Verify that the I bit and the PictureID field are both set in accordance |
// with the information in hdr_info_->pictureId. |
void RtpFormatVp8TestHelper::CheckPictureID() { |
+ auto buffer = packet_.payload(); |
if (hdr_info_->pictureId != kNoPictureId) { |
- EXPECT_BIT_I_EQ(buffer_[1], 1); |
+ EXPECT_BIT_I_EQ(buffer[1], 1); |
if (hdr_info_->pictureId > 0x7F) { |
- EXPECT_BIT_EQ(buffer_[payload_start_], 7, 1); |
- EXPECT_EQ(buffer_[payload_start_] & 0x7F, |
+ EXPECT_BIT_EQ(buffer[payload_start_], 7, 1); |
+ EXPECT_EQ(buffer[payload_start_] & 0x7F, |
(hdr_info_->pictureId >> 8) & 0x7F); |
- EXPECT_EQ(buffer_[payload_start_ + 1], |
- hdr_info_->pictureId & 0xFF); |
+ EXPECT_EQ(buffer[payload_start_ + 1], hdr_info_->pictureId & 0xFF); |
payload_start_ += 2; |
} else { |
- EXPECT_BIT_EQ(buffer_[payload_start_], 7, 0); |
- EXPECT_EQ(buffer_[payload_start_] & 0x7F, |
- (hdr_info_->pictureId) & 0x7F); |
+ EXPECT_BIT_EQ(buffer[payload_start_], 7, 0); |
+ EXPECT_EQ(buffer[payload_start_] & 0x7F, (hdr_info_->pictureId) & 0x7F); |
payload_start_ += 1; |
} |
} else { |
- EXPECT_BIT_I_EQ(buffer_[1], 0); |
+ EXPECT_BIT_I_EQ(buffer[1], 0); |
} |
} |
// Verify that the L bit and the TL0PICIDX field are both set in accordance |
// with the information in hdr_info_->tl0PicIdx. |
void RtpFormatVp8TestHelper::CheckTl0PicIdx() { |
+ auto buffer = packet_.payload(); |
if (hdr_info_->tl0PicIdx != kNoTl0PicIdx) { |
- EXPECT_BIT_L_EQ(buffer_[1], 1); |
- EXPECT_EQ(buffer_[payload_start_], hdr_info_->tl0PicIdx); |
+ EXPECT_BIT_L_EQ(buffer[1], 1); |
+ EXPECT_EQ(buffer[payload_start_], hdr_info_->tl0PicIdx); |
++payload_start_; |
} else { |
- EXPECT_BIT_L_EQ(buffer_[1], 0); |
+ EXPECT_BIT_L_EQ(buffer[1], 0); |
} |
} |
@@ -195,36 +192,39 @@ void RtpFormatVp8TestHelper::CheckTl0PicIdx() { |
// field are all set in accordance with the information in |
// hdr_info_->temporalIdx and hdr_info_->keyIdx, respectively. |
void RtpFormatVp8TestHelper::CheckTIDAndKeyIdx() { |
+ auto buffer = packet_.payload(); |
if (hdr_info_->temporalIdx == kNoTemporalIdx && |
hdr_info_->keyIdx == kNoKeyIdx) { |
- EXPECT_BIT_T_EQ(buffer_[1], 0); |
- EXPECT_BIT_K_EQ(buffer_[1], 0); |
+ EXPECT_BIT_T_EQ(buffer[1], 0); |
+ EXPECT_BIT_K_EQ(buffer[1], 0); |
return; |
} |
if (hdr_info_->temporalIdx != kNoTemporalIdx) { |
- EXPECT_BIT_T_EQ(buffer_[1], 1); |
- EXPECT_TID_EQ(buffer_[payload_start_], hdr_info_->temporalIdx); |
- EXPECT_BIT_Y_EQ(buffer_[payload_start_], hdr_info_->layerSync ? 1 : 0); |
+ EXPECT_BIT_T_EQ(buffer[1], 1); |
+ EXPECT_TID_EQ(buffer[payload_start_], hdr_info_->temporalIdx); |
+ EXPECT_BIT_Y_EQ(buffer[payload_start_], hdr_info_->layerSync ? 1 : 0); |
} else { |
- EXPECT_BIT_T_EQ(buffer_[1], 0); |
- EXPECT_TID_EQ(buffer_[payload_start_], 0); |
- EXPECT_BIT_Y_EQ(buffer_[payload_start_], 0); |
+ EXPECT_BIT_T_EQ(buffer[1], 0); |
+ EXPECT_TID_EQ(buffer[payload_start_], 0); |
+ EXPECT_BIT_Y_EQ(buffer[payload_start_], 0); |
} |
if (hdr_info_->keyIdx != kNoKeyIdx) { |
- EXPECT_BIT_K_EQ(buffer_[1], 1); |
- EXPECT_KEYIDX_EQ(buffer_[payload_start_], hdr_info_->keyIdx); |
+ EXPECT_BIT_K_EQ(buffer[1], 1); |
+ EXPECT_KEYIDX_EQ(buffer[payload_start_], hdr_info_->keyIdx); |
} else { |
- EXPECT_BIT_K_EQ(buffer_[1], 0); |
- EXPECT_KEYIDX_EQ(buffer_[payload_start_], 0); |
+ EXPECT_BIT_K_EQ(buffer[1], 0); |
+ EXPECT_KEYIDX_EQ(buffer[payload_start_], 0); |
} |
++payload_start_; |
} |
// Verify that the payload (i.e., after the headers) of the packet stored in |
// buffer_ is identical to the expected (as found in data_ptr_). |
-void RtpFormatVp8TestHelper::CheckPayload(size_t payload_end) { |
+void RtpFormatVp8TestHelper::CheckPayload() { |
+ auto buffer = packet_.payload(); |
+ size_t payload_end = buffer.size(); |
for (size_t i = payload_start_; i < payload_end; ++i, ++data_ptr_) |
- EXPECT_EQ(buffer_[i], *data_ptr_); |
+ EXPECT_EQ(buffer[i], *data_ptr_); |
} |
// Verify that the input variable "last" agrees with the position of data_ptr_. |
@@ -236,13 +236,12 @@ void RtpFormatVp8TestHelper::CheckLast(bool last) const { |
// Verify the contents of a packet. Check the length versus expected_bytes, |
// the header, payload, and "last" flag. |
-void RtpFormatVp8TestHelper::CheckPacket(size_t send_bytes, |
- size_t expect_bytes, |
+void RtpFormatVp8TestHelper::CheckPacket(size_t expect_bytes, |
bool last, |
bool frag_start) { |
- EXPECT_EQ(expect_bytes, send_bytes); |
+ EXPECT_EQ(expect_bytes, packet_.payload_size()); |
CheckHeader(frag_start); |
- CheckPayload(send_bytes); |
+ CheckPayload(); |
CheckLast(last); |
} |