Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7fabc6f authored by Marissa Ikonomidis's avatar Marissa Ikonomidis Committed by Android (Google) Code Review
Browse files

Merge "Add HDR metadata types to graphics/common"

parents 5f82b989 8e8bbddf
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2019, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.graphics.common;

/**
 * HDR static metadata extension as specified by CTA-861.3.
 *
 * This is an AIDL counterpart of the NDK struct `AHdrMetadata_cta861_3`.
 */
@VintfStability
parcelable Cta861_3 {
    /**
     * Maximum content light level.
     */
    float maxContentLightLevel;
    /**
     * Maximum frame average light level.
     */
    float maxFrameAverageLightLevel;
}
+51 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2019, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.graphics.common;
import android.hardware.graphics.common.XyColor;

/**
 * Mastering display metadata as specified by SMPTE ST 2086.
 *
 * This is an AIDL counterpart of the NDK struct `AHdrMetadata_smpte2086`.
 */
@VintfStability
parcelable Smpte2086 {
    /**
     * CIE XYZ chromaticity for red in the RGB primaries.
     */
    XyColor primaryRed;
    /**
     * CIE XYZ chromaticity for green in the RGB primaries.
     */
    XyColor primaryGreen;
    /**
     * CIE XYZ chromaticity for blue in the RGB primaries.
     */
    XyColor primaryBlue;
    /**
     * CIE XYZ chromaticity for the white point.
     */
    XyColor whitePoint;
    /**
     * Maximum luminance in candelas per square meter.
     */
    float maxLuminance;
    /**
     * Minimum luminance in candelas per square meter.
     */
    float minLuminance;
}
+39 −0
Original line number Diff line number Diff line
@@ -279,4 +279,43 @@ enum StandardMetadataType {
     * 4 bytes written in little endian.
     */
    BLEND_MODE = 17,

    /**
     * Can be used to get or set static HDR metadata specified by SMPTE ST 2086.
     *
     * This metadata is a stable aidl android.hardware.graphics.common.Smpte2086.
     *
     * This is not used in tone mapping until it has been set for the first time.
     *
     * When it is encoded into a byte stream, each float member is represented by 4 bytes written in
     * little endian. The ordering of float values follows the definition of Smpte2086 and XyColor.
     * If this is unset when encoded into a byte stream, the byte stream is empty.
     */
    SMPTE2086 = 18,

    /**
     * Can be used to get or set static HDR metadata specified by CTA 861.3.
     *
     * This metadata is a stable aidl android.hardware.graphics.common.Cta861_3.
     *
     * This is not used in tone mapping until it has been set for the first time.
     *
     * When it is encoded into a byte stream, each float member is represented by 4 bytes written in
     * little endian. The ordering of float values follows the definition of Cta861_3.
     * If this is unset when encoded into a byte stream, the byte stream is empty.
     */
    CTA861_3 = 19,

    /**
     * Can be used to get or set dynamic HDR metadata specified by SMPTE ST 2094-40:2016.
     *
     * This metadata is uint8_t byte array.
     *
     * This is not used in tone mapping until it has been set for the first time.
     *
     * When it is encoded into a byte stream, the length of the HDR metadata byte array is written
     * using 8 bytes in little endian. It is followed by the uint8_t byte array.
     * If this is unset when encoded into a byte stream, the byte stream is empty.
     */
    SMPTE2094_40 = 20,
}
+30 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2019, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.graphics.common;

/**
 * Chromaticity based on 2 parameters.
 *
 * This is an AIDL counterpart of the NDK struct `AColor_xy`.
 *
 * @note This can be used to represent any 2-dimensional chromaticity.
 */
@VintfStability
parcelable XyColor {
    float x;
    float y;
}
+1 −1
Original line number Diff line number Diff line
@@ -478,7 +478,7 @@ interface IMapper {
     * particular Metadata field.
     *
     * The framework may attempt to set the following StandardMetadataType
     * values: DATASPACE, PER_FRAME_METADATA, PER_FRAME_METADATA_BLOB and BLEND_MODE.
     * values: DATASPACE, SMPTE2086, CTA861_3, SMPTE2094_40 and BLEND_MODE.
     * We strongly encourage everyone to support setting as many of those fields as
     * possible. If a device's Composer implementation supports a field, it should be
     * supported here. Over time these metadata fields will be moved out of
Loading