|  | // 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/android/jni_hdr_metadata.h" | 
|  |  | 
|  | #include "media/base/android/media_jni_headers/HdrMetadata_jni.h" | 
|  | #include "media/base/video_color_space.h" | 
|  | #include "ui/gfx/hdr_metadata.h" | 
|  |  | 
|  | namespace media { | 
|  |  | 
|  | JniHdrMetadata::JniHdrMetadata(const VideoColorSpace& color_space, | 
|  | const gfx::HDRMetadata& hdr_metadata) | 
|  | : color_space_(color_space), hdr_metadata_(hdr_metadata) { | 
|  | JNIEnv* env = base::android::AttachCurrentThread(); | 
|  | jobject_ = Java_HdrMetadata_create(env, reinterpret_cast<jlong>(this)); | 
|  | base::android::CheckException(env); | 
|  | } | 
|  |  | 
|  | JniHdrMetadata::~JniHdrMetadata() { | 
|  | JNIEnv* env = base::android::AttachCurrentThread(); | 
|  | Java_HdrMetadata_close(env, obj()); | 
|  | } | 
|  |  | 
|  | jint JniHdrMetadata::Primaries( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return static_cast<int>(color_space_.primaries); | 
|  | } | 
|  |  | 
|  | jint JniHdrMetadata::ColorTransfer( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return static_cast<int>(color_space_.transfer); | 
|  | } | 
|  |  | 
|  | jint JniHdrMetadata::Range(JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return static_cast<int>(color_space_.range); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::PrimaryRChromaticityX( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.primary_r.x(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::PrimaryRChromaticityY( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.primary_r.y(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::PrimaryGChromaticityX( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.primary_g.x(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::PrimaryGChromaticityY( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.primary_g.y(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::PrimaryBChromaticityX( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.primary_b.x(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::PrimaryBChromaticityY( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.primary_b.y(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::WhitePointChromaticityX( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.white_point.x(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::WhitePointChromaticityY( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.white_point.y(); | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::MaxColorVolumeLuminance( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.luminance_max; | 
|  | } | 
|  |  | 
|  | jfloat JniHdrMetadata::MinColorVolumeLuminance( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.color_volume_metadata.luminance_min; | 
|  | } | 
|  |  | 
|  | jint JniHdrMetadata::MaxContentLuminance( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.max_content_light_level; | 
|  | } | 
|  |  | 
|  | jint JniHdrMetadata::MaxFrameAverageLuminance( | 
|  | JNIEnv* env, | 
|  | const base::android::JavaParamRef<jobject>& obj) { | 
|  | return hdr_metadata_.max_frame_average_light_level; | 
|  | } | 
|  |  | 
|  | }  // namespace media |