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

Commit 8d5aea76 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "PixelFormat: Add support for Jpeg/R"

parents 146fac19 42fd1511
Loading
Loading
Loading
Loading
+13 −6
Original line number Original line Diff line number Diff line
@@ -14,14 +14,15 @@
 * limitations under the License.
 * limitations under the License.
 */
 */


#include <ui/GraphicTypes.h> // ui::Dataspace
#include "aidl/android/hardware/graphics/common/Dataspace.h"
#include <ui/PublicFormat.h>
#include <ui/PublicFormat.h>



// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
namespace android {
namespace android {
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------


using ui::Dataspace;
using ::aidl::android::hardware::graphics::common::Dataspace;


int mapPublicFormatToHalFormat(PublicFormat f) {
int mapPublicFormatToHalFormat(PublicFormat f) {
    switch (f) {
    switch (f) {
@@ -29,6 +30,7 @@ int mapPublicFormatToHalFormat(PublicFormat f) {
        case PublicFormat::DEPTH_POINT_CLOUD:
        case PublicFormat::DEPTH_POINT_CLOUD:
        case PublicFormat::DEPTH_JPEG:
        case PublicFormat::DEPTH_JPEG:
        case PublicFormat::HEIC:
        case PublicFormat::HEIC:
        case PublicFormat::JPEG_R:
            return HAL_PIXEL_FORMAT_BLOB;
            return HAL_PIXEL_FORMAT_BLOB;
        case PublicFormat::DEPTH16:
        case PublicFormat::DEPTH16:
            return HAL_PIXEL_FORMAT_Y16;
            return HAL_PIXEL_FORMAT_Y16;
@@ -47,7 +49,7 @@ android_dataspace mapPublicFormatToHalDataspace(PublicFormat f) {
    Dataspace dataspace;
    Dataspace dataspace;
    switch (f) {
    switch (f) {
        case PublicFormat::JPEG:
        case PublicFormat::JPEG:
            dataspace = Dataspace::V0_JFIF;
            dataspace = Dataspace::JFIF;
            break;
            break;
        case PublicFormat::DEPTH_POINT_CLOUD:
        case PublicFormat::DEPTH_POINT_CLOUD:
        case PublicFormat::DEPTH16:
        case PublicFormat::DEPTH16:
@@ -64,7 +66,7 @@ android_dataspace mapPublicFormatToHalDataspace(PublicFormat f) {
        case PublicFormat::YUV_420_888:
        case PublicFormat::YUV_420_888:
        case PublicFormat::NV21:
        case PublicFormat::NV21:
        case PublicFormat::YV12:
        case PublicFormat::YV12:
            dataspace = Dataspace::V0_JFIF;
            dataspace = Dataspace::JFIF;
            break;
            break;
        case PublicFormat::DEPTH_JPEG:
        case PublicFormat::DEPTH_JPEG:
            dataspace = Dataspace::DYNAMIC_DEPTH;
            dataspace = Dataspace::DYNAMIC_DEPTH;
@@ -72,6 +74,9 @@ android_dataspace mapPublicFormatToHalDataspace(PublicFormat f) {
        case PublicFormat::HEIC:
        case PublicFormat::HEIC:
            dataspace = Dataspace::HEIF;
            dataspace = Dataspace::HEIF;
            break;
            break;
        case PublicFormat::JPEG_R:
            dataspace = Dataspace::JPEG_R;
            break;
        default:
        default:
            // Most formats map to UNKNOWN
            // Most formats map to UNKNOWN
            dataspace = Dataspace::UNKNOWN;
            dataspace = Dataspace::UNKNOWN;
@@ -139,13 +144,15 @@ PublicFormat mapHalFormatDataspaceToPublicFormat(int format, android_dataspace d
            switch (ds) {
            switch (ds) {
                case Dataspace::DEPTH:
                case Dataspace::DEPTH:
                    return PublicFormat::DEPTH_POINT_CLOUD;
                    return PublicFormat::DEPTH_POINT_CLOUD;
                case Dataspace::V0_JFIF:
                case Dataspace::JFIF:
                    return PublicFormat::JPEG;
                    return PublicFormat::JPEG;
                case Dataspace::HEIF:
                case Dataspace::HEIF:
                    return PublicFormat::HEIC;
                    return PublicFormat::HEIC;
                default:
                default:
                    if (dataSpace == static_cast<android_dataspace>(HAL_DATASPACE_DYNAMIC_DEPTH)) {
                    if (dataSpace == static_cast<android_dataspace>(HAL_DATASPACE_DYNAMIC_DEPTH)) {
                        return PublicFormat::DEPTH_JPEG;
                        return PublicFormat::DEPTH_JPEG;
                    } else if (dataSpace == static_cast<android_dataspace>(Dataspace::JPEG_R)) {
                        return PublicFormat::JPEG_R;
                    }else {
                    }else {
                        // Assume otherwise-marked blobs are also JPEG
                        // Assume otherwise-marked blobs are also JPEG
                        return PublicFormat::JPEG;
                        return PublicFormat::JPEG;
+1 −0
Original line number Original line Diff line number Diff line
@@ -57,6 +57,7 @@ enum class PublicFormat {
    YCBCR_P010 = 0x36,
    YCBCR_P010 = 0x36,
    DEPTH16 = 0x44363159,
    DEPTH16 = 0x44363159,
    DEPTH_JPEG = 0x69656963,
    DEPTH_JPEG = 0x69656963,
    JPEG_R = 0x1005,
    HEIC = 0x48454946,
    HEIC = 0x48454946,
};
};