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

Unified Diff: webrtc/modules/video_coding/video_packet_buffer_unittest.cc

Issue 2476513004: Allocate extra buffer space in FrameObject in case of H264. (Closed)
Patch Set: Win fix Created 4 years, 1 month 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 | « webrtc/modules/video_coding/frame_object.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/video_coding/video_packet_buffer_unittest.cc
diff --git a/webrtc/modules/video_coding/video_packet_buffer_unittest.cc b/webrtc/modules/video_coding/video_packet_buffer_unittest.cc
index 81534e3007a199de4c8d45e5083b2087d3daaae2..1fe3169259377c86fc4d47af44d8a1cd40f4f213 100644
--- a/webrtc/modules/video_coding/video_packet_buffer_unittest.cc
+++ b/webrtc/modules/video_coding/video_packet_buffer_unittest.cc
@@ -305,7 +305,7 @@ TEST_F(TestPacketBuffer, FramesReordered) {
CheckFrame(seq_num + 3);
}
-TEST_F(TestPacketBuffer, GetBitstreamFromFrame) {
+TEST_F(TestPacketBuffer, GetBitstream) {
// "many bitstream, such data" with null termination.
uint8_t many[] = {0x6d, 0x61, 0x6e, 0x79, 0x20};
uint8_t bitstream[] = {0x62, 0x69, 0x74, 0x73, 0x74, 0x72,
@@ -331,6 +331,35 @@ TEST_F(TestPacketBuffer, GetBitstreamFromFrame) {
EXPECT_EQ(memcmp(result, "many bitstream, such data", sizeof(result)), 0);
}
+TEST_F(TestPacketBuffer, GetBitstreamH264BufferPadding) {
+ uint16_t seq_num = Rand();
+ uint8_t data[] = "some plain old data";
+
+ // EncodedImage::kBufferPaddingBytesH264 is unknown at compile time.
+ uint8_t* result =
+ new uint8_t[sizeof(data) + EncodedImage::kBufferPaddingBytesH264];
+
+ VCMPacket packet;
+ packet.seqNum = seq_num;
+ packet.codec = kVideoCodecH264;
+ packet.insertStartCode = true;
+ packet.video_header.codecHeader.H264.packetization_type = kH264SingleNalu;
+ packet.dataPtr = data;
+ packet.sizeBytes = sizeof(data);
+ packet.isFirstPacket = true;
+ packet.markerBit = true;
+ packet_buffer_->InsertPacket(packet);
+
+ ASSERT_EQ(1UL, frames_from_callback_.size());
+ EXPECT_EQ(frames_from_callback_[seq_num]->EncodedImage()._length,
+ sizeof(data));
+ EXPECT_EQ(frames_from_callback_[seq_num]->EncodedImage()._size,
+ sizeof(data) + EncodedImage::kBufferPaddingBytesH264);
+ EXPECT_TRUE(frames_from_callback_[seq_num]->GetBitstream(result));
+ EXPECT_EQ(memcmp(result, data, sizeof(data)), 0);
+ delete[] result;
+}
+
TEST_F(TestPacketBuffer, FreeSlotsOnFrameDestruction) {
const uint16_t seq_num = Rand();
« no previous file with comments | « webrtc/modules/video_coding/frame_object.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698