OLD | NEW |
(Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "media/base/video_color_space.h" |
| 6 #include "base/logging.h" |
| 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 #include "ui/gfx/color_space.h" |
| 9 #include "ui/gfx/color_transform.h" |
| 10 #include "ui/gfx/transform.h" |
| 11 |
| 12 namespace media { |
| 13 |
| 14 class VideoColorSpaceTest : public testing::Test {}; |
| 15 |
| 16 TEST(VideoColorSpaceTest, UnknownVideoToSRGB) { |
| 17 // Invalid video spaces should be BT709. |
| 18 VideoColorSpace invalid_video_color_space = VideoColorSpace( |
| 19 VideoColorSpace::PrimaryID::INVALID, VideoColorSpace::TransferID::INVALID, |
| 20 VideoColorSpace::MatrixID::INVALID, gfx::ColorSpace::RangeID::LIMITED); |
| 21 gfx::ColorSpace unknown = invalid_video_color_space.ToGfxColorSpace(); |
| 22 gfx::ColorSpace sRGB = gfx::ColorSpace::CreateSRGB(); |
| 23 std::unique_ptr<gfx::ColorTransform> t(gfx::ColorTransform::NewColorTransform( |
| 24 unknown, sRGB, gfx::ColorTransform::Intent::INTENT_PERCEPTUAL)); |
| 25 |
| 26 gfx::ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f); |
| 27 t->Transform(&tmp, 1); |
| 28 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f); |
| 29 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f); |
| 30 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f); |
| 31 |
| 32 tmp = gfx::ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f); |
| 33 t->Transform(&tmp, 1); |
| 34 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f); |
| 35 EXPECT_NEAR(tmp.y(), 1.0f, 0.001f); |
| 36 EXPECT_NEAR(tmp.z(), 1.0f, 0.001f); |
| 37 |
| 38 // Test a blue color |
| 39 tmp = gfx::ColorTransform::TriStim(128.0f / 255.0f, 240.0f / 255.0f, 0.5f); |
| 40 t->Transform(&tmp, 1); |
| 41 EXPECT_GT(tmp.z(), tmp.x()); |
| 42 EXPECT_GT(tmp.z(), tmp.y()); |
| 43 } |
| 44 |
| 45 } // namespace media |
OLD | NEW |