| // 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. |
| |
| #ifndef MEDIA_BASE_ANDROID_JNI_HDR_METADATA_H_ |
| #define MEDIA_BASE_ANDROID_JNI_HDR_METADATA_H_ |
| |
| #include "base/android/jni_android.h" |
| #include "base/macros.h" |
| #include "ui/gfx/hdr_metadata.h" |
| |
| namespace media { |
| |
| class VideoColorSpace; |
| |
| class JniHdrMetadata { |
| public: |
| JniHdrMetadata(const VideoColorSpace& color_space, |
| const gfx::HDRMetadata& hdr_metadata); |
| |
| JniHdrMetadata(const JniHdrMetadata&) = delete; |
| JniHdrMetadata& operator=(const JniHdrMetadata&) = delete; |
| |
| ~JniHdrMetadata(); |
| |
| base::android::ScopedJavaLocalRef<jobject> obj() { return jobject_; } |
| |
| // Java HdrMetadata implementation. |
| |
| jint Primaries(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| jint ColorTransfer(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jint Range(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| |
| jfloat PrimaryRChromaticityX(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat PrimaryRChromaticityY(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat PrimaryGChromaticityX(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat PrimaryGChromaticityY(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat PrimaryBChromaticityX(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat PrimaryBChromaticityY(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat WhitePointChromaticityX( |
| JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat WhitePointChromaticityY( |
| JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat MaxColorVolumeLuminance( |
| JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jfloat MinColorVolumeLuminance( |
| JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jint MaxContentLuminance(JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| jint MaxFrameAverageLuminance( |
| JNIEnv* env, |
| const base::android::JavaParamRef<jobject>& obj); |
| |
| private: |
| const VideoColorSpace& color_space_; |
| const gfx::HDRMetadata& hdr_metadata_; |
| base::android::ScopedJavaLocalRef<jobject> jobject_; |
| }; |
| |
| } // namespace media |
| |
| #endif // MEDIA_BASE_ANDROID_JNI_HDR_METADATA_H_ |