Delete redundant members from VCMPacket.
The values are available as part of the RTPVideoHeader member.
Bug: None
Change-Id: I832fffc449929badec3796d7096c9cdc0d43d344
Reviewed-on: https://webrtc-review.googlesource.com/c/123234
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26773}
diff --git a/modules/video_coding/decoding_state_unittest.cc b/modules/video_coding/decoding_state_unittest.cc
index 9dcacd4..6aeeb64 100644
--- a/modules/video_coding/decoding_state_unittest.cc
+++ b/modules/video_coding/decoding_state_unittest.cc
@@ -35,7 +35,7 @@
VCMFrameBuffer frame;
VCMFrameBuffer frame_key;
VCMPacket packet;
- packet.is_first_packet_in_frame = true;
+ packet.video_header.is_first_packet_in_frame = true;
packet.timestamp = 1;
packet.seqNum = 0xffff;
packet.frameType = kVideoFrameDelta;
@@ -57,7 +57,7 @@
frame.Reset();
packet.frameType = kVideoFrameDelta;
// Use pictureId
- packet.is_first_packet_in_frame = false;
+ packet.video_header.is_first_packet_in_frame = false;
vp8_header.pictureId = 0x0002;
EXPECT_LE(0, frame.InsertPacket(packet, 0, frame_data));
EXPECT_FALSE(dec_state.ContinuousFrame(&frame));
@@ -267,7 +267,7 @@
// A key frame is always a base layer.
frame.Reset();
packet.frameType = kVideoFrameKey;
- packet.is_first_packet_in_frame = 1;
+ packet.video_header.is_first_packet_in_frame = true;
packet.timestamp = 5;
packet.seqNum = 5;
vp8_header.tl0PicIdx = 2;
@@ -291,7 +291,7 @@
EXPECT_TRUE(dec_state.full_sync());
frame.Reset();
packet.frameType = kVideoFrameDelta;
- packet.is_first_packet_in_frame = 1;
+ packet.video_header.is_first_packet_in_frame = true;
packet.timestamp = 8;
packet.seqNum = 8;
vp8_header.tl0PicIdx = 4;
@@ -306,7 +306,7 @@
// Insert a non-ref frame - should update sync value.
frame.Reset();
packet.frameType = kVideoFrameDelta;
- packet.is_first_packet_in_frame = 1;
+ packet.video_header.is_first_packet_in_frame = true;
packet.timestamp = 9;
packet.seqNum = 9;
vp8_header.tl0PicIdx = 4;
@@ -326,7 +326,7 @@
frame.Reset();
dec_state.Reset();
packet.frameType = kVideoFrameDelta;
- packet.is_first_packet_in_frame = 1;
+ packet.video_header.is_first_packet_in_frame = true;
packet.markerBit = 1;
packet.timestamp = 0;
packet.seqNum = 0;
@@ -340,7 +340,7 @@
// Layer 2 - 2 packets (insert one, lose one).
frame.Reset();
packet.frameType = kVideoFrameDelta;
- packet.is_first_packet_in_frame = 1;
+ packet.video_header.is_first_packet_in_frame = true;
packet.markerBit = 0;
packet.timestamp = 1;
packet.seqNum = 1;
@@ -353,7 +353,7 @@
// Layer 1
frame.Reset();
packet.frameType = kVideoFrameDelta;
- packet.is_first_packet_in_frame = 1;
+ packet.video_header.is_first_packet_in_frame = true;
packet.markerBit = 1;
packet.timestamp = 2;
packet.seqNum = 3;
@@ -461,7 +461,7 @@
VCMDecodingState dec_state;
VCMFrameBuffer frame;
VCMPacket packet;
- packet.is_first_packet_in_frame = true;
+ packet.video_header.is_first_packet_in_frame = true;
packet.timestamp = 1;
packet.seqNum = 0xffff;
uint8_t data[] = "I need a data pointer for this test!";
@@ -505,7 +505,7 @@
VCMDecodingState dec_state;
VCMFrameBuffer frame;
VCMPacket packet;
- packet.is_first_packet_in_frame = true;
+ packet.video_header.is_first_packet_in_frame = true;
packet.timestamp = 1;
packet.seqNum = 0xffff;
uint8_t data[] = "I need a data pointer for this test!";
@@ -561,7 +561,7 @@
VCMDecodingState dec_state;
VCMFrameBuffer frame;
VCMPacket packet;
- packet.is_first_packet_in_frame = true;
+ packet.video_header.is_first_packet_in_frame = true;
packet.timestamp = 1;
packet.seqNum = 0xffff;
uint8_t data[] = "I need a data pointer for this test!";
diff --git a/modules/video_coding/frame_buffer.cc b/modules/video_coding/frame_buffer.cc
index 70b2030..c4ba820 100644
--- a/modules/video_coding/frame_buffer.cc
+++ b/modules/video_coding/frame_buffer.cc
@@ -93,7 +93,7 @@
SetTimestamp(packet.timestamp);
// We only take the ntp timestamp of the first packet of a frame.
ntp_time_ms_ = packet.ntp_time_ms_;
- _codec = packet.codec;
+ _codec = packet.codec();
if (packet.frameType != kEmptyFrame) {
// first media packet
SetState(kStateIncomplete);
@@ -103,7 +103,7 @@
uint32_t requiredSizeBytes =
size() + packet.sizeBytes +
(packet.insertStartCode ? kH264StartCodeLengthBytes : 0) +
- EncodedImage::GetBufferPaddingBytes(packet.codec);
+ EncodedImage::GetBufferPaddingBytes(packet.codec());
if (requiredSizeBytes >= capacity()) {
const uint8_t* prevBuffer = data();
const uint32_t increments =
@@ -119,9 +119,9 @@
_sessionInfo.UpdateDataPointers(prevBuffer, data());
}
- if (packet.width > 0 && packet.height > 0) {
- _encodedWidth = packet.width;
- _encodedHeight = packet.height;
+ if (packet.width() > 0 && packet.height() > 0) {
+ _encodedWidth = packet.width();
+ _encodedHeight = packet.height();
}
// Don't copy payload specific data for empty packets (e.g padding packets).
@@ -173,7 +173,7 @@
timing_.flags = packet.video_header.video_timing.flags;
}
- if (packet.is_first_packet_in_frame) {
+ if (packet.is_first_packet_in_frame()) {
playout_delay_ = packet.video_header.playout_delay;
}
diff --git a/modules/video_coding/frame_object.cc b/modules/video_coding/frame_object.cc
index c3c9f23..268adfc 100644
--- a/modules/video_coding/frame_object.cc
+++ b/modules/video_coding/frame_object.cc
@@ -39,7 +39,7 @@
// EncodedFrame members
frame_type_ = first_packet->frameType;
- codec_type_ = first_packet->codec;
+ codec_type_ = first_packet->codec();
// TODO(philipel): Remove when encoded image is replaced by EncodedFrame.
// VCMEncodedFrame members
@@ -57,15 +57,15 @@
AllocateBitstreamBuffer(frame_size);
bool bitstream_copied = packet_buffer_->GetBitstream(*this, data());
RTC_DCHECK(bitstream_copied);
- _encodedWidth = first_packet->width;
- _encodedHeight = first_packet->height;
+ _encodedWidth = first_packet->width();
+ _encodedHeight = first_packet->height();
// EncodedFrame members
SetTimestamp(first_packet->timestamp);
VCMPacket* last_packet = packet_buffer_->GetPacket(last_seq_num);
RTC_CHECK(last_packet);
- RTC_CHECK(last_packet->is_last_packet_in_frame);
+ RTC_CHECK(last_packet->is_last_packet_in_frame());
// http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/
// ts_126114v120700p.pdf Section 7.4.5.
// The MTSI client shall add the payload bytes as defined in this clause
diff --git a/modules/video_coding/h264_sps_pps_tracker.cc b/modules/video_coding/h264_sps_pps_tracker.cc
index 1122364..f98ec52 100644
--- a/modules/video_coding/h264_sps_pps_tracker.cc
+++ b/modules/video_coding/h264_sps_pps_tracker.cc
@@ -46,7 +46,7 @@
H264SpsPpsTracker::PacketAction H264SpsPpsTracker::CopyAndFixBitstream(
VCMPacket* packet) {
- RTC_DCHECK(packet->codec == kVideoCodecH264);
+ RTC_DCHECK(packet->codec() == kVideoCodecH264);
const uint8_t* data = packet->dataPtr;
const size_t data_size = packet->sizeBytes;
@@ -62,8 +62,8 @@
const NaluInfo& nalu = h264_header.nalus[i];
switch (nalu.type) {
case H264::NaluType::kSps: {
- sps_data_[nalu.sps_id].width = packet->width;
- sps_data_[nalu.sps_id].height = packet->height;
+ sps_data_[nalu.sps_id].width = packet->width();
+ sps_data_[nalu.sps_id].height = packet->height();
break;
}
case H264::NaluType::kPps: {
@@ -97,8 +97,8 @@
// Since the first packet of every keyframe should have its width and
// height set we set it here in the case of it being supplied out of
// band.
- packet->width = sps->second.width;
- packet->height = sps->second.height;
+ packet->video_header.width = sps->second.width;
+ packet->video_header.height = sps->second.height;
// If the SPS/PPS was supplied out of band then we will have saved
// the actual bitstream in |data|.
diff --git a/modules/video_coding/h264_sps_pps_tracker_unittest.cc b/modules/video_coding/h264_sps_pps_tracker_unittest.cc
index da60cc5..0af99e6 100644
--- a/modules/video_coding/h264_sps_pps_tracker_unittest.cc
+++ b/modules/video_coding/h264_sps_pps_tracker_unittest.cc
@@ -54,7 +54,7 @@
class H264VcmPacket : public VCMPacket {
public:
H264VcmPacket() {
- codec = kVideoCodecH264;
+ video_header.codec = kVideoCodecH264;
video_header.is_first_packet_in_frame = false;
auto& type_header =
video_header.video_type_header.emplace<RTPVideoHeaderH264>();
@@ -303,8 +303,8 @@
EXPECT_EQ(H264SpsPpsTracker::kInsert,
tracker_.CopyAndFixBitstream(&idr_packet));
EXPECT_EQ(3u, idr_packet.h264().nalus_length);
- EXPECT_EQ(320, idr_packet.width);
- EXPECT_EQ(240, idr_packet.height);
+ EXPECT_EQ(320, idr_packet.width());
+ EXPECT_EQ(240, idr_packet.height());
ExpectSpsPpsIdr(idr_packet.h264(), 0, 0);
if (idr_packet.dataPtr != kData) {
@@ -365,8 +365,8 @@
AddPps(&sps_pps_packet, 0, 1, &data);
sps_pps_packet.dataPtr = data.data();
sps_pps_packet.sizeBytes = data.size();
- sps_pps_packet.width = 320;
- sps_pps_packet.height = 240;
+ sps_pps_packet.video_header.width = 320;
+ sps_pps_packet.video_header.height = 240;
EXPECT_EQ(H264SpsPpsTracker::kInsert,
tracker_.CopyAndFixBitstream(&sps_pps_packet));
delete[] sps_pps_packet.dataPtr;
@@ -380,8 +380,8 @@
EXPECT_EQ(H264SpsPpsTracker::kInsert,
tracker_.CopyAndFixBitstream(&idr_packet));
- EXPECT_EQ(320, idr_packet.width);
- EXPECT_EQ(240, idr_packet.height);
+ EXPECT_EQ(320, idr_packet.width());
+ EXPECT_EQ(240, idr_packet.height());
delete[] idr_packet.dataPtr;
}
diff --git a/modules/video_coding/jitter_buffer_unittest.cc b/modules/video_coding/jitter_buffer_unittest.cc
index bc2395e..2651565 100644
--- a/modules/video_coding/jitter_buffer_unittest.cc
+++ b/modules/video_coding/jitter_buffer_unittest.cc
@@ -41,14 +41,14 @@
virtual void SetUp() {
auto& vp9_header =
packet_.video_header.video_type_header.emplace<RTPVideoHeaderVP9>();
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.dataPtr = data_;
packet_.sizeBytes = 1400;
packet_.seqNum = 1234;
packet_.timestamp = 1;
packet_.markerBit = true;
packet_.frameType = kVideoFrameKey;
- packet_.codec = kVideoCodecVP9;
+ packet_.video_header.codec = kVideoCodecVP9;
packet_.video_header.codec = kVideoCodecVP9;
vp9_header.flexible_mode = false;
vp9_header.gof_idx = 0;
@@ -435,7 +435,7 @@
TEST_F(TestBasicJitterBuffer, SinglePacketFrame) {
// Always start with a complete key frame when not allowing errors.
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->timestamp += 123 * 90;
@@ -453,7 +453,7 @@
metrics::Reset();
// Always start with a complete key frame when not allowing errors.
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->timestamp += 123 * 90;
@@ -488,7 +488,7 @@
TEST_F(TestBasicJitterBuffer, DualPacketFrame) {
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
bool retransmitted = false;
@@ -499,7 +499,7 @@
EXPECT_TRUE(frame_out == NULL);
++seq_num_;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -515,7 +515,7 @@
TEST_F(TestBasicJitterBuffer, 100PacketKeyFrame) {
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
bool retransmitted = false;
@@ -531,7 +531,7 @@
int loop = 0;
do {
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
@@ -542,7 +542,7 @@
// Insert last packet.
++seq_num_;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -559,7 +559,7 @@
TEST_F(TestBasicJitterBuffer, 100PacketDeltaFrame) {
// Always start with a complete key frame.
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
bool retransmitted = false;
@@ -583,7 +583,7 @@
// Frame should not be complete.
EXPECT_TRUE(frame_out == NULL);
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
// Insert 98 frames.
int loop = 0;
do {
@@ -598,7 +598,7 @@
// Insert the last packet.
++seq_num_;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -616,7 +616,7 @@
// Insert the "first" packet last.
seq_num_ += 100;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -633,7 +633,7 @@
int loop = 0;
do {
seq_num_--;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
@@ -644,7 +644,7 @@
// Insert the last packet.
seq_num_--;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
@@ -661,7 +661,7 @@
TEST_F(TestBasicJitterBuffer, FrameReordering2Frames2PacketsEach) {
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
bool retransmitted = false;
@@ -673,7 +673,7 @@
EXPECT_TRUE(frame_out == NULL);
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -687,7 +687,7 @@
seq_num_ -= 3;
timestamp_ -= 33 * 90;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -701,7 +701,7 @@
EXPECT_TRUE(frame_out == NULL);
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -721,7 +721,7 @@
TEST_F(TestBasicJitterBuffer, TestReorderingWithPadding) {
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
// Send in an initial good packet/frame (Frame A) to start things off.
@@ -784,7 +784,7 @@
TEST_F(TestBasicJitterBuffer, DuplicatePackets) {
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -810,7 +810,7 @@
seq_num_++;
packet_->seqNum = seq_num_;
packet_->markerBit = true;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
EXPECT_EQ(kCompleteSession,
jitter_buffer_->InsertPacket(*packet_, &retransmitted));
@@ -827,7 +827,7 @@
TEST_F(TestBasicJitterBuffer, DuplicatePreviousDeltaFramePacket) {
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -890,9 +890,8 @@
packet_->video_header.video_type_header.emplace<RTPVideoHeaderVP9>();
bool re = false;
- packet_->codec = kVideoCodecVP9;
packet_->video_header.codec = kVideoCodecVP9;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
vp9_header.flexible_mode = false;
vp9_header.spatial_idx = 0;
@@ -946,9 +945,8 @@
packet_->video_header.video_type_header.emplace<RTPVideoHeaderVP9>();
bool re = false;
- packet_->codec = kVideoCodecVP9;
packet_->video_header.codec = kVideoCodecVP9;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
vp9_header.flexible_mode = false;
vp9_header.spatial_idx = 0;
@@ -976,8 +974,8 @@
packet_->seqNum = 65485;
packet_->timestamp = 3000;
packet_->frameType = kVideoFrameKey;
- packet_->width = 352;
- packet_->height = 288;
+ packet_->video_header.width = 352;
+ packet_->video_header.height = 288;
vp9_header.picture_id = 5;
vp9_header.temporal_idx = 0;
vp9_header.temporal_up_switch = false;
@@ -1025,14 +1023,13 @@
packet_->video_header.video_type_header.emplace<RTPVideoHeaderVP9>();
bool re = false;
- packet_->codec = kVideoCodecVP9;
packet_->video_header.codec = kVideoCodecVP9;
vp9_header.flexible_mode = false;
vp9_header.beginning_of_frame = true;
vp9_header.end_of_frame = true;
vp9_header.tl0_pic_idx = 200;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = 65486;
packet_->timestamp = 6000;
@@ -1043,7 +1040,7 @@
vp9_header.temporal_up_switch = true;
EXPECT_EQ(kIncomplete, jitter_buffer_->InsertPacket(*packet_, &re));
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = 65487;
packet_->frameType = kVideoFrameDelta;
@@ -1053,7 +1050,7 @@
vp9_header.temporal_up_switch = true;
EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = 65485;
packet_->timestamp = 3000;
@@ -1065,12 +1062,12 @@
EXPECT_EQ(kIncomplete, jitter_buffer_->InsertPacket(*packet_, &re));
// Insert first frame with SS data.
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = 65484;
packet_->frameType = kVideoFrameKey;
- packet_->width = 352;
- packet_->height = 288;
+ packet_->video_header.width = 352;
+ packet_->video_header.height = 288;
vp9_header.spatial_idx = 0;
vp9_header.picture_id = 5;
vp9_header.temporal_idx = 0;
@@ -1098,7 +1095,7 @@
TEST_F(TestBasicJitterBuffer, H264InsertStartCode) {
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1114,7 +1111,7 @@
EXPECT_TRUE(frame_out == NULL);
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -1132,9 +1129,8 @@
packet_->video_header.video_type_header.emplace<RTPVideoHeaderH264>();
packet_->timestamp = timestamp_;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
- packet_->codec = kVideoCodecH264;
packet_->video_header.codec = kVideoCodecH264;
h264_header.nalu_type = H264::NaluType::kIdr;
h264_header.nalus[0].type = H264::NaluType::kIdr;
@@ -1152,9 +1148,8 @@
++seq_num_;
packet_->seqNum = seq_num_;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
- packet_->codec = kVideoCodecH264;
packet_->video_header.codec = kVideoCodecH264;
h264_header.nalu_type = H264::NaluType::kStapA;
h264_header.nalus[0].type = H264::NaluType::kSps;
@@ -1171,9 +1166,8 @@
++seq_num_;
packet_->seqNum = seq_num_;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
- packet_->codec = kVideoCodecH264;
packet_->video_header.codec = kVideoCodecH264;
h264_header.nalu_type = H264::NaluType::kIdr;
h264_header.nalus[0].type = H264::NaluType::kIdr;
@@ -1193,9 +1187,8 @@
++seq_num_;
packet_->seqNum = seq_num_;
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
- packet_->codec = kVideoCodecH264;
packet_->video_header.codec = kVideoCodecH264;
h264_header.nalu_type = H264::NaluType::kSlice;
h264_header.nalus[0].type = H264::NaluType::kSlice;
@@ -1213,7 +1206,7 @@
TEST_F(TestBasicJitterBuffer, DeltaFrame100PacketsWithSeqNumWrap) {
seq_num_ = 0xfff0;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1229,7 +1222,7 @@
int loop = 0;
do {
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
@@ -1244,7 +1237,7 @@
} while (loop < 98);
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -1263,7 +1256,7 @@
// Insert "first" packet last seqnum.
seq_num_ = 10;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -1279,7 +1272,7 @@
int loop = 0;
do {
seq_num_--;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
@@ -1295,7 +1288,7 @@
// Insert last packet.
seq_num_--;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
@@ -1316,7 +1309,7 @@
seq_num_ = 2;
timestamp_ = 3000;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->timestamp = timestamp_;
packet_->seqNum = seq_num_;
@@ -1334,7 +1327,7 @@
seq_num_--;
timestamp_ = 2000;
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1351,7 +1344,7 @@
seq_num_ = 2;
timestamp_ = 3000;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1372,7 +1365,7 @@
seq_num_--;
timestamp_ = 0xffffff00;
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1389,7 +1382,7 @@
timestamp_ = 0xffffff00;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1402,7 +1395,7 @@
EXPECT_TRUE(frame_out == NULL);
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -1416,7 +1409,7 @@
seq_num_++;
timestamp_ += 33 * 90;
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1428,7 +1421,7 @@
EXPECT_TRUE(frame_out == NULL);
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -1449,7 +1442,7 @@
timestamp_ = 0xffffff00;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->timestamp = timestamp_;
@@ -1462,7 +1455,7 @@
seq_num_++;
timestamp_ = 2700;
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1492,7 +1485,7 @@
seq_num_ = 2;
timestamp_ = 2700;
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1505,7 +1498,7 @@
seq_num_--;
timestamp_ = 0xffffff00;
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1533,7 +1526,7 @@
// Insert kMaxPacketsInJitterBuffer into frame.
do {
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
@@ -1552,7 +1545,7 @@
// Max number of packets inserted.
// Insert one more packet.
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
@@ -1583,7 +1576,7 @@
do {
timestamp_ += 33 * 90;
seq_num_++;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1605,7 +1598,7 @@
// Insert one more frame.
timestamp_ += 33 * 90;
seq_num_++;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1630,7 +1623,7 @@
for (int i = 0; i < maxSize + 10; i++) {
timestamp_ += 33 * 90;
seq_num_++;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = false;
packet_->seqNum = seq_num_;
packet_->timestamp = timestamp_;
@@ -1646,7 +1639,7 @@
// timestamp.
// Start with a complete key frame - insert and decode.
packet_->frameType = kVideoFrameKey;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
packet_->markerBit = true;
bool retransmitted = false;
@@ -1659,7 +1652,7 @@
packet_->seqNum += 2;
packet_->timestamp += 33 * 90;
packet_->frameType = kVideoFrameDelta;
- packet_->is_first_packet_in_frame = false;
+ packet_->video_header.is_first_packet_in_frame = false;
packet_->markerBit = false;
EXPECT_EQ(kIncomplete,
@@ -1667,7 +1660,7 @@
packet_->seqNum += 2;
packet_->timestamp += 33 * 90;
- packet_->is_first_packet_in_frame = true;
+ packet_->video_header.is_first_packet_in_frame = true;
EXPECT_EQ(kIncomplete,
jitter_buffer_->InsertPacket(*packet_, &retransmitted));
diff --git a/modules/video_coding/packet.cc b/modules/video_coding/packet.cc
index 0ec6317..c69746e 100644
--- a/modules/video_coding/packet.cc
+++ b/modules/video_coding/packet.cc
@@ -25,13 +25,8 @@
markerBit(false),
timesNacked(-1),
frameType(kEmptyFrame),
- codec(kVideoCodecGeneric),
- is_first_packet_in_frame(false),
- is_last_packet_in_frame(false),
completeNALU(kNaluUnset),
insertStartCode(false),
- width(0),
- height(0),
video_header(),
receive_time_ms(0) {
video_header.playout_delay = {-1, -1};
@@ -49,19 +44,13 @@
markerBit(rtpHeader.header.markerBit),
timesNacked(-1),
frameType(rtpHeader.frameType),
- codec(rtpHeader.video_header().codec),
- is_first_packet_in_frame(
- rtpHeader.video_header().is_first_packet_in_frame),
- is_last_packet_in_frame(rtpHeader.video_header().is_last_packet_in_frame),
completeNALU(kNaluIncomplete),
insertStartCode(rtpHeader.video_header().codec == kVideoCodecH264 &&
rtpHeader.video_header().is_first_packet_in_frame),
- width(rtpHeader.video_header().width),
- height(rtpHeader.video_header().height),
video_header(rtpHeader.video_header()) {
- if (is_first_packet_in_frame && markerBit) {
+ if (is_first_packet_in_frame() && markerBit) {
completeNALU = kNaluComplete;
- } else if (is_first_packet_in_frame) {
+ } else if (is_first_packet_in_frame()) {
completeNALU = kNaluStart;
} else if (markerBit) {
completeNALU = kNaluEnd;
@@ -69,13 +58,9 @@
completeNALU = kNaluIncomplete;
}
- if (markerBit) {
- video_header.rotation = rtpHeader.video_header().rotation;
- }
+ // TODO(nisse): Delete?
// Playout decisions are made entirely based on first packet in a frame.
- if (is_first_packet_in_frame) {
- video_header.playout_delay = rtpHeader.video_header().playout_delay;
- } else {
+ if (!is_first_packet_in_frame()) {
video_header.playout_delay = {-1, -1};
}
}
diff --git a/modules/video_coding/packet.h b/modules/video_coding/packet.h
index bc833bb..586e1dc 100644
--- a/modules/video_coding/packet.h
+++ b/modules/video_coding/packet.h
@@ -31,6 +31,17 @@
~VCMPacket();
+ VideoCodecType codec() const { return video_header.codec; }
+ int width() const { return video_header.width; }
+ int height() const { return video_header.height; }
+
+ bool is_first_packet_in_frame() const {
+ return video_header.is_first_packet_in_frame;
+ }
+ bool is_last_packet_in_frame() const {
+ return video_header.is_last_packet_in_frame;
+ }
+
uint8_t payloadType;
uint32_t timestamp;
// NTP time of the capture time in local timebase in milliseconds.
@@ -42,15 +53,10 @@
int timesNacked;
FrameType frameType;
- VideoCodecType codec;
- bool is_first_packet_in_frame;
- bool is_last_packet_in_frame;
VCMNaluCompleteness completeNALU; // Default is kNaluIncomplete.
bool insertStartCode; // True if a start code should be inserted before this
// packet.
- int width;
- int height;
RTPVideoHeader video_header;
absl::optional<RtpGenericFrameDescriptor> generic_descriptor;
diff --git a/modules/video_coding/packet_buffer.cc b/modules/video_coding/packet_buffer.cc
index 7fd3fc7..781a5a2 100644
--- a/modules/video_coding/packet_buffer.cc
+++ b/modules/video_coding/packet_buffer.cc
@@ -113,8 +113,8 @@
}
}
- sequence_buffer_[index].frame_begin = packet->is_first_packet_in_frame;
- sequence_buffer_[index].frame_end = packet->is_last_packet_in_frame;
+ sequence_buffer_[index].frame_begin = packet->is_first_packet_in_frame();
+ sequence_buffer_[index].frame_end = packet->is_last_packet_in_frame();
sequence_buffer_[index].seq_num = packet->seqNum;
sequence_buffer_[index].continuous = false;
sequence_buffer_[index].frame_created = false;
@@ -297,7 +297,7 @@
int64_t frame_timestamp = data_buffer_[start_index].timestamp;
// Identify H.264 keyframes by means of SPS, PPS, and IDR.
- bool is_h264 = data_buffer_[start_index].codec == kVideoCodecH264;
+ bool is_h264 = data_buffer_[start_index].codec() == kVideoCodecH264;
bool has_h264_sps = false;
bool has_h264_pps = false;
bool has_h264_idr = false;
diff --git a/modules/video_coding/rtp_frame_reference_finder_unittest.cc b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
index e6f9519..1f50161 100644
--- a/modules/video_coding/rtp_frame_reference_finder_unittest.cc
+++ b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
@@ -82,13 +82,13 @@
uint16_t seq_num_end,
bool keyframe) {
VCMPacket packet;
- packet.codec = kVideoCodecGeneric;
+ packet.video_header.codec = kVideoCodecGeneric;
packet.seqNum = seq_num_start;
packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
ref_packet_buffer_->InsertPacket(&packet);
packet.seqNum = seq_num_end;
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
ref_packet_buffer_->InsertPacket(&packet);
std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject(
@@ -104,9 +104,10 @@
int32_t tl0 = kNoTl0PicIdx,
bool sync = false) {
VCMPacket packet;
- packet.codec = kVideoCodecVP8;
+ packet.video_header.codec = kVideoCodecVP8;
packet.seqNum = seq_num_start;
- packet.is_last_packet_in_frame = (seq_num_start == seq_num_end);
+ packet.video_header.is_last_packet_in_frame =
+ (seq_num_start == seq_num_end);
packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
auto& vp8_header =
packet.video_header.video_type_header.emplace<RTPVideoHeaderVP8>();
@@ -118,7 +119,7 @@
if (seq_num_start != seq_num_end) {
packet.seqNum = seq_num_end;
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
ref_packet_buffer_->InsertPacket(&packet);
}
@@ -141,9 +142,10 @@
auto& vp9_header =
packet.video_header.video_type_header.emplace<RTPVideoHeaderVP9>();
packet.timestamp = pid;
- packet.codec = kVideoCodecVP9;
+ packet.video_header.codec = kVideoCodecVP9;
packet.seqNum = seq_num_start;
- packet.is_last_packet_in_frame = (seq_num_start == seq_num_end);
+ packet.video_header.is_last_packet_in_frame =
+ (seq_num_start == seq_num_end);
packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
vp9_header.flexible_mode = false;
vp9_header.picture_id = pid % (1 << 15);
@@ -159,7 +161,7 @@
ref_packet_buffer_->InsertPacket(&packet);
if (seq_num_start != seq_num_end) {
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
vp9_header.ss_data_available = false;
packet.seqNum = seq_num_end;
ref_packet_buffer_->InsertPacket(&packet);
@@ -182,9 +184,10 @@
auto& vp9_header =
packet.video_header.video_type_header.emplace<RTPVideoHeaderVP9>();
packet.timestamp = pid;
- packet.codec = kVideoCodecVP9;
+ packet.video_header.codec = kVideoCodecVP9;
packet.seqNum = seq_num_start;
- packet.is_last_packet_in_frame = (seq_num_start == seq_num_end);
+ packet.video_header.is_last_packet_in_frame =
+ (seq_num_start == seq_num_end);
packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
vp9_header.inter_layer_predicted = inter;
vp9_header.flexible_mode = true;
@@ -199,7 +202,7 @@
if (seq_num_start != seq_num_end) {
packet.seqNum = seq_num_end;
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
ref_packet_buffer_->InsertPacket(&packet);
}
diff --git a/modules/video_coding/session_info.cc b/modules/video_coding/session_info.cc
index f77f6d6..cba0409 100644
--- a/modules/video_coding/session_info.cc
+++ b/modules/video_coding/session_info.cc
@@ -354,7 +354,7 @@
VCMSessionInfo::PacketIterator VCMSessionInfo::FindPartitionEnd(
PacketIterator it) const {
- assert((*it).codec == kVideoCodecVP8);
+ assert((*it).codec() == kVideoCodecVP8);
PacketIterator prev_it = it;
const int partition_id =
absl::get<RTPVideoHeaderVP8>((*it).video_header.video_type_header)
@@ -450,9 +450,9 @@
(*rit).sizeBytes > 0)
return -2;
- if (packet.codec == kVideoCodecH264) {
+ if (packet.codec() == kVideoCodecH264) {
frame_type_ = packet.frameType;
- if (packet.is_first_packet_in_frame &&
+ if (packet.is_first_packet_in_frame() &&
(first_packet_seq_num_ == -1 ||
IsNewerSequenceNumber(first_packet_seq_num_, packet.seqNum))) {
first_packet_seq_num_ = packet.seqNum;
@@ -468,7 +468,7 @@
// Placing check here, as to properly account for duplicate packets.
// Check if this is first packet (only valid for some codecs)
// Should only be set for one packet per session.
- if (packet.is_first_packet_in_frame && first_packet_seq_num_ == -1) {
+ if (packet.is_first_packet_in_frame() && first_packet_seq_num_ == -1) {
// The first packet in a frame signals the frame type.
frame_type_ = packet.frameType;
// Store the sequence number for the first packet.
diff --git a/modules/video_coding/session_info_unittest.cc b/modules/video_coding/session_info_unittest.cc
index b544ae3..54173ef 100644
--- a/modules/video_coding/session_info_unittest.cc
+++ b/modules/video_coding/session_info_unittest.cc
@@ -64,7 +64,7 @@
protected:
virtual void SetUp() {
TestSessionInfo::SetUp();
- packet_.codec = kVideoCodecVP8;
+ packet_.video_header.codec = kVideoCodecVP8;
}
bool VerifyNalu(int offset, int packets_expected, int start_value) {
@@ -113,7 +113,7 @@
};
TEST_F(TestSessionInfo, TestSimpleAPIs) {
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.seqNum = 0xFFFE;
packet_.sizeBytes = packet_buffer_size();
packet_.frameType = kVideoFrameKey;
@@ -123,7 +123,7 @@
EXPECT_FALSE(session_.HaveLastPacket());
EXPECT_EQ(kVideoFrameKey, session_.FrameType());
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = true;
packet_.seqNum += 1;
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
@@ -134,7 +134,7 @@
// Insert empty packet which will be the new high sequence number.
// To make things more difficult we will make sure to have a wrap here.
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = true;
packet_.seqNum = 2;
packet_.sizeBytes = 0;
@@ -145,13 +145,13 @@
TEST_F(TestSessionInfo, NormalOperation) {
packet_.seqNum = 0xFFFF;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = false;
FillPacket(0);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
for (int i = 1; i < 9; ++i) {
packet_.seqNum += 1;
FillPacket(i);
@@ -174,19 +174,19 @@
TEST_F(TestSessionInfo, OutOfBoundsPackets1PacketFrame) {
packet_.seqNum = 0x0001;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0x0004;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
packet_.seqNum = 0x0000;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
@@ -194,13 +194,13 @@
TEST_F(TestSessionInfo, SetMarkerBitOnce) {
packet_.seqNum = 0x0005;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
++packet_.seqNum;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
@@ -209,25 +209,25 @@
TEST_F(TestSessionInfo, OutOfBoundsPacketsBase) {
// Allow packets in the range 5-6.
packet_.seqNum = 0x0005;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
// Insert an older packet with a first packet set.
packet_.seqNum = 0x0004;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
packet_.seqNum = 0x0006;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0x0008;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
@@ -235,31 +235,31 @@
TEST_F(TestSessionInfo, OutOfBoundsPacketsWrap) {
packet_.seqNum = 0xFFFE;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0x0004;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0x0002;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
ASSERT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0xFFF0;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
packet_.seqNum = 0x0006;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
@@ -269,45 +269,45 @@
// Insert out of bound regular packets, and then the first and last packet.
// Verify that correct bounds are maintained.
packet_.seqNum = 0x0003;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
// Insert an older packet with a first packet set.
packet_.seqNum = 0x0005;
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0x0004;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
packet_.seqNum = 0x0010;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0x0008;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = true;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
packet_.seqNum = 0x0009;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(-3, session_.InsertPacket(packet_, frame_buffer_, frame_data));
}
TEST_F(TestNalUnits, OnlyReceivedEmptyPacket) {
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluComplete;
packet_.frameType = kEmptyFrame;
packet_.sizeBytes = 0;
@@ -320,7 +320,7 @@
}
TEST_F(TestNalUnits, OneIsolatedNaluLoss) {
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.completeNALU = kNaluComplete;
packet_.seqNum = 0;
packet_.markerBit = false;
@@ -328,7 +328,7 @@
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluComplete;
packet_.seqNum += 2;
packet_.markerBit = true;
@@ -345,7 +345,7 @@
}
TEST_F(TestNalUnits, LossInMiddleOfNalu) {
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.completeNALU = kNaluComplete;
packet_.seqNum = 0;
packet_.markerBit = false;
@@ -353,7 +353,7 @@
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluEnd;
packet_.seqNum += 2;
packet_.markerBit = true;
@@ -368,7 +368,7 @@
}
TEST_F(TestNalUnits, StartAndEndOfLastNalUnitLost) {
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.completeNALU = kNaluComplete;
packet_.seqNum = 0;
packet_.markerBit = false;
@@ -376,7 +376,7 @@
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluIncomplete;
packet_.seqNum += 2;
packet_.markerBit = false;
@@ -392,7 +392,7 @@
TEST_F(TestNalUnits, ReorderWrapNoLoss) {
packet_.seqNum = 0xFFFF;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluIncomplete;
packet_.seqNum += 1;
packet_.markerBit = false;
@@ -400,7 +400,7 @@
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
- packet_.is_first_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
packet_.completeNALU = kNaluComplete;
packet_.seqNum -= 1;
packet_.markerBit = false;
@@ -408,7 +408,7 @@
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluEnd;
packet_.seqNum += 2;
packet_.markerBit = true;
@@ -424,14 +424,14 @@
TEST_F(TestNalUnits, WrapLosses) {
packet_.seqNum = 0xFFFF;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluIncomplete;
packet_.markerBit = false;
FillPacket(1);
EXPECT_EQ(packet_buffer_size(), static_cast<size_t>(session_.InsertPacket(
packet_, frame_buffer_, frame_data)));
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluEnd;
packet_.seqNum += 2;
packet_.markerBit = true;
@@ -446,7 +446,7 @@
TEST_F(TestNalUnits, ReorderWrapLosses) {
packet_.seqNum = 0xFFFF;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluEnd;
packet_.seqNum += 2;
packet_.markerBit = true;
@@ -455,7 +455,7 @@
packet_, frame_buffer_, frame_data)));
packet_.seqNum -= 2;
- packet_.is_first_packet_in_frame = false;
+ packet_.video_header.is_first_packet_in_frame = false;
packet_.completeNALU = kNaluIncomplete;
packet_.markerBit = false;
FillPacket(1);
diff --git a/modules/video_coding/test/stream_generator.cc b/modules/video_coding/test/stream_generator.cc
index 39eebdc..e23aa87 100644
--- a/modules/video_coding/test/stream_generator.cc
+++ b/modules/video_coding/test/stream_generator.cc
@@ -60,11 +60,11 @@
packet.seqNum = sequence_number;
packet.timestamp = timestamp;
packet.frameType = type;
- packet.is_first_packet_in_frame = first_packet;
+ packet.video_header.is_first_packet_in_frame = first_packet;
packet.markerBit = marker_bit;
packet.sizeBytes = size;
packet.dataPtr = packet_buffer_;
- if (packet.is_first_packet_in_frame)
+ if (packet.is_first_packet_in_frame())
packet.completeNALU = kNaluStart;
else if (packet.markerBit)
packet.completeNALU = kNaluEnd;
diff --git a/modules/video_coding/video_packet_buffer_unittest.cc b/modules/video_coding/video_packet_buffer_unittest.cc
index b8d6a6b..72bb990 100644
--- a/modules/video_coding/video_packet_buffer_unittest.cc
+++ b/modules/video_coding/video_packet_buffer_unittest.cc
@@ -62,13 +62,13 @@
uint8_t* data = nullptr, // data pointer
uint32_t timestamp = 123u) { // rtp timestamp
VCMPacket packet;
- packet.codec = kVideoCodecGeneric;
+ packet.video_header.codec = kVideoCodecGeneric;
packet.timestamp = timestamp;
packet.seqNum = seq_num;
packet.frameType =
keyframe == kKeyFrame ? kVideoFrameKey : kVideoFrameDelta;
- packet.is_first_packet_in_frame = first == kFirst;
- packet.is_last_packet_in_frame = last == kLast;
+ packet.video_header.is_first_packet_in_frame = first == kFirst;
+ packet.video_header.is_last_packet_in_frame = last == kLast;
packet.sizeBytes = data_size;
packet.dataPtr = data;
@@ -161,17 +161,17 @@
const uint16_t seq_num = Rand();
VCMPacket packet;
- packet.codec = kVideoCodecGeneric;
+ packet.video_header.codec = kVideoCodecGeneric;
packet.seqNum = seq_num;
packet.frameType = kVideoFrameKey;
- packet.is_first_packet_in_frame = true;
- packet.is_last_packet_in_frame = false;
+ packet.video_header.is_first_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = false;
packet.timesNacked = 0;
packet_buffer_->InsertPacket(&packet);
packet.seqNum++;
- packet.is_first_packet_in_frame = false;
+ packet.video_header.is_first_packet_in_frame = false;
packet.timesNacked = 1;
packet_buffer_->InsertPacket(&packet);
@@ -180,7 +180,7 @@
packet_buffer_->InsertPacket(&packet);
packet.seqNum++;
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
packet.timesNacked = 1;
packet_buffer_->InsertPacket(&packet);
@@ -547,7 +547,7 @@
int data_size = 0, // size of data
uint8_t* data = nullptr) { // data pointer
VCMPacket packet;
- packet.codec = kVideoCodecH264;
+ packet.video_header.codec = kVideoCodecH264;
auto& h264_header =
packet.video_header.video_type_header.emplace<RTPVideoHeaderH264>();
packet.seqNum = seq_num;
@@ -563,8 +563,8 @@
h264_header.nalus_length = 1;
}
}
- packet.is_first_packet_in_frame = first == kFirst;
- packet.is_last_packet_in_frame = last == kLast;
+ packet.video_header.is_first_packet_in_frame = first == kFirst;
+ packet.video_header.is_last_packet_in_frame = last == kLast;
packet.sizeBytes = data_size;
packet.dataPtr = data;
@@ -634,12 +634,12 @@
h264_header.nalus[0].type = H264::NaluType::kIdr;
h264_header.packetization_type = kH264SingleNalu;
packet.seqNum = seq_num;
- packet.codec = kVideoCodecH264;
+ packet.video_header.codec = kVideoCodecH264;
packet.insertStartCode = true;
packet.dataPtr = data;
packet.sizeBytes = sizeof(data_data);
- packet.is_first_packet_in_frame = true;
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_first_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
packet_buffer_->InsertPacket(&packet);
ASSERT_EQ(1UL, frames_from_callback_.size());
@@ -779,18 +779,19 @@
TEST_F(TestPacketBuffer, IncomingCodecChange) {
VCMPacket packet;
- packet.is_first_packet_in_frame = true;
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_first_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
packet.sizeBytes = 0;
packet.dataPtr = nullptr;
- packet.codec = kVideoCodecVP8;
+ packet.video_header.codec = kVideoCodecVP8;
+ packet.video_header.video_type_header.emplace<RTPVideoHeaderVP8>();
packet.timestamp = 1;
packet.seqNum = 1;
packet.frameType = kVideoFrameKey;
EXPECT_TRUE(packet_buffer_->InsertPacket(&packet));
- packet.codec = kVideoCodecH264;
+ packet.video_header.codec = kVideoCodecH264;
auto& h264_header =
packet.video_header.video_type_header.emplace<RTPVideoHeaderH264>();
h264_header.nalus_length = 1;
@@ -798,7 +799,8 @@
packet.seqNum = 3;
EXPECT_TRUE(packet_buffer_->InsertPacket(&packet));
- packet.codec = kVideoCodecVP8;
+ packet.video_header.codec = kVideoCodecVP8;
+ packet.video_header.video_type_header.emplace<RTPVideoHeaderVP8>();
packet.timestamp = 2;
packet.seqNum = 2;
packet.frameType = kVideoFrameDelta;
@@ -810,12 +812,12 @@
TEST_F(TestPacketBuffer, TooManyNalusInPacket) {
VCMPacket packet;
- packet.codec = kVideoCodecH264;
+ packet.video_header.codec = kVideoCodecH264;
packet.timestamp = 1;
packet.seqNum = 1;
packet.frameType = kVideoFrameKey;
- packet.is_first_packet_in_frame = true;
- packet.is_last_packet_in_frame = true;
+ packet.video_header.is_first_packet_in_frame = true;
+ packet.video_header.is_last_packet_in_frame = true;
auto& h264_header =
packet.video_header.video_type_header.emplace<RTPVideoHeaderH264>();
h264_header.nalus_length = kMaxNalusPerPacket;
@@ -895,11 +897,11 @@
explicit TestPacketBufferH264XIsKeyframe(bool sps_pps_idr_is_keyframe)
: TestPacketBufferH264(sps_pps_idr_is_keyframe) {
- packet_.codec = kVideoCodecH264;
+ packet_.video_header.codec = kVideoCodecH264;
packet_.seqNum = kSeqNum;
- packet_.is_first_packet_in_frame = true;
- packet_.is_last_packet_in_frame = true;
+ packet_.video_header.is_first_packet_in_frame = true;
+ packet_.video_header.is_last_packet_in_frame = true;
}
VCMPacket packet_;