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

Commit 44581ff4 authored by Yin-Chia Yeh's avatar Yin-Chia Yeh
Browse files

Camera: add RAW_PRIVATE format

Also add necessary plumbing for RAW_PRIVATE to work for ImageReader.

Bug: 25596619
Change-Id: Ic90f3f44264ac46fae1fafbc27ac64b5319f0970
parent 718e16ad
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11545,6 +11545,7 @@ package android.graphics {
    field public static final int PRIVATE = 34; // 0x22
    field public static final int RAW10 = 37; // 0x25
    field public static final int RAW12 = 38; // 0x26
    field public static final int RAW_PRIVATE = 36; // 0x24
    field public static final int RAW_SENSOR = 32; // 0x20
    field public static final int RGB_565 = 4; // 0x4
    field public static final int UNKNOWN = 0; // 0x0
+1 −0
Original line number Diff line number Diff line
@@ -11888,6 +11888,7 @@ package android.graphics {
    field public static final int PRIVATE = 34; // 0x22
    field public static final int RAW10 = 37; // 0x25
    field public static final int RAW12 = 38; // 0x26
    field public static final int RAW_PRIVATE = 36; // 0x24
    field public static final int RAW_SENSOR = 32; // 0x20
    field public static final int RGB_565 = 4; // 0x4
    field public static final int UNKNOWN = 0; // 0x0
+1 −0
Original line number Diff line number Diff line
@@ -11545,6 +11545,7 @@ package android.graphics {
    field public static final int PRIVATE = 34; // 0x22
    field public static final int RAW10 = 37; // 0x25
    field public static final int RAW12 = 38; // 0x26
    field public static final int RAW_PRIVATE = 36; // 0x24
    field public static final int RAW_SENSOR = 32; // 0x20
    field public static final int RGB_565 = 4; // 0x4
    field public static final int UNKNOWN = 0; // 0x0
+4 −6
Original line number Diff line number Diff line
@@ -834,6 +834,7 @@ public final class StreamConfigurationMap {
     * <ul>
     * <li>{@link ImageFormat#JPEG JPEG}
     * <li>{@link ImageFormat#RAW_SENSOR RAW16}
     * <li>{@link ImageFormat#RAW_PRIVATE RAW_PRIVATE}
     * </ul>
     * </p>
     *
@@ -1328,10 +1329,8 @@ public final class StreamConfigurationMap {
        SparseIntArray map = getFormatsMap(output);
        for (int j = 0; j < map.size(); j++) {
            int format = map.keyAt(j);
            if (format != HAL_PIXEL_FORMAT_RAW_OPAQUE) {
            formats[i++] = imageFormatToPublic(format);
        }
        }
        if (output) {
            for (int j = 0; j < mDepthOutputFormats.size(); j++) {
                formats[i++] = depthFormatToPublic(mDepthOutputFormats.keyAt(j));
@@ -1392,9 +1391,6 @@ public final class StreamConfigurationMap {
    private int getPublicFormatCount(boolean output) {
        SparseIntArray formatsMap = getFormatsMap(output);
        int size = formatsMap.size();
        if (formatsMap.indexOfKey(HAL_PIXEL_FORMAT_RAW_OPAQUE) >= 0) {
            size -= 1;
        }
        if (output) {
            size += mDepthOutputFormats.size();
        }
@@ -1603,6 +1599,8 @@ public final class StreamConfigurationMap {
                return "Y16";
            case ImageFormat.RAW_SENSOR:
                return "RAW_SENSOR";
            case ImageFormat.RAW_PRIVATE:
                return "RAW_PRIVATE";
            case ImageFormat.RAW10:
                return "RAW10";
            case ImageFormat.DEPTH16:
+6 −1
Original line number Diff line number Diff line
@@ -149,7 +149,9 @@ android_dataspace android_view_Surface_mapPublicFormatToHalDataspace(
        case PublicFormat::DEPTH16:
            return HAL_DATASPACE_DEPTH;
        case PublicFormat::RAW_SENSOR:
        case PublicFormat::RAW_PRIVATE:
        case PublicFormat::RAW10:
        case PublicFormat::RAW12:
            return HAL_DATASPACE_ARBITRARY;
        case PublicFormat::YUV_420_888:
        case PublicFormat::NV21:
@@ -170,6 +172,7 @@ PublicFormat android_view_Surface_mapHalFormatDataspaceToPublicFormat(
        case HAL_PIXEL_FORMAT_RGB_565:
        case HAL_PIXEL_FORMAT_Y8:
        case HAL_PIXEL_FORMAT_RAW10:
        case HAL_PIXEL_FORMAT_RAW12:
        case HAL_PIXEL_FORMAT_YCbCr_420_888:
        case HAL_PIXEL_FORMAT_YV12:
            // Enums overlap in both name and value
@@ -177,6 +180,9 @@ PublicFormat android_view_Surface_mapHalFormatDataspaceToPublicFormat(
        case HAL_PIXEL_FORMAT_RAW16:
            // Name differs, though value is the same
            return PublicFormat::RAW_SENSOR;
        case HAL_PIXEL_FORMAT_RAW_OPAQUE:
            // Name differs, though value is the same
            return PublicFormat::RAW_PRIVATE;
        case HAL_PIXEL_FORMAT_YCbCr_422_SP:
            // Name differs, though the value is the same
            return PublicFormat::NV16;
@@ -212,7 +218,6 @@ PublicFormat android_view_Surface_mapHalFormatDataspaceToPublicFormat(
            }
            break;
        case HAL_PIXEL_FORMAT_BGRA_8888:
        case HAL_PIXEL_FORMAT_RAW_OPAQUE:
            // Not defined in public API
            return PublicFormat::UNKNOWN;

Loading