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
diff --git a/libs/jpegrecoverymap/include/jpegrecoverymap/recoverymap.h b/libs/jpegrecoverymap/include/jpegrecoverymap/recoverymap.h
index c5f8e9a..6949f85 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 3e95a31..bd92652 100644
--- a/libs/jpegrecoverymap/recoverymap.cpp
+++ b/libs/jpegrecoverymap/recoverymap.cpp
@@ -18,8 +18,54 @@
namespace android::recoverymap {
-void* RecoveryMap::decodeRecoveryMap(void* compressed_recovery_map) {
- if (compressed_recovery_map == 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 true;
+}
+
+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 true;
+}
+
+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 true;
+}
+
+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 true;
+}
+
+j_r_compressed_ptr RecoveryMap::extractRecoveryMap(void* compressed_jpeg_r_image) {
+ if (compressed_jpeg_r_image == nullptr) {
return nullptr;
}
@@ -27,45 +73,8 @@
return nullptr;
}
-void* RecoveryMap::encodeRecoveryMap(void* uncompressed_recovery_map) {
- if (uncompressed_recovery_map == nullptr) {
- return nullptr;
- }
-
- // TBD
- return nullptr;
-}
-
-void* RecoveryMap::generateRecoveryMap(
- void* uncompressed_yuv_420_image, void* uncompressed_p010_image) {
- if (uncompressed_yuv_420_image == nullptr || uncompressed_p010_image == nullptr) {
- return nullptr;
- }
-
- // TBD
- return nullptr;
-}
-
-void* RecoveryMap::applyRecoveryMap(
- void* uncompressed_yuv_420_image, void* uncompressed_recovery_map) {
- if (uncompressed_yuv_420_image == nullptr || uncompressed_recovery_map == nullptr) {
- return nullptr;
- }
-
- // TBD
- return nullptr;
-}
-
-void* RecoveryMap::extractRecoveryMap(void* compressed_jpeg_g_image) {
- if (compressed_jpeg_g_image == nullptr) {
- return nullptr;
- }
-
- // TBD
- 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;
}