diff options
| author | 2022-10-12 14:57:05 -0700 | |
|---|---|---|
| committer | 2022-10-12 22:49:31 -0700 | |
| commit | 596a7564d738a34553ff81f19e139f6235d82008 (patch) | |
| tree | 789798a8b4283aabebb9ed3b1475c81019f76493 | |
| parent | 85b37566ccf58d14c1ac1f5a1e635cd4f8bade2d (diff) | |
Minor changes
Changed data input/output types (add compressed/uncompressed struct).
Fixed typos in some places (jpeg_g to jpeg_r).
Bug: b/252835416
Change-Id: Ibc9d4c24108417a528052bda64c718e365421e28
| -rw-r--r-- | libs/jpegrecoverymap/include/jpegrecoverymap/recoverymap.h | 79 | ||||
| -rw-r--r-- | libs/jpegrecoverymap/recoverymap.cpp | 51 |
2 files changed, 89 insertions, 41 deletions
diff --git a/libs/jpegrecoverymap/include/jpegrecoverymap/recoverymap.h b/libs/jpegrecoverymap/include/jpegrecoverymap/recoverymap.h index c5f8e9acd3..6949f85873 100644 --- a/libs/jpegrecoverymap/include/jpegrecoverymap/recoverymap.h +++ b/libs/jpegrecoverymap/include/jpegrecoverymap/recoverymap.h @@ -16,61 +16,100 @@ namespace android::recoverymap { +/* + * Holds information for uncompressed image or recovery map. + */ +struct jpeg_r_uncompressed_struct { + // Pointer to the data location. + void* data; + // Width of the recovery map or image in pixels. + int width; + // Height of the recovery map or image in pixels. + int height; +}; + +/* + * Holds information for compressed image or recovery map. + */ +struct jpeg_r_compressed_struct { + // Pointer to the data location. + void* data; + // Data length; + int length; +}; + +typedef struct jpeg_r_uncompressed_struct* j_r_uncompressed_ptr; +typedef struct jpeg_r_compressed_struct* j_r_compressed_ptr; + class RecoveryMap { public: /* * This method is called in the decoding pipeline. It will decode the recovery map. * - * input: compressed recovery map - * output: uncompressed recovery map + * @param compressed_recovery_map compressed recovery map + * @param dest decoded recover map + * @return true if decoding succeeds */ - void* decodeRecoveryMap(void* compressed_recovery_map); + bool decodeRecoveryMap(j_r_compressed_ptr compressed_recovery_map, + j_r_uncompressed_ptr dest); /* * This method is called in the encoding pipeline. It will encode the recovery map. * - * input: uncompressed recovery map - * output: compressed recovery map + * @param uncompressed_recovery_map uncompressed recovery map + * @param dest encoded recover map + * @return true if encoding succeeds */ - void* encodeRecoveryMap(void* uncompressed_recovery_map); + bool encodeRecoveryMap(j_r_uncompressed_ptr uncompressed_recovery_map, + j_r_compressed_ptr dest); /* * This method is called in the encoding pipeline. It will take the uncompressed 8-bit and * 10-bit yuv images as input, and calculate the uncompressed recovery map. * - * input: uncompressed yuv_420 image, uncompressed p010 image - * output: uncompressed recovery map + * @param uncompressed_yuv_420_image uncompressed SDR image in YUV_420 color format + * @param uncompressed_p010_image uncompressed HDR image in P010 color format + * @param dest recover map + * @return true if calculation succeeds */ - void* generateRecoveryMap(void* uncompressed_yuv_420_image, void* uncompressed_p010_image); + bool generateRecoveryMap(j_r_uncompressed_ptr uncompressed_yuv_420_image, + j_r_uncompressed_ptr uncompressed_p010_image, + j_r_uncompressed_ptr dest); /* * This method is called in the decoding pipeline. It will take the uncompressed (decoded) - * 8-bit yuv image and the uncompressed(decoded) recovery map as input, and calculate the + * 8-bit yuv image and the uncompressed (decoded) recovery map as input, and calculate the * 10-bit recovered image (in p010 color format). * - * input: uncompressed yuv_420 image, uncompressed recovery map - * output: uncompress p010 image + * @param uncompressed_yuv_420_image uncompressed SDR image in YUV_420 color format + * @param uncompressed_recovery_map uncompressed recovery map + * @param dest reconstructed HDR image + * @return true if calculation succeeds */ - void* applyRecoveryMap(void* uncompressed_yuv_420_image, void* uncompressed_recovery_map); + bool applyRecoveryMap(j_r_uncompressed_ptr uncompressed_yuv_420_image, + j_r_uncompressed_ptr uncompressed_recovery_map, + j_r_uncompressed_ptr dest); /* * This method is called in the decoding pipeline. It will read XMP metadata to find the start * position of the compressed recovery map, and will extract the compressed recovery map. * - * input: compressed JPEG-G image (8-bit JPEG + compressed recovery map) - * output: compressed recovery map + * @param compressed_jpeg_r_image compressed JPEG_R image + * @return compressed recovery map */ - void* extractRecoveryMap(void* compressed_jpeg_g_image); + j_r_compressed_ptr extractRecoveryMap(void* compressed_jpeg_r_image); /* * This method is called in the encoding pipeline. It will take the standard 8-bit JPEG image * and the compressed recovery map as input, and update the XMP metadata with the end of JPEG * marker, and append the compressed gian map after the JPEG. * - * input: compressed 8-bit JPEG image (standard JPEG), compressed recovery map - * output: compressed JPEG-G image (8-bit JPEG + compressed recovery map) + * @param compressed_jpeg_image compressed 8-bit JPEG image + * @param compress_recovery_map compressed recover map + * @return compressed JPEG_R image */ - void* appendRecoveryMap(void* compressed_jpeg_image, void* compressed_recovery_map); + void* appendRecoveryMap(void* compressed_jpeg_image, + j_r_compressed_ptr compressed_recovery_map); }; -} // namespace android::recoverymap
\ No newline at end of file +} // namespace android::recoverymap diff --git a/libs/jpegrecoverymap/recoverymap.cpp b/libs/jpegrecoverymap/recoverymap.cpp index 3e95a31871..bd92652368 100644 --- a/libs/jpegrecoverymap/recoverymap.cpp +++ b/libs/jpegrecoverymap/recoverymap.cpp @@ -18,46 +18,54 @@ namespace android::recoverymap { -void* RecoveryMap::decodeRecoveryMap(void* compressed_recovery_map) { - if (compressed_recovery_map == nullptr) { - return nullptr; +bool RecoveryMap::decodeRecoveryMap(j_r_compressed_ptr compressed_recovery_map, + j_r_uncompressed_ptr dest) { + if (compressed_recovery_map == nullptr || dest == nullptr) { + return false; } // TBD - return nullptr; + return true; } -void* RecoveryMap::encodeRecoveryMap(void* uncompressed_recovery_map) { - if (uncompressed_recovery_map == nullptr) { - return nullptr; +bool RecoveryMap::encodeRecoveryMap(j_r_uncompressed_ptr uncompressed_recovery_map, + j_r_compressed_ptr dest) { + if (uncompressed_recovery_map == nullptr || dest == nullptr) { + return false; } // TBD - return nullptr; + return true; } -void* RecoveryMap::generateRecoveryMap( - void* uncompressed_yuv_420_image, void* uncompressed_p010_image) { - if (uncompressed_yuv_420_image == nullptr || uncompressed_p010_image == nullptr) { - return nullptr; +bool RecoveryMap::generateRecoveryMap(j_r_uncompressed_ptr uncompressed_yuv_420_image, + j_r_uncompressed_ptr uncompressed_p010_image, + j_r_uncompressed_ptr dest) { + if (uncompressed_yuv_420_image == nullptr + || uncompressed_p010_image == nullptr + || dest == nullptr) { + return false; } // TBD - return nullptr; + return true; } -void* RecoveryMap::applyRecoveryMap( - void* uncompressed_yuv_420_image, void* uncompressed_recovery_map) { - if (uncompressed_yuv_420_image == nullptr || uncompressed_recovery_map == nullptr) { - return nullptr; +bool RecoveryMap::applyRecoveryMap(j_r_uncompressed_ptr uncompressed_yuv_420_image, + j_r_uncompressed_ptr uncompressed_recovery_map, + j_r_uncompressed_ptr dest) { + if (uncompressed_yuv_420_image == nullptr + || uncompressed_recovery_map == nullptr + || dest == nullptr) { + return false; } // TBD - return nullptr; + return true; } -void* RecoveryMap::extractRecoveryMap(void* compressed_jpeg_g_image) { - if (compressed_jpeg_g_image == nullptr) { +j_r_compressed_ptr RecoveryMap::extractRecoveryMap(void* compressed_jpeg_r_image) { + if (compressed_jpeg_r_image == nullptr) { return nullptr; } @@ -65,7 +73,8 @@ void* RecoveryMap::extractRecoveryMap(void* compressed_jpeg_g_image) { return nullptr; } -void* RecoveryMap::appendRecoveryMap(void* compressed_jpeg_image, void* compressed_recovery_map) { +void* RecoveryMap::appendRecoveryMap(void* compressed_jpeg_image, + j_r_compressed_ptr compressed_recovery_map) { if (compressed_jpeg_image == nullptr || compressed_recovery_map == nullptr) { return nullptr; } |