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

Unified Diff: media/ffmpeg/ffmpeg_common_unittest.cc

Issue 2497603003: Roll src/third_party/ffmpeg/ 3c7a09882..cdf4accee (3188 commits). (Closed)
Patch Set: Rebase (liberato@'s pipeline_integration_test_base conflicted; using liberato@'s now here) 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
Index: media/ffmpeg/ffmpeg_common_unittest.cc
diff --git a/media/ffmpeg/ffmpeg_common_unittest.cc b/media/ffmpeg/ffmpeg_common_unittest.cc
index 098417ad9a07f70e4ede34cbb9ea542f56952013..bb5c94a8d0c008997fee73500ab6dafbc605a172 100644
--- a/media/ffmpeg/ffmpeg_common_unittest.cc
+++ b/media/ffmpeg/ffmpeg_common_unittest.cc
@@ -42,40 +42,43 @@ void TestConfigConvertExtraData(
EXPECT_TRUE(converter_fn.Run(stream, decoder_config));
// Store orig to let FFmpeg free whatever it allocated.
- AVCodecContext* codec_context = stream->codec;
- uint8_t* orig_extradata = codec_context->extradata;
- int orig_extradata_size = codec_context->extradata_size;
+ AVCodecParameters* codec_parameters = stream->codecpar;
+ uint8_t* orig_extradata = codec_parameters->extradata;
+ int orig_extradata_size = codec_parameters->extradata_size;
// Valid combination: extra_data = NULL && size = 0.
- codec_context->extradata = NULL;
- codec_context->extradata_size = 0;
+ codec_parameters->extradata = NULL;
+ codec_parameters->extradata_size = 0;
EXPECT_TRUE(converter_fn.Run(stream, decoder_config));
- EXPECT_EQ(static_cast<size_t>(codec_context->extradata_size),
+ EXPECT_EQ(static_cast<size_t>(codec_parameters->extradata_size),
decoder_config->extra_data().size());
// Valid combination: extra_data = non-NULL && size > 0.
- codec_context->extradata = &kExtraData[0];
- codec_context->extradata_size = arraysize(kExtraData);
+ codec_parameters->extradata = &kExtraData[0];
+ codec_parameters->extradata_size = arraysize(kExtraData);
EXPECT_TRUE(converter_fn.Run(stream, decoder_config));
- EXPECT_EQ(static_cast<size_t>(codec_context->extradata_size),
+ EXPECT_EQ(static_cast<size_t>(codec_parameters->extradata_size),
decoder_config->extra_data().size());
- EXPECT_EQ(0, memcmp(codec_context->extradata,
- &decoder_config->extra_data()[0],
- decoder_config->extra_data().size()));
-
- // Invalid combination: extra_data = NULL && size != 0.
- codec_context->extradata = NULL;
- codec_context->extradata_size = 10;
- EXPECT_FALSE(converter_fn.Run(stream, decoder_config));
+ EXPECT_EQ(
+ 0, memcmp(codec_parameters->extradata, &decoder_config->extra_data()[0],
+ decoder_config->extra_data().size()));
+
+ // Possible combination: extra_data = NULL && size != 0, but the converter
+ // function considers this valid and having no extra_data, due to behavior of
+ // avcodec_parameters_to_context().
+ codec_parameters->extradata = NULL;
+ codec_parameters->extradata_size = 10;
+ EXPECT_TRUE(converter_fn.Run(stream, decoder_config));
+ EXPECT_EQ(0UL, decoder_config->extra_data().size());
// Invalid combination: extra_data = non-NULL && size = 0.
- codec_context->extradata = &kExtraData[0];
- codec_context->extradata_size = 0;
+ codec_parameters->extradata = &kExtraData[0];
+ codec_parameters->extradata_size = 0;
EXPECT_FALSE(converter_fn.Run(stream, decoder_config));
// Restore orig values for sane cleanup.
- codec_context->extradata = orig_extradata;
- codec_context->extradata_size = orig_extradata_size;
+ codec_parameters->extradata = orig_extradata;
+ codec_parameters->extradata_size = orig_extradata_size;
}
TEST_F(FFmpegCommonTest, AVStreamToDecoderConfig) {
@@ -95,8 +98,8 @@ TEST_F(FFmpegCommonTest, AVStreamToDecoderConfig) {
i < format_context->nb_streams && (!found_audio || !found_video);
++i) {
AVStream* stream = format_context->streams[i];
- AVCodecContext* codec_context = stream->codec;
- AVMediaType codec_type = codec_context->codec_type;
+ AVCodecParameters* codec_parameters = stream->codecpar;
+ AVMediaType codec_type = codec_parameters->codec_type;
if (codec_type == AVMEDIA_TYPE_AUDIO) {
if (found_audio)
@@ -186,7 +189,7 @@ TEST_F(FFmpegCommonTest, VerifyFormatSizes) {
TEST_F(FFmpegCommonTest, UTCDateToTime_Valid) {
base::Time result;
- EXPECT_TRUE(FFmpegUTCDateToTime("2012-11-10 12:34:56", &result));
+ EXPECT_TRUE(FFmpegUTCDateToTime("2012-11-10T12:34:56.987654Z", &result));
base::Time::Exploded exploded;
result.UTCExplode(&exploded);
@@ -198,34 +201,49 @@ TEST_F(FFmpegCommonTest, UTCDateToTime_Valid) {
EXPECT_EQ(12, exploded.hour);
EXPECT_EQ(34, exploded.minute);
EXPECT_EQ(56, exploded.second);
- EXPECT_EQ(0, exploded.millisecond);
+ EXPECT_EQ(987, exploded.millisecond);
+
+ // base::Time exploding operations round fractional milliseconds down, so
+ // verify fractional milliseconds using a base::TimeDelta.
+ base::Time without_fractional_ms;
+ EXPECT_TRUE(base::Time::FromUTCExploded(exploded, &without_fractional_ms));
+ base::TimeDelta delta = result - without_fractional_ms;
+ EXPECT_EQ(654, delta.InMicroseconds());
}
TEST_F(FFmpegCommonTest, UTCDateToTime_Invalid) {
const char* invalid_date_strings[] = {
- "",
- "2012-11-10",
- "12:34:56",
- "-- ::",
- "2012-11-10 12:34:",
- "2012-11-10 12::56",
- "2012-11-10 :34:56",
- "2012-11- 12:34:56",
- "2012--10 12:34:56",
- "-11-10 12:34:56",
- "2012-11 12:34:56",
- "2012-11-10-12 12:34:56",
- "2012-11-10 12:34",
- "2012-11-10 12:34:56:78",
- "ABCD-11-10 12:34:56",
- "2012-EF-10 12:34:56",
- "2012-11-GH 12:34:56",
- "2012-11-10 IJ:34:56",
- "2012-11-10 12:JL:56",
- "2012-11-10 12:34:MN",
- "2012-11-10 12:34:56.123",
- "2012-11-1012:34:56",
- "2012-11-10 12:34:56 UTC",
+ "",
+ "2012-11-10 12:34:56",
+ "2012-11-10 12:34:56.987654Z",
+ "2012-11-10T12:34:56",
+ "2012-11-10T12:34:56.98765Z",
+ "2012-11-10T12:34:56.98765JZ",
+ "2012-11-10T12:34:56.987654Z3",
+ "2012-11-10T12:34:56.987654ZZ",
+ "2012-11-10T12:34:56.987654Z.987654Z",
+ "2012-11-10",
+ "12:34:56",
+ "-- ::",
+ "2012-11-10 12:34:",
+ "2012-11-10 12::56",
+ "2012-11-10 :34:56",
+ "2012-11- 12:34:56",
+ "2012--10 12:34:56",
+ "-11-10 12:34:56",
+ "2012-11 12:34:56",
+ "2012-11-10-12 12:34:56",
+ "2012-11-10 12:34",
+ "2012-11-10 12:34:56:78",
+ "ABCD-11-10 12:34:56",
+ "2012-EF-10 12:34:56",
+ "2012-11-GH 12:34:56",
+ "2012-11-10 IJ:34:56",
+ "2012-11-10 12:JL:56",
+ "2012-11-10 12:34:MN",
+ "2012-11-10 12:34:56.123",
+ "2012-11-1012:34:56",
+ "2012-11-10 12:34:56 UTC",
};
for (size_t i = 0; i < arraysize(invalid_date_strings); ++i) {

Powered by Google App Engine
This is Rietveld 408576698