Index: ui/gfx/color_space_unittest.cc |
diff --git a/ui/gfx/color_space_unittest.cc b/ui/gfx/color_space_unittest.cc |
index 1c652fa535ab7aea6ccd27934cc111ee4f348964..9e1dc77d0d97bf99a55e1269f084feb46de674c8 100644 |
--- a/ui/gfx/color_space_unittest.cc |
+++ b/ui/gfx/color_space_unittest.cc |
@@ -79,5 +79,50 @@ TEST(ColorSpace, RGBToYUV) { |
} |
} |
+TEST(ColorSpace, VideoFormats) { |
+ int primary_min = 0; |
+ int primary_default = 1; |
+ int primary_max = 12; |
+ |
+ int transfer_min = 0; |
+ int transfer_default = 1; |
+ int transfer_max = 18; |
+ |
+ int matrix_min = 0; |
+ int matrix_default = 1; |
+ int matrix_max = 11; |
+ |
+ for (int i = -10; i < 30; ++i) { |
+ int primary = primary_min + i; |
+ int transfer = transfer_min + i; |
+ int matrix = primary_min + i; |
+ gfx::ColorSpace space = gfx::ColorSpace::CreateVideo( |
+ primary, transfer, matrix, gfx::ColorSpace::RangeID::FULL); |
+ |
+ int out_primary = -1; |
+ int out_transfer = -1; |
+ int out_matrix = -1; |
+ bool full_range = false; |
+ space.GetVideoParameters(&out_primary, &out_transfer, &out_matrix, |
+ &full_range); |
+ if (primary >= primary_min && primary <= primary_max) |
+ EXPECT_EQ(primary, out_primary); |
+ else |
+ EXPECT_EQ(primary_default, out_primary); |
+ |
+ if (transfer >= transfer_min && transfer <= transfer_max) |
+ EXPECT_EQ(transfer, out_transfer); |
+ else |
+ EXPECT_EQ(transfer_default, out_transfer); |
+ |
+ if (matrix >= matrix_min && matrix <= matrix_max) |
+ EXPECT_EQ(matrix, out_matrix); |
+ else |
+ EXPECT_EQ(matrix_default, out_matrix); |
+ |
+ EXPECT_TRUE(full_range); |
+ } |
+} |
+ |
} // namespace |
} // namespace gfx |