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

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: Comment 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..2a2331b646d89d5227ce8ff2dd5e995b45971166 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,53 @@ 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 doge[] =
+ " Y. _ "
+ " YiL .```. "
+ " Yii; .; .;;`. "
+ " YY;ii._ .;`.;;;; : "
+ " iiYYYYYYiiiii;;;;i` ;;::;;;; "
+ " _.;YYYYYYiiiiiiYYYii .;;. ;;; "
+ " .YYYYYYYYYYiiYYYYYYYYYYYYii;` ;;;; "
+ " .YYYYYYY$$YYiiYY$$$$iiiYYYYYY;.ii;`.. "
+ " :YYY$!. TYiiYY$$$$$YYYYYYYiiYYYYiYYii. "
+ " Y$MM$: :YYYYYY$!'``'4YYYYYiiiYYYYiiYY. "
+ " `. :MM$$b.,dYY$$Yii' :' :YYYYllYiiYYYiYY "
+ "_.._ :`4MM$!YYYYYYYYYii,.__.diii$$YYYYYYYYYYY "
+ ".,._ $b`P` '4$$$$$iiiiiiii$$$$YY$$$$$$YiY; "
+ " `,.`$: :$$$$$$$$$YYYYY$$$$$$$$$YYiiYYL "
+ " '`;$$. .;PPb$`.,.``T$$YY$$$$YYYYYYiiiYYU: "
+ " ;$P$;;: ;;;;i$y$'!Y$$$b;$$$Y$YY$$YYYiiiYYiYY "
+ " $Fi$$ .. ``:iii.`-':YYYYY$$YY$$$$$YYYiiYiYYY "
+ " :Y$$rb ```` `_..;;i;YYY$YY$$$$$$$YYYYYYYiYY: "
+ " :$$$$$i;;iiiiidYYYYYYYYYY$$$$$$YYYYYYYiiYYYY."
+ " `$$$$$$$YYYYYYYYYYYYY$$$$$$YYYYYYYYiiiYYYYYY"
+ " .i!$$$$$$YYYYYYYYY$$$$$$YYY$$YYiiiiiiYYYYYYY"
+ " :YYiii$$$$$$$YYYYYYY$$$$YY$$$$YYiiiiiYYYYYYi'";
stefan-webrtc 2016/11/03 13:04:02 While it's fun, maybe it's not worth spending 10 l
+ uint8_t result[sizeof(doge) + EncodedImage::kBufferPaddingBytesH264];
+
+ VCMPacket packet;
+ packet.seqNum = seq_num;
+ packet.codec = kVideoCodecH264;
+ packet.insertStartCode = true;
+ packet.video_header.codecHeader.H264.packetization_type = kH264SingleNalu;
+ packet.dataPtr = doge;
+ packet.sizeBytes = sizeof(doge);
+ 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(doge));
+ EXPECT_EQ(frames_from_callback_[seq_num]->EncodedImage()._size,
+ sizeof(doge) + EncodedImage::kBufferPaddingBytesH264);
+ EXPECT_TRUE(frames_from_callback_[seq_num]->GetBitstream(result));
+ EXPECT_EQ(memcmp(result, doge, sizeof(doge)), 0);
+}
+
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