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

Unified Diff: media/base/video_codecs_unittest.cc

Issue 2640113004: Introduce Dolby Vision video codec and Demuxer support (Closed)
Patch Set: fix build break on Android Created 3 years, 10 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
« no previous file with comments | « media/base/video_codecs.cc ('k') | media/base/video_decoder_config.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/video_codecs_unittest.cc
diff --git a/media/base/video_codecs_unittest.cc b/media/base/video_codecs_unittest.cc
index 7a78bc5a9b1251841dacb8398bc8abf827a2771b..15bff075d2ec919a42bef6ca95f39b59777930c2 100644
--- a/media/base/video_codecs_unittest.cc
+++ b/media/base/video_codecs_unittest.cc
@@ -148,4 +148,71 @@ TEST(ParseHEVCCodecIdTest, InvalidHEVCCodecIds) {
}
#endif
+#if BUILDFLAG(ENABLE_DOLBY_VISION_DEMUXING)
+TEST(ParseDolbyVisionCodecIdTest, InvalidDolbyVisionCodecIds) {
+ VideoCodecProfile profile = VIDEO_CODEC_PROFILE_UNKNOWN;
+ uint8_t level_id = 0;
+
+ // Codec dvav/dva1 should only contain profile 0.
+ EXPECT_TRUE(ParseDolbyVisionCodecId("dvav.00.07", &profile, &level_id));
+ EXPECT_EQ(profile, DOLBYVISION_PROFILE0);
+ EXPECT_EQ(level_id, 7);
+ EXPECT_TRUE(ParseDolbyVisionCodecId("dva1.00.07", &profile, &level_id));
+ EXPECT_EQ(profile, DOLBYVISION_PROFILE0);
+ EXPECT_EQ(level_id, 7);
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvav.04.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dva1.04.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvav.05.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dva1.05.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvav.07.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dva1.07.07", &profile, &level_id));
+
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
+ // Codec dvhe/dvh1 should only contain profile 4, 5, and 7.
+ EXPECT_TRUE(ParseDolbyVisionCodecId("dvhe.04.07", &profile, &level_id));
+ EXPECT_EQ(profile, DOLBYVISION_PROFILE4);
+ EXPECT_EQ(level_id, 7);
+ EXPECT_TRUE(ParseDolbyVisionCodecId("dvhe.05.07", &profile, &level_id));
+ EXPECT_EQ(profile, DOLBYVISION_PROFILE5);
+ EXPECT_EQ(level_id, 7);
+ EXPECT_TRUE(ParseDolbyVisionCodecId("dvh1.05.07", &profile, &level_id));
+ EXPECT_EQ(profile, DOLBYVISION_PROFILE5);
+ EXPECT_EQ(level_id, 7);
+ EXPECT_TRUE(ParseDolbyVisionCodecId("dvhe.07.07", &profile, &level_id));
+ EXPECT_EQ(profile, DOLBYVISION_PROFILE7);
+ EXPECT_EQ(level_id, 7);
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.00.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvh1.00.07", &profile, &level_id));
+
+ // Profiles 1, 2, 3 and 6 are deprecated.
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvav.01.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.02.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.03.07", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.06.07", &profile, &level_id));
+
+ // Level should be numbers between 1 and 9.
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.04.00", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.04.10", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.04.20", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.04.99", &profile, &level_id));
+
+ // Valid codec string is <FourCC>.<two digits profile>.<two digits level>.
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe..", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe...", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe....", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5.", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5..", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5...", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5.7", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5.7.", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5.7..", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe.5.7...", &profile, &level_id));
+ EXPECT_FALSE(ParseDolbyVisionCodecId("dvhe..5", &profile, &level_id));
+#endif
+}
+#endif
+
} // namespace media
« no previous file with comments | « media/base/video_codecs.cc ('k') | media/base/video_decoder_config.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698