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

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_format_vp8_unittest.cc

Issue 2871173008: Fix packetization logic to leave space for extensions in the last packet (Closed)
Patch Set: Impelemented Danilchap@ comments Created 3 years, 7 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
Index: webrtc/modules/rtp_rtcp/source/rtp_format_vp8_unittest.cc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_unittest.cc
index 0e1a474e35a47b8af7988b77214651b6090546ee..5f96d01c8bc4871477e8795e3de2042f6a29e729 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_vp8_unittest.cc
@@ -107,19 +107,19 @@ TEST_F(RtpPacketizerVp8Test, TestStrictMode) {
hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID.
const size_t kMaxPayloadSize = 13;
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kStrict);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kStrict);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// The expected sizes are obtained by running a verified good implementation.
- const size_t kExpectedSizes[] = {9, 9, 12, 11, 11, 11, 10};
- const int kExpectedPart[] = {0, 0, 1, 2, 2, 2, 2};
- const bool kExpectedFragStart[] = {true, false, true, true,
- false, false, false};
+ const size_t kExpectedSizes[] = {9, 9, 12, 13, 13, 13};
+ const int kExpectedPart[] = {0, 0, 1, 2, 2, 2};
+ const bool kExpectedFragStart[] = {true, false, true, true, false, false};
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -138,9 +138,10 @@ TEST_F(RtpPacketizerVp8Test, DISABLED_TestStrictEqualTightPartitions) {
hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID.
const int kMaxPayloadSize = 14;
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kStrict);
- packetizer.SetPayloadData(helper_->payload_data(), helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kStrict);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// The expected sizes are obtained by running a verified good implementation.
const size_t kExpectedSizes[] = {14, 14, 14};
@@ -149,6 +150,7 @@ TEST_F(RtpPacketizerVp8Test, DISABLED_TestStrictEqualTightPartitions) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart,
kExpectedFragStart, kExpectedNum);
@@ -161,10 +163,10 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateMode) {
hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID.
const size_t kMaxPayloadSize = 25;
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// The expected sizes are obtained by running a verified good implementation.
const size_t kExpectedSizes[] = {23, 23, 23, 23};
@@ -173,6 +175,7 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateMode) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -181,6 +184,81 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateMode) {
kExpectedNum);
}
+TEST_F(RtpPacketizerVp8Test, TestAggregateModeExtentionNotFits) {
+ const size_t kSizeVector[] = {60, 10, 10};
+ const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector);
+ ASSERT_TRUE(Init(kSizeVector, kNumPartitions));
+
+ hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID.
+ const size_t kMaxPayloadSize = 25;
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 5, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
+
+ // The expected sizes are obtained by running a verified good implementation.
+ const size_t kExpectedSizes[] = {23, 23, 23, 13, 13};
+ const int kExpectedPart[] = {0, 0, 0, 1, 2};
+ const bool kExpectedFragStart[] = {true, false, false, true, true};
+ const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
+
+ helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart,
+ kExpectedFragStart, kExpectedNum);
+}
+
+TEST_F(RtpPacketizerVp8Test, TestAggregateModeExtentionFits) {
+ const size_t kSizeVector[] = {60, 10, 10};
+ const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector);
+ ASSERT_TRUE(Init(kSizeVector, kNumPartitions));
+
+ hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID.
+ const size_t kMaxPayloadSize = 25;
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 1, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
+
+ // The expected sizes are obtained by running a verified good implementation.
+ const size_t kExpectedSizes[] = {23, 23, 23, 23};
+ const int kExpectedPart[] = {0, 0, 0, 1};
+ const bool kExpectedFragStart[] = {true, false, false, true};
+ const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
+
+ helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart,
+ kExpectedFragStart, kExpectedNum);
+}
+
+TEST_F(RtpPacketizerVp8Test, TestAggregateModeSmallPartitions) {
+ const size_t kSizeVector[] = {3, 4, 2, 5, 2, 4};
+ const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector);
+ ASSERT_TRUE(Init(kSizeVector, kNumPartitions));
+
+ hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID.
+ const size_t kMaxPayloadSize = 13;
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
+
+ // The expected sizes are obtained by running a verified good implementation.
+ const size_t kExpectedSizes[] = {10, 10, 9};
+ const int kExpectedPart[] = {0, 2, 4};
+ const bool kExpectedFragStart[] = {true, true, true};
+ const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
+
+ helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart,
+ kExpectedFragStart, kExpectedNum);
+}
+
TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions1) {
const size_t kSizeVector[] = {1600, 200, 200, 200, 200, 200, 200, 200, 200};
const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector);
@@ -188,10 +266,10 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions1) {
hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID.
const size_t kMaxPayloadSize = 1000;
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// The expected sizes are obtained by running a verified good implementation.
const size_t kExpectedSizes[] = {803, 803, 803, 803};
@@ -200,6 +278,7 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions1) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -215,10 +294,10 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions2) {
hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID.
const size_t kMaxPayloadSize = 1000;
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// The expected sizes are obtained by running a verified good implementation.
const size_t kExpectedSizes[] = {803, 802, 603, 803, 803, 803};
@@ -227,6 +306,7 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions2) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -242,10 +322,10 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateModeTwoLargePartitions) {
hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID.
const size_t kMaxPayloadSize = 1460;
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// The expected sizes are obtained by running a verified good implementation.
const size_t kExpectedSizes[] = {830, 830, 1137, 1137};
@@ -254,6 +334,7 @@ TEST_F(RtpPacketizerVp8Test, TestAggregateModeTwoLargePartitions) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -270,18 +351,19 @@ TEST_F(RtpPacketizerVp8Test, TestEqualSizeModeFallback) {
hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID
const size_t kMaxPayloadSize = 12; // Small enough to produce 4 packets.
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize);
- packetizer.SetPayloadData(
- helper_->payload_data(), helper_->payload_size(), NULL);
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(), NULL);
// Expecting three full packets, and one with the remainder.
- const size_t kExpectedSizes[] = {12, 11, 12, 11};
+ const size_t kExpectedSizes[] = {12, 12, 11, 11};
const int kExpectedPart[] = {0, 0, 0, 0}; // Always 0 for equal size mode.
// Frag start only true for first packet in equal size mode.
const bool kExpectedFragStart[] = {true, false, false, false};
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->set_sloppy_partitioning(true);
helper_->GetAllPacketsAndCheck(&packetizer,
@@ -291,6 +373,32 @@ TEST_F(RtpPacketizerVp8Test, TestEqualSizeModeFallback) {
kExpectedNum);
}
+TEST_F(RtpPacketizerVp8Test, TestEqualSizeWithExtention) {
+ const size_t kSizeVector[] = {30, 10, 3};
+ const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector);
+ ASSERT_TRUE(Init(kSizeVector, kNumPartitions));
+
+ hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID
+ const size_t kMaxPayloadSize = 15; // Small enough to produce 5 packets.
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 5);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(), NULL);
+
+ // Expecting three full packets, and one with the remainder.
+ const size_t kExpectedSizes[] = {14, 14, 14, 13, 8};
+ const int kExpectedPart[] = {0, 0, 0, 0, 0}; // Always 0 for equal size mode.
+ // Frag start only true for first packet in equal size mode.
+ const bool kExpectedFragStart[] = {true, false, false, false, false};
+ const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
+ CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
+
+ helper_->set_sloppy_partitioning(true);
+ helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart,
+ kExpectedFragStart, kExpectedNum);
+}
+
// Verify that non-reference bit is set. EqualSize mode fallback is expected.
TEST_F(RtpPacketizerVp8Test, TestNonReferenceBit) {
const size_t kSizeVector[] = {10, 10, 10};
@@ -299,9 +407,9 @@ TEST_F(RtpPacketizerVp8Test, TestNonReferenceBit) {
hdr_info_.nonReference = true;
const size_t kMaxPayloadSize = 25; // Small enough to produce two packets.
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize);
- packetizer.SetPayloadData(
- helper_->payload_data(), helper_->payload_size(), NULL);
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(), NULL);
// EqualSize mode => First packet full; other not.
const size_t kExpectedSizes[] = {16, 16};
@@ -311,6 +419,7 @@ TEST_F(RtpPacketizerVp8Test, TestNonReferenceBit) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->set_sloppy_partitioning(true);
helper_->GetAllPacketsAndCheck(&packetizer,
@@ -331,10 +440,10 @@ TEST_F(RtpPacketizerVp8Test, TestTl0PicIdxAndTID) {
hdr_info_.layerSync = true;
// kMaxPayloadSize is only limited by allocated buffer size.
const size_t kMaxPayloadSize = helper_->buffer_size();
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// Expect one single packet of payload_size() + 4 bytes header.
const size_t kExpectedSizes[1] = {helper_->payload_size() + 4};
@@ -343,6 +452,7 @@ TEST_F(RtpPacketizerVp8Test, TestTl0PicIdxAndTID) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -360,10 +470,10 @@ TEST_F(RtpPacketizerVp8Test, TestKeyIdx) {
hdr_info_.keyIdx = 17;
// kMaxPayloadSize is only limited by allocated buffer size.
const size_t kMaxPayloadSize = helper_->buffer_size();
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// Expect one single packet of payload_size() + 3 bytes header.
const size_t kExpectedSizes[1] = {helper_->payload_size() + 3};
@@ -372,6 +482,7 @@ TEST_F(RtpPacketizerVp8Test, TestKeyIdx) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -390,10 +501,10 @@ TEST_F(RtpPacketizerVp8Test, TestTIDAndKeyIdx) {
hdr_info_.keyIdx = 5;
// kMaxPayloadSize is only limited by allocated buffer size.
const size_t kMaxPayloadSize = helper_->buffer_size();
- RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate);
- packetizer.SetPayloadData(helper_->payload_data(),
- helper_->payload_size(),
- helper_->fragmentation());
+ RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate);
+ size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(),
+ helper_->payload_size(),
+ helper_->fragmentation());
// Expect one single packet of payload_size() + 3 bytes header.
const size_t kExpectedSizes[1] = {helper_->payload_size() + 3};
@@ -402,6 +513,7 @@ TEST_F(RtpPacketizerVp8Test, TestTIDAndKeyIdx) {
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart);
CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart);
+ ASSERT_EQ(num_packets, kExpectedNum);
helper_->GetAllPacketsAndCheck(&packetizer,
kExpectedSizes,
@@ -579,11 +691,9 @@ TEST_F(RtpDepacketizerVp8Test, TestWithPacketizer) {
input_header.layerSync = false;
input_header.tl0PicIdx = kNoTl0PicIdx; // Disable.
input_header.keyIdx = 31;
- RtpPacketizerVp8 packetizer(input_header, 20);
- packetizer.SetPayloadData(data, 10, NULL);
- bool last;
- ASSERT_TRUE(packetizer.NextPacket(&packet, &last));
- EXPECT_TRUE(last);
+ RtpPacketizerVp8 packetizer(input_header, 20, 0);
+ EXPECT_EQ(packetizer.SetPayloadData(data, 10, NULL), 1u);
+ ASSERT_TRUE(packetizer.NextPacket(&packet));
EXPECT_TRUE(packet.Marker());
auto rtp_payload = packet.payload();

Powered by Google App Engine
This is Rietveld 408576698