diff options
| author | 2020-01-09 22:16:30 +0000 | |
|---|---|---|
| committer | 2020-01-09 22:16:30 +0000 | |
| commit | 815bb3d44a27cbb6d8d113bd070d6748cf7dc181 (patch) | |
| tree | eb0bd6330315933cfec5a512f43b0e5b7c8125a0 | |
| parent | 97ee9007fb0942b2e62665d3a796b6e1c9ef3f35 (diff) | |
| parent | 91a2b3d80488ea105cf2ca76375f54791ef701e0 (diff) | |
Merge "Extend ADataspace."
| -rw-r--r-- | libs/nativewindow/ANativeWindow.cpp | 5 | ||||
| -rw-r--r-- | libs/nativewindow/include/android/data_space.h | 50 | ||||
| -rw-r--r-- | services/surfaceflinger/tests/Android.bp | 6 | ||||
| -rw-r--r-- | services/surfaceflinger/tests/CommonTypes_test.cpp | 46 |
4 files changed, 106 insertions, 1 deletions
diff --git a/libs/nativewindow/ANativeWindow.cpp b/libs/nativewindow/ANativeWindow.cpp index 0ba01f4da4..842af18c8c 100644 --- a/libs/nativewindow/ANativeWindow.cpp +++ b/libs/nativewindow/ANativeWindow.cpp @@ -138,6 +138,11 @@ int32_t ANativeWindow_setBuffersDataSpace(ANativeWindow* window, int32_t dataSpa static_assert(static_cast<int>(ADATASPACE_SCRGB) == static_cast<int>(HAL_DATASPACE_V0_SCRGB)); static_assert(static_cast<int>(ADATASPACE_DISPLAY_P3) == static_cast<int>(HAL_DATASPACE_DISPLAY_P3)); static_assert(static_cast<int>(ADATASPACE_BT2020_PQ) == static_cast<int>(HAL_DATASPACE_BT2020_PQ)); + static_assert(static_cast<int>(ADATASPACE_ADOBE_RGB) == static_cast<int>(HAL_DATASPACE_ADOBE_RGB)); + static_assert(static_cast<int>(ADATASPACE_BT2020) == static_cast<int>(HAL_DATASPACE_BT2020)); + static_assert(static_cast<int>(ADATASPACE_BT709) == static_cast<int>(HAL_DATASPACE_V0_BT709)); + static_assert(static_cast<int>(ADATASPACE_DCI_P3) == static_cast<int>(HAL_DATASPACE_DCI_P3)); + static_assert(static_cast<int>(ADATASPACE_SRGB_LINEAR) == static_cast<int>(HAL_DATASPACE_V0_SRGB_LINEAR)); if (!window || !query(window, NATIVE_WINDOW_IS_VALID) || !isDataSpaceValid(window, dataSpace)) { diff --git a/libs/nativewindow/include/android/data_space.h b/libs/nativewindow/include/android/data_space.h index 2899bcf1f7..e759513a63 100644 --- a/libs/nativewindow/include/android/data_space.h +++ b/libs/nativewindow/include/android/data_space.h @@ -101,6 +101,56 @@ enum ADataSpace { * Use full range, SMPTE 2084 (PQ) transfer and BT2020 standard */ ADATASPACE_BT2020_PQ = 163971072, // STANDARD_BT2020 | TRANSFER_ST2084 | RANGE_FULL + + /** + * Adobe RGB + * + * Use full range, gamma 2.2 transfer and Adobe RGB primaries + * Note: Application is responsible for gamma encoding the data as + * a 2.2 gamma encoding is not supported in HW. + */ + ADATASPACE_ADOBE_RGB = 151715840, // STANDARD_ADOBE_RGB | TRANSFER_GAMMA2_2 | RANGE_FULL + + /** + * ITU-R Recommendation 2020 (BT.2020) + * + * Ultra High-definition television + * + * Use full range, BT.709 transfer and BT2020 standard + */ + ADATASPACE_BT2020 = 147193856, // STANDARD_BT2020 | TRANSFER_SMPTE_170M | RANGE_FULL + + /** + * ITU-R Recommendation 709 (BT.709) + * + * High-definition television + * + * Use limited range, BT.709 transfer and BT.709 standard. + */ + ADATASPACE_BT709 = 281083904, // STANDARD_BT709 | TRANSFER_SMPTE_170M | RANGE_LIMITED + + /** + * SMPTE EG 432-1 and SMPTE RP 431-2. + * + * Digital Cinema DCI-P3 + * + * Use full range, gamma 2.6 transfer and D65 DCI-P3 standard + * Note: Application is responsible for gamma encoding the data as + * a 2.6 gamma encoding is not supported in HW. + */ + ADATASPACE_DCI_P3 = 155844608, // STANDARD_DCI_P3 | TRANSFER_GAMMA2_6 | RANGE_FULL + + /** + * sRGB linear encoding: + * + * The red, green, and blue components are stored in sRGB space, but + * are linear, not gamma-encoded. + * The RGB primaries and the white point are the same as BT.709. + * + * The values are encoded using the full range ([0,255] for 8-bit) for all + * components. + */ + ADATASPACE_SRGB_LINEAR = 138477568, // STANDARD_BT709 | TRANSFER_LINEAR | RANGE_FULL }; __END_DECLS diff --git a/services/surfaceflinger/tests/Android.bp b/services/surfaceflinger/tests/Android.bp index a4d9ff3539..0403237371 100644 --- a/services/surfaceflinger/tests/Android.bp +++ b/services/surfaceflinger/tests/Android.bp @@ -53,11 +53,15 @@ cc_test { "libgui", "liblayers_proto", "liblog", + "libnativewindow", "libprotobuf-cpp-full", "libtimestats_proto", "libui", "libutils", - ] + ], + header_libs: [ + "libnativewindow_headers", + ], } cc_defaults { diff --git a/services/surfaceflinger/tests/CommonTypes_test.cpp b/services/surfaceflinger/tests/CommonTypes_test.cpp index ab4af09fac..25b4615239 100644 --- a/services/surfaceflinger/tests/CommonTypes_test.cpp +++ b/services/surfaceflinger/tests/CommonTypes_test.cpp @@ -16,6 +16,7 @@ #include <aidl/android/hardware/graphics/common/BlendMode.h> #include <aidl/android/hardware/graphics/common/Dataspace.h> +#include <android/data_space.h> #include <android/hardware/graphics/common/1.2/types.h> #include <android/hardware/graphics/composer/2.1/IComposerClient.h> @@ -34,6 +35,51 @@ static_assert(static_cast<uint32_t>(AidlBlendMode::PREMULTIPLIED) == static_assert(static_cast<uint32_t>(AidlBlendMode::COVERAGE) == static_cast<uint32_t>(HidlBlendMode::COVERAGE)); +static_assert(static_cast<uint32_t>(ADATASPACE_UNKNOWN) == + static_cast<uint32_t>(AidlDataspace::UNKNOWN)); +static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB_LINEAR) == + static_cast<uint32_t>(AidlDataspace::SCRGB_LINEAR)); +static_assert(static_cast<uint32_t>(ADATASPACE_SRGB) == static_cast<uint32_t>(AidlDataspace::SRGB)); +static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB) == + static_cast<uint32_t>(AidlDataspace::SCRGB)); +static_assert(static_cast<uint32_t>(ADATASPACE_DISPLAY_P3) == + static_cast<uint32_t>(AidlDataspace::DISPLAY_P3)); +static_assert(static_cast<uint32_t>(ADATASPACE_BT2020_PQ) == + static_cast<uint32_t>(AidlDataspace::BT2020_PQ)); +static_assert(static_cast<uint32_t>(ADATASPACE_ADOBE_RGB) == + static_cast<uint32_t>(AidlDataspace::ADOBE_RGB)); +static_assert(static_cast<uint32_t>(ADATASPACE_BT2020) == + static_cast<uint32_t>(AidlDataspace::BT2020)); +static_assert(static_cast<uint32_t>(ADATASPACE_BT709) == + static_cast<uint32_t>(AidlDataspace::BT709)); +static_assert(static_cast<uint32_t>(ADATASPACE_DCI_P3) == + static_cast<uint32_t>(AidlDataspace::DCI_P3)); +static_assert(static_cast<uint32_t>(ADATASPACE_SRGB_LINEAR) == + static_cast<uint32_t>(AidlDataspace::SRGB_LINEAR)); + +static_assert(static_cast<uint32_t>(ADATASPACE_UNKNOWN) == + static_cast<uint32_t>(HidlDataspace::UNKNOWN)); +static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB_LINEAR) == + static_cast<uint32_t>(HidlDataspace::V0_SCRGB_LINEAR)); +static_assert(static_cast<uint32_t>(ADATASPACE_SRGB) == + static_cast<uint32_t>(HidlDataspace::V0_SRGB)); +static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB) == + static_cast<uint32_t>(HidlDataspace::V0_SCRGB)); +static_assert(static_cast<uint32_t>(ADATASPACE_DISPLAY_P3) == + static_cast<uint32_t>(HidlDataspace::DISPLAY_P3)); +static_assert(static_cast<uint32_t>(ADATASPACE_BT2020_PQ) == + static_cast<uint32_t>(HidlDataspace::BT2020_PQ)); +static_assert(static_cast<uint32_t>(ADATASPACE_ADOBE_RGB) == + static_cast<uint32_t>(HidlDataspace::ADOBE_RGB)); +static_assert(static_cast<uint32_t>(ADATASPACE_BT2020) == + static_cast<uint32_t>(HidlDataspace::BT2020)); +static_assert(static_cast<uint32_t>(ADATASPACE_BT709) == + static_cast<uint32_t>(HidlDataspace::V0_BT709)); +static_assert(static_cast<uint32_t>(ADATASPACE_DCI_P3) == + static_cast<uint32_t>(HidlDataspace::DCI_P3)); +static_assert(static_cast<uint32_t>(ADATASPACE_SRGB_LINEAR) == + static_cast<uint32_t>(HidlDataspace::V0_SRGB_LINEAR)); + static_assert(static_cast<uint32_t>(AidlDataspace::UNKNOWN) == static_cast<uint32_t>(HidlDataspace::UNKNOWN)); static_assert(static_cast<uint32_t>(AidlDataspace::ARBITRARY) == |