| Index: media/base/video_color_space_unittest.cc
|
| diff --git a/media/base/video_color_space_unittest.cc b/media/base/video_color_space_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c49d08bccb6ec971dcf5d1d0c6e23450fee7e62b
|
| --- /dev/null
|
| +++ b/media/base/video_color_space_unittest.cc
|
| @@ -0,0 +1,45 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "media/base/video_color_space.h"
|
| +#include "base/logging.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "ui/gfx/color_space.h"
|
| +#include "ui/gfx/color_transform.h"
|
| +#include "ui/gfx/transform.h"
|
| +
|
| +namespace media {
|
| +
|
| +class VideoColorSpaceTest : public testing::Test {};
|
| +
|
| +TEST(VideoColorSpaceTest, UnknownVideoToSRGB) {
|
| + // Invalid video spaces should be BT709.
|
| + VideoColorSpace invalid_video_color_space = VideoColorSpace(
|
| + VideoColorSpace::PrimaryID::INVALID, VideoColorSpace::TransferID::INVALID,
|
| + VideoColorSpace::MatrixID::INVALID, gfx::ColorSpace::RangeID::LIMITED);
|
| + gfx::ColorSpace unknown = invalid_video_color_space.ToGfxColorSpace();
|
| + gfx::ColorSpace sRGB = gfx::ColorSpace::CreateSRGB();
|
| + std::unique_ptr<gfx::ColorTransform> t(gfx::ColorTransform::NewColorTransform(
|
| + unknown, sRGB, gfx::ColorTransform::Intent::INTENT_PERCEPTUAL));
|
| +
|
| + gfx::ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f);
|
| + t->Transform(&tmp, 1);
|
| + EXPECT_NEAR(tmp.x(), 0.0f, 0.001f);
|
| + EXPECT_NEAR(tmp.y(), 0.0f, 0.001f);
|
| + EXPECT_NEAR(tmp.z(), 0.0f, 0.001f);
|
| +
|
| + tmp = gfx::ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f);
|
| + t->Transform(&tmp, 1);
|
| + EXPECT_NEAR(tmp.x(), 1.0f, 0.001f);
|
| + EXPECT_NEAR(tmp.y(), 1.0f, 0.001f);
|
| + EXPECT_NEAR(tmp.z(), 1.0f, 0.001f);
|
| +
|
| + // Test a blue color
|
| + tmp = gfx::ColorTransform::TriStim(128.0f / 255.0f, 240.0f / 255.0f, 0.5f);
|
| + t->Transform(&tmp, 1);
|
| + EXPECT_GT(tmp.z(), tmp.x());
|
| + EXPECT_GT(tmp.z(), tmp.y());
|
| +}
|
| +
|
| +} // namespace media
|
|
|