Loading core/jni/android_view_Surface.cpp +3 −99 Original line number Diff line number Diff line Loading @@ -127,113 +127,17 @@ jobject android_view_Surface_createFromIGraphicBufferProducer(JNIEnv* env, } int android_view_Surface_mapPublicFormatToHalFormat(PublicFormat f) { switch(f) { case PublicFormat::JPEG: case PublicFormat::DEPTH_POINT_CLOUD: return HAL_PIXEL_FORMAT_BLOB; case PublicFormat::DEPTH16: return HAL_PIXEL_FORMAT_Y16; case PublicFormat::RAW_SENSOR: case PublicFormat::RAW_DEPTH: return HAL_PIXEL_FORMAT_RAW16; default: // Most formats map 1:1 return static_cast<int>(f); } return mapPublicFormatToHalFormat(f); } android_dataspace android_view_Surface_mapPublicFormatToHalDataspace( PublicFormat f) { switch(f) { case PublicFormat::JPEG: return HAL_DATASPACE_V0_JFIF; case PublicFormat::DEPTH_POINT_CLOUD: case PublicFormat::DEPTH16: case PublicFormat::RAW_DEPTH: 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: case PublicFormat::YV12: return HAL_DATASPACE_V0_JFIF; default: // Most formats map to UNKNOWN return HAL_DATASPACE_UNKNOWN; } return mapPublicFormatToHalDataspace(f); } PublicFormat android_view_Surface_mapHalFormatDataspaceToPublicFormat( int format, android_dataspace dataSpace) { switch(format) { case HAL_PIXEL_FORMAT_RGBA_8888: case HAL_PIXEL_FORMAT_RGBX_8888: case HAL_PIXEL_FORMAT_RGBA_FP16: case HAL_PIXEL_FORMAT_RGBA_1010102: case HAL_PIXEL_FORMAT_RGB_888: 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 return static_cast<PublicFormat>(format); case HAL_PIXEL_FORMAT_RAW16: switch (dataSpace) { case HAL_DATASPACE_DEPTH: return PublicFormat::RAW_DEPTH; default: 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; case HAL_PIXEL_FORMAT_YCrCb_420_SP: // Name differs, though the value is the same return PublicFormat::NV21; case HAL_PIXEL_FORMAT_YCbCr_422_I: // Name differs, though the value is the same return PublicFormat::YUY2; case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED: // Name differs, though the value is the same return PublicFormat::PRIVATE; case HAL_PIXEL_FORMAT_Y16: // Dataspace-dependent switch (dataSpace) { case HAL_DATASPACE_DEPTH: return PublicFormat::DEPTH16; default: // Assume non-depth Y16 is just Y16. return PublicFormat::Y16; } break; case HAL_PIXEL_FORMAT_BLOB: // Dataspace-dependent switch (dataSpace) { case HAL_DATASPACE_DEPTH: return PublicFormat::DEPTH_POINT_CLOUD; case HAL_DATASPACE_V0_JFIF: return PublicFormat::JPEG; default: // Assume otherwise-marked blobs are also JPEG return PublicFormat::JPEG; } break; case HAL_PIXEL_FORMAT_BGRA_8888: // Not defined in public API return PublicFormat::UNKNOWN; default: return PublicFormat::UNKNOWN; } return mapHalFormatDataspaceToPublicFormat(format, dataSpace); } // ---------------------------------------------------------------------------- Loading core/jni/include/android_runtime/android_view_Surface.h +1 −33 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <android/native_window.h> #include <system/graphics.h> #include <ui/PublicFormat.h> #include "jni.h" Loading @@ -27,39 +28,6 @@ namespace android { class Surface; class IGraphicBufferProducer; /** * Enum mirroring the public API definitions for image and pixel formats. * Some of these are hidden in the public API * * Keep up to date with android.graphics.ImageFormat and * android.graphics.PixelFormat */ enum class PublicFormat { UNKNOWN = 0x0, RGBA_8888 = 0x1, RGBX_8888 = 0x2, RGB_888 = 0x3, RGB_565 = 0x4, NV16 = 0x10, NV21 = 0x11, YUY2 = 0x14, RGBA_FP16 = 0x16, RAW_SENSOR = 0x20, PRIVATE = 0x22, YUV_420_888 = 0x23, RAW_PRIVATE = 0x24, RAW10 = 0x25, RAW12 = 0x26, RGBA_1010102 = 0x2b, JPEG = 0x100, DEPTH_POINT_CLOUD = 0x101, RAW_DEPTH = 0x1002, // @hide YV12 = 0x32315659, Y8 = 0x20203859, // @hide Y16 = 0x20363159, // @hide DEPTH16 = 0x44363159 }; /* Gets the underlying ANativeWindow for a Surface. */ extern sp<ANativeWindow> android_view_Surface_getNativeWindow( JNIEnv* env, jobject surfaceObj); Loading Loading
core/jni/android_view_Surface.cpp +3 −99 Original line number Diff line number Diff line Loading @@ -127,113 +127,17 @@ jobject android_view_Surface_createFromIGraphicBufferProducer(JNIEnv* env, } int android_view_Surface_mapPublicFormatToHalFormat(PublicFormat f) { switch(f) { case PublicFormat::JPEG: case PublicFormat::DEPTH_POINT_CLOUD: return HAL_PIXEL_FORMAT_BLOB; case PublicFormat::DEPTH16: return HAL_PIXEL_FORMAT_Y16; case PublicFormat::RAW_SENSOR: case PublicFormat::RAW_DEPTH: return HAL_PIXEL_FORMAT_RAW16; default: // Most formats map 1:1 return static_cast<int>(f); } return mapPublicFormatToHalFormat(f); } android_dataspace android_view_Surface_mapPublicFormatToHalDataspace( PublicFormat f) { switch(f) { case PublicFormat::JPEG: return HAL_DATASPACE_V0_JFIF; case PublicFormat::DEPTH_POINT_CLOUD: case PublicFormat::DEPTH16: case PublicFormat::RAW_DEPTH: 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: case PublicFormat::YV12: return HAL_DATASPACE_V0_JFIF; default: // Most formats map to UNKNOWN return HAL_DATASPACE_UNKNOWN; } return mapPublicFormatToHalDataspace(f); } PublicFormat android_view_Surface_mapHalFormatDataspaceToPublicFormat( int format, android_dataspace dataSpace) { switch(format) { case HAL_PIXEL_FORMAT_RGBA_8888: case HAL_PIXEL_FORMAT_RGBX_8888: case HAL_PIXEL_FORMAT_RGBA_FP16: case HAL_PIXEL_FORMAT_RGBA_1010102: case HAL_PIXEL_FORMAT_RGB_888: 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 return static_cast<PublicFormat>(format); case HAL_PIXEL_FORMAT_RAW16: switch (dataSpace) { case HAL_DATASPACE_DEPTH: return PublicFormat::RAW_DEPTH; default: 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; case HAL_PIXEL_FORMAT_YCrCb_420_SP: // Name differs, though the value is the same return PublicFormat::NV21; case HAL_PIXEL_FORMAT_YCbCr_422_I: // Name differs, though the value is the same return PublicFormat::YUY2; case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED: // Name differs, though the value is the same return PublicFormat::PRIVATE; case HAL_PIXEL_FORMAT_Y16: // Dataspace-dependent switch (dataSpace) { case HAL_DATASPACE_DEPTH: return PublicFormat::DEPTH16; default: // Assume non-depth Y16 is just Y16. return PublicFormat::Y16; } break; case HAL_PIXEL_FORMAT_BLOB: // Dataspace-dependent switch (dataSpace) { case HAL_DATASPACE_DEPTH: return PublicFormat::DEPTH_POINT_CLOUD; case HAL_DATASPACE_V0_JFIF: return PublicFormat::JPEG; default: // Assume otherwise-marked blobs are also JPEG return PublicFormat::JPEG; } break; case HAL_PIXEL_FORMAT_BGRA_8888: // Not defined in public API return PublicFormat::UNKNOWN; default: return PublicFormat::UNKNOWN; } return mapHalFormatDataspaceToPublicFormat(format, dataSpace); } // ---------------------------------------------------------------------------- Loading
core/jni/include/android_runtime/android_view_Surface.h +1 −33 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <android/native_window.h> #include <system/graphics.h> #include <ui/PublicFormat.h> #include "jni.h" Loading @@ -27,39 +28,6 @@ namespace android { class Surface; class IGraphicBufferProducer; /** * Enum mirroring the public API definitions for image and pixel formats. * Some of these are hidden in the public API * * Keep up to date with android.graphics.ImageFormat and * android.graphics.PixelFormat */ enum class PublicFormat { UNKNOWN = 0x0, RGBA_8888 = 0x1, RGBX_8888 = 0x2, RGB_888 = 0x3, RGB_565 = 0x4, NV16 = 0x10, NV21 = 0x11, YUY2 = 0x14, RGBA_FP16 = 0x16, RAW_SENSOR = 0x20, PRIVATE = 0x22, YUV_420_888 = 0x23, RAW_PRIVATE = 0x24, RAW10 = 0x25, RAW12 = 0x26, RGBA_1010102 = 0x2b, JPEG = 0x100, DEPTH_POINT_CLOUD = 0x101, RAW_DEPTH = 0x1002, // @hide YV12 = 0x32315659, Y8 = 0x20203859, // @hide Y16 = 0x20363159, // @hide DEPTH16 = 0x44363159 }; /* Gets the underlying ANativeWindow for a Surface. */ extern sp<ANativeWindow> android_view_Surface_getNativeWindow( JNIEnv* env, jobject surfaceObj); Loading