summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ram Mohan <ram.mohan@ittiam.com> 2023-06-05 21:43:33 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-06-05 21:43:33 +0000
commit46d5d8794a29546afe295ebdf0de91dccd1ac7a6 (patch)
tree4e80905548317a6ed93112432f495cfd752f93ae
parent34fd5b1fa5d6ca284d09cb8d3021fb9254477cc0 (diff)
parent43665b0788724877d7241e0856e85ec843fc500c (diff)
ultrahdr: Fix nan occurence during xmp generation am: cd3f637361 am: 43665b0788
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/23539346 Change-Id: I51ee8ed24a92cfacf5926ecd6ecc5ce9684d30bc Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libs/ultrahdr/fuzzer/ultrahdr_enc_fuzzer.cpp2
-rw-r--r--libs/ultrahdr/jpegr.cpp8
2 files changed, 8 insertions, 2 deletions
diff --git a/libs/ultrahdr/fuzzer/ultrahdr_enc_fuzzer.cpp b/libs/ultrahdr/fuzzer/ultrahdr_enc_fuzzer.cpp
index 7faa1570f0..290576d56f 100644
--- a/libs/ultrahdr/fuzzer/ultrahdr_enc_fuzzer.cpp
+++ b/libs/ultrahdr/fuzzer/ultrahdr_enc_fuzzer.cpp
@@ -256,7 +256,7 @@ void JpegHDRFuzzer::process() {
} else if (tf == ULTRAHDR_TF_PQ) {
metadata.maxContentBoost = kPqMaxNits / kSdrWhiteNits;
} else {
- metadata.maxContentBoost = 0;
+ metadata.maxContentBoost = 1.0f;
}
metadata.minContentBoost = 1.0f;
status = jpegHdr.encodeJPEGR(&jpegImg, &jpegGainMap, &metadata, &jpegImgR);
diff --git a/libs/ultrahdr/jpegr.cpp b/libs/ultrahdr/jpegr.cpp
index b2bde6c485..ed151f3ad2 100644
--- a/libs/ultrahdr/jpegr.cpp
+++ b/libs/ultrahdr/jpegr.cpp
@@ -726,7 +726,7 @@ status_t JpegR::generateGainMap(jr_uncompressed_ptr uncompressed_yuv_420_image,
map_data.reset(reinterpret_cast<uint8_t*>(dest->data));
ColorTransformFn hdrInvOetf = nullptr;
- float hdr_white_nits = 0.0f;
+ float hdr_white_nits = kSdrWhiteNits;
switch (hdr_tf) {
case ULTRAHDR_TF_LINEAR:
hdrInvOetf = identityConversion;
@@ -1067,6 +1067,12 @@ status_t JpegR::appendGainMap(jr_compressed_ptr compressed_jpeg_image,
return ERROR_JPEGR_INVALID_NULL_PTR;
}
+ if (metadata->minContentBoost < 1.0f || metadata->maxContentBoost < metadata->minContentBoost) {
+ ALOGE("received bad value for content boost min %f, max %f", metadata->minContentBoost,
+ metadata->maxContentBoost);
+ return ERROR_JPEGR_INVALID_INPUT_TYPE;
+ }
+
const string nameSpace = "http://ns.adobe.com/xap/1.0/";
const int nameSpaceLength = nameSpace.size() + 1; // need to count the null terminator