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(); |