A couple recoverymap fixes.
Fix decoding of P010 narrow range code points. Also fix scaling for
input to OETF during application of the map.
NOTE: tests pass, although there is still an expected failure for
encoding against just P010 input (API-0), sine toneMap() isn't
implemented yet.
Bug: 252835416, 261479255
Test: libjpegrecoverymap_test passes
Change-Id: Ibfd036c6c0cd55de7c5886e32fff69f461cf45d9
diff --git a/libs/jpegrecoverymap/recoverymap.cpp b/libs/jpegrecoverymap/recoverymap.cpp
index c9ac921..74bb512 100644
--- a/libs/jpegrecoverymap/recoverymap.cpp
+++ b/libs/jpegrecoverymap/recoverymap.cpp
@@ -562,7 +562,7 @@
float recovery = sampleMap(uncompressed_recovery_map, kMapDimensionScaleFactor, x, y);
Color rgb_hdr = applyRecovery(rgb_sdr, recovery, metadata->rangeScalingFactor);
- Color rgb_gamma_hdr = hdrOetf(rgb_hdr);
+ Color rgb_gamma_hdr = hdrOetf(rgb_hdr / metadata->rangeScalingFactor);
uint32_t rgba1010102 = colorToRgba1010102(rgb_gamma_hdr);
size_t pixel_idx = x + y * width;