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

Commit 9b1bb4be authored by Dichen Zhang's avatar Dichen Zhang Committed by Automerger Merge Worker
Browse files

Merge "JPEG/R refactor: rename jpegrecoverymap library to ultrahdr" into udc-dev am: 237a1061

parents dd2d58e0 237a1061
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -334,7 +334,7 @@ cc_library_shared {
                "libtimeinstate",
                "libtimeinstate",
                "server_configurable_flags",
                "server_configurable_flags",
                "libimage_io",
                "libimage_io",
                "libjpegrecoverymap",
                "libultrahdr",
            ],
            ],
            export_shared_lib_headers: [
            export_shared_lib_headers: [
                // our headers include libnativewindow's public headers
                // our headers include libnativewindow's public headers
@@ -393,7 +393,7 @@ cc_library_shared {
                "libimage_io",
                "libimage_io",
                "libjpegdecoder",
                "libjpegdecoder",
                "libjpegencoder",
                "libjpegencoder",
                "libjpegrecoverymap",
                "libultrahdr",
            ],
            ],
        },
        },
        host_linux: {
        host_linux: {
+1 −1
Original line number Original line Diff line number Diff line
@@ -399,7 +399,7 @@ cc_defaults {
        "libharfbuzz_ng",
        "libharfbuzz_ng",
        "libimage_io",
        "libimage_io",
        "libjpeg",
        "libjpeg",
        "libjpegrecoverymap",
        "libultrahdr",
        "liblog",
        "liblog",
        "libminikin",
        "libminikin",
        "libz",
        "libz",
+16 −16
Original line number Original line Diff line number Diff line
@@ -298,39 +298,39 @@ void Yuv422IToJpegEncoder::configSamplingFactors(jpeg_compress_struct* cinfo) {
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////


using namespace android::jpegrecoverymap;
using namespace android::ultrahdr;


jpegr_color_gamut P010Yuv420ToJpegREncoder::findColorGamut(JNIEnv* env, int aDataSpace) {
ultrahdr_color_gamut P010Yuv420ToJpegREncoder::findColorGamut(JNIEnv* env, int aDataSpace) {
    switch (aDataSpace & ADataSpace::STANDARD_MASK) {
    switch (aDataSpace & ADataSpace::STANDARD_MASK) {
        case ADataSpace::STANDARD_BT709:
        case ADataSpace::STANDARD_BT709:
            return jpegr_color_gamut::JPEGR_COLORGAMUT_BT709;
            return ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709;
        case ADataSpace::STANDARD_DCI_P3:
        case ADataSpace::STANDARD_DCI_P3:
            return jpegr_color_gamut::JPEGR_COLORGAMUT_P3;
            return ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_P3;
        case ADataSpace::STANDARD_BT2020:
        case ADataSpace::STANDARD_BT2020:
            return jpegr_color_gamut::JPEGR_COLORGAMUT_BT2100;
            return ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100;
        default:
        default:
            jclass IllegalArgumentException = env->FindClass("java/lang/IllegalArgumentException");
            jclass IllegalArgumentException = env->FindClass("java/lang/IllegalArgumentException");
            env->ThrowNew(IllegalArgumentException,
            env->ThrowNew(IllegalArgumentException,
                    "The requested color gamut is not supported by JPEG/R.");
                    "The requested color gamut is not supported by JPEG/R.");
    }
    }


    return jpegr_color_gamut::JPEGR_COLORGAMUT_UNSPECIFIED;
    return ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_UNSPECIFIED;
}
}


jpegr_transfer_function P010Yuv420ToJpegREncoder::findHdrTransferFunction(JNIEnv* env,
ultrahdr_transfer_function P010Yuv420ToJpegREncoder::findHdrTransferFunction(JNIEnv* env,
        int aDataSpace) {
        int aDataSpace) {
    switch (aDataSpace & ADataSpace::TRANSFER_MASK) {
    switch (aDataSpace & ADataSpace::TRANSFER_MASK) {
        case ADataSpace::TRANSFER_ST2084:
        case ADataSpace::TRANSFER_ST2084:
            return jpegr_transfer_function::JPEGR_TF_PQ;
            return ultrahdr_transfer_function::ULTRAHDR_TF_PQ;
        case ADataSpace::TRANSFER_HLG:
        case ADataSpace::TRANSFER_HLG:
            return jpegr_transfer_function::JPEGR_TF_HLG;
            return ultrahdr_transfer_function::ULTRAHDR_TF_HLG;
        default:
        default:
            jclass IllegalArgumentException = env->FindClass("java/lang/IllegalArgumentException");
            jclass IllegalArgumentException = env->FindClass("java/lang/IllegalArgumentException");
            env->ThrowNew(IllegalArgumentException,
            env->ThrowNew(IllegalArgumentException,
                    "The requested HDR transfer function is not supported by JPEG/R.");
                    "The requested HDR transfer function is not supported by JPEG/R.");
    }
    }


    return jpegr_transfer_function::JPEGR_TF_UNSPECIFIED;
    return ultrahdr_transfer_function::ULTRAHDR_TF_UNSPECIFIED;
}
}


bool P010Yuv420ToJpegREncoder::encode(JNIEnv* env,
bool P010Yuv420ToJpegREncoder::encode(JNIEnv* env,
@@ -344,13 +344,13 @@ bool P010Yuv420ToJpegREncoder::encode(JNIEnv* env,
        return false;
        return false;
    }
    }


    jpegr_color_gamut hdrColorGamut = findColorGamut(env, hdrColorSpace);
    ultrahdr_color_gamut hdrColorGamut = findColorGamut(env, hdrColorSpace);
    jpegr_color_gamut sdrColorGamut = findColorGamut(env, sdrColorSpace);
    ultrahdr_color_gamut sdrColorGamut = findColorGamut(env, sdrColorSpace);
    jpegr_transfer_function hdrTransferFunction = findHdrTransferFunction(env, hdrColorSpace);
    ultrahdr_transfer_function hdrTransferFunction = findHdrTransferFunction(env, hdrColorSpace);


    if (hdrColorGamut == jpegr_color_gamut::JPEGR_COLORGAMUT_UNSPECIFIED
    if (hdrColorGamut == ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_UNSPECIFIED
            || sdrColorGamut == jpegr_color_gamut::JPEGR_COLORGAMUT_UNSPECIFIED
            || sdrColorGamut == ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_UNSPECIFIED
            || hdrTransferFunction == jpegr_transfer_function::JPEGR_TF_UNSPECIFIED) {
            || hdrTransferFunction == ultrahdr_transfer_function::ULTRAHDR_TF_UNSPECIFIED) {
        return false;
        return false;
    }
    }


+3 −3
Original line number Original line Diff line number Diff line
@@ -2,7 +2,7 @@
#define _ANDROID_GRAPHICS_YUV_TO_JPEG_ENCODER_H_
#define _ANDROID_GRAPHICS_YUV_TO_JPEG_ENCODER_H_


#include <android/data_space.h>
#include <android/data_space.h>
#include <jpegrecoverymap/jpegr.h>
#include <ultrahdr/jpegr.h>


extern "C" {
extern "C" {
    #include "jpeglib.h"
    #include "jpeglib.h"
@@ -103,7 +103,7 @@ public:
     *  @param aDataSpace data space defined in data_space.h.
     *  @param aDataSpace data space defined in data_space.h.
     *  @return color gamut for JPEG/R.
     *  @return color gamut for JPEG/R.
     */
     */
    static android::jpegrecoverymap::jpegr_color_gamut findColorGamut(JNIEnv* env, int aDataSpace);
    static android::ultrahdr::ultrahdr_color_gamut findColorGamut(JNIEnv* env, int aDataSpace);


    /** Map data space (defined in DataSpace.java and data_space.h) to the transfer function
    /** Map data space (defined in DataSpace.java and data_space.h) to the transfer function
     *  used in JPEG/R
     *  used in JPEG/R
@@ -112,7 +112,7 @@ public:
     *  @param aDataSpace data space defined in data_space.h.
     *  @param aDataSpace data space defined in data_space.h.
     *  @return color gamut for JPEG/R.
     *  @return color gamut for JPEG/R.
     */
     */
    static android::jpegrecoverymap::jpegr_transfer_function findHdrTransferFunction(
    static android::ultrahdr::ultrahdr_transfer_function findHdrTransferFunction(
            JNIEnv* env, int aDataSpace);
            JNIEnv* env, int aDataSpace);
};
};