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

Unified Diff: media/filters/h264_to_annex_b_bitstream_converter_unittest.cc

Issue 264743016: Change H264AnnexBBitstreamConverter to use AVCDecoderConfigurationRecord. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix build busters. Created 6 years, 8 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: media/filters/h264_to_annex_b_bitstream_converter_unittest.cc
diff --git a/media/filters/h264_to_annex_b_bitstream_converter_unittest.cc b/media/filters/h264_to_annex_b_bitstream_converter_unittest.cc
index a921e6ed6a26affc87ead34bf7aaf3247d18f752..54c5c00d53a6621f0c2783dad0645bf3c0a5d2f6 100644
--- a/media/filters/h264_to_annex_b_bitstream_converter_unittest.cc
+++ b/media/filters/h264_to_annex_b_bitstream_converter_unittest.cc
@@ -4,6 +4,7 @@
#include "base/memory/scoped_ptr.h"
#include "media/filters/h264_to_annex_b_bitstream_converter.h"
+#include "media/formats/mp4/box_definitions.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace media {
@@ -14,6 +15,9 @@ class H264ToAnnexBBitstreamConverterTest : public testing::Test {
virtual ~H264ToAnnexBBitstreamConverterTest() {}
+ protected:
+ mp4::AVCDecoderConfigurationRecord avc_config_;
+
private:
DISALLOW_COPY_AND_ASSIGN(H264ToAnnexBBitstreamConverterTest);
};
@@ -271,17 +275,17 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, Success) {
// Parse the headers.
uint32 config_size = converter.ParseConfigurationAndCalculateSize(
kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4));
+ sizeof(kHeaderDataOkWithFieldLen4),
+ &avc_config_);
EXPECT_GT(config_size, 0U);
// Go on with converting the headers.
output.reset(new uint8[config_size]);
EXPECT_TRUE(output.get() != NULL);
EXPECT_TRUE(converter.ConvertAVCDecoderConfigToByteStream(
- kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4),
- output.get(),
- &config_size));
+ avc_config_,
+ output.get(),
+ &config_size));
// Calculate buffer size for actual NAL unit.
uint32 output_size = converter.CalculateNeededOutputBufferSize(
@@ -299,35 +303,6 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, Success) {
sizeof(kPacketDataOkWithFieldLen4),
output.get() + config_size,
&output_size_left_for_nal_unit));
-
- // Classes allocated in stack are automatically destroyed.
-}
-
-TEST_F(H264ToAnnexBBitstreamConverterTest, FailureNullData) {
- // Initialize converter.
- H264ToAnnexBBitstreamConverter converter;
-
- // Simulate situation where there is no header data.
- uint32 config_size = converter.ParseConfigurationAndCalculateSize(NULL, 0);
- EXPECT_EQ(config_size, 0U);
-
- // Go on with converting the headers with NULL parameters.
- EXPECT_FALSE(converter.ConvertAVCDecoderConfigToByteStream(NULL,
- 0,
- NULL,
- &config_size));
-
- // Simulate NULL parameters for buffer calculation.
- uint32 output_size = converter.CalculateNeededOutputBufferSize(NULL, 0);
- EXPECT_EQ(output_size, 0U);
-
- // Do the conversion for actual NAL unit with NULL paramaters.
- EXPECT_FALSE(converter.ConvertNalUnitStreamToByteStream(NULL,
- 0,
- NULL,
- &output_size));
-
- // Classes allocated in stack are automatically destroyed.
}
TEST_F(H264ToAnnexBBitstreamConverterTest, FailureHeaderBufferOverflow) {
@@ -345,10 +320,9 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureHeaderBufferOverflow) {
// Parse the headers
uint32 config_size = converter.ParseConfigurationAndCalculateSize(
corrupted_header,
- sizeof(corrupted_header));
+ sizeof(corrupted_header),
+ &avc_config_);
EXPECT_EQ(config_size, 0U); // Failure as a result of buffer overflows.
-
- // Classes allocated in stack are automatically destroyed.
}
TEST_F(H264ToAnnexBBitstreamConverterTest, FailureNalUnitBreakage) {
@@ -359,17 +333,17 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureNalUnitBreakage) {
// Parse the headers.
uint32 config_size = converter.ParseConfigurationAndCalculateSize(
kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4));
+ sizeof(kHeaderDataOkWithFieldLen4),
+ &avc_config_);
EXPECT_GT(config_size, 0U);
// Go on with converting the headers.
output.reset(new uint8[config_size]);
EXPECT_TRUE(output.get() != NULL);
EXPECT_TRUE(converter.ConvertAVCDecoderConfigToByteStream(
- kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4),
- output.get(),
- &config_size));
+ avc_config_,
+ output.get(),
+ &config_size));
// Simulate NAL unit broken in middle by writing only some of the data.
uint8 corrupted_nal_unit[sizeof(kPacketDataOkWithFieldLen4) - 100];
@@ -396,8 +370,6 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureNalUnitBreakage) {
output.get() + config_size,
&output_size_left_for_nal_unit));
EXPECT_EQ(output_size_left_for_nal_unit, 0U);
-
- // Classes allocated in stack are automatically destroyed.
}
TEST_F(H264ToAnnexBBitstreamConverterTest, FailureTooSmallOutputBuffer) {
@@ -408,7 +380,8 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureTooSmallOutputBuffer) {
// Parse the headers.
uint32 config_size = converter.ParseConfigurationAndCalculateSize(
kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4));
+ sizeof(kHeaderDataOkWithFieldLen4),
+ &avc_config_);
EXPECT_GT(config_size, 0U);
uint32 real_config_size = config_size;
@@ -417,10 +390,9 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureTooSmallOutputBuffer) {
output.reset(new uint8[config_size]);
EXPECT_TRUE(output.get() != NULL);
EXPECT_FALSE(converter.ConvertAVCDecoderConfigToByteStream(
- kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4),
- output.get(),
- &config_size));
+ avc_config_,
+ output.get(),
+ &config_size));
EXPECT_EQ(config_size, 0U);
// Still too small (but only 1 byte short).
@@ -428,10 +400,9 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureTooSmallOutputBuffer) {
output.reset(new uint8[config_size]);
EXPECT_TRUE(output.get() != NULL);
EXPECT_FALSE(converter.ConvertAVCDecoderConfigToByteStream(
- kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4),
- output.get(),
- &config_size));
+ avc_config_,
+ output.get(),
+ &config_size));
EXPECT_EQ(config_size, 0U);
// Finally, retry with valid buffer.
@@ -439,10 +410,9 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureTooSmallOutputBuffer) {
output.reset(new uint8[config_size]);
EXPECT_TRUE(output.get() != NULL);
EXPECT_TRUE(converter.ConvertAVCDecoderConfigToByteStream(
- kHeaderDataOkWithFieldLen4,
- sizeof(kHeaderDataOkWithFieldLen4),
- output.get(),
- &config_size));
+ avc_config_,
+ output.get(),
+ &config_size));
// Calculate buffer size for actual NAL unit.
uint32 output_size = converter.CalculateNeededOutputBufferSize(
@@ -463,8 +433,6 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, FailureTooSmallOutputBuffer) {
output.get() + config_size,
&output_size_left_for_nal_unit));
EXPECT_EQ(output_size_left_for_nal_unit, 0U);
-
- // Classes allocated in stack are automatically destroyed.
}
// Generated from crash dump in http://crbug.com/234449 using xxd -i [file].
@@ -489,14 +457,14 @@ TEST_F(H264ToAnnexBBitstreamConverterTest, CorruptedPacket) {
// Parse the headers.
uint32 config_size = converter.ParseConfigurationAndCalculateSize(
kCorruptedPacketConfiguration,
- sizeof(kCorruptedPacketConfiguration));
+ sizeof(kCorruptedPacketConfiguration),
+ &avc_config_);
EXPECT_GT(config_size, 0U);
// Go on with converting the headers.
output.reset(new uint8[config_size]);
EXPECT_TRUE(converter.ConvertAVCDecoderConfigToByteStream(
- kCorruptedPacketConfiguration,
- sizeof(kCorruptedPacketConfiguration),
+ avc_config_,
output.get(),
&config_size));

Powered by Google App Engine
This is Rietveld 408576698