Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3bb2a7f1 authored by Chong Zhang's avatar Chong Zhang Committed by Wen Chang Liu
Browse files

Do not use content light level if it's 0

Do not set CTA861_3 bit if content light level
fields are 0, these may indicate that CLL is
not present in the bitstream. Let display or
compositor use default if needed.

bug: 152581483
Change-Id: I6764623130f839df83fd6f5db1b97ab768a8642d
Merged-In: I6764623130f839df83fd6f5db1b97ab768a8642d
(cherry picked from commit cbbbfab2)
parent ad531ce5
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -868,15 +868,20 @@ status_t CCodecBufferChannel::renderOutputBuffer(
                .minLuminance = hdrStaticInfo->mastering.minLuminance,
            };

            hdr.validTypes = HdrMetadata::SMPTE2086;
            hdr.smpte2086 = smpte2086_meta;

            // If the content light level fields are 0, do not use them, it
            // indicates the value may not be present in the stream.
            if (hdrStaticInfo->maxCll > 0.0f && hdrStaticInfo->maxFall > 0.0f) {
                struct android_cta861_3_metadata cta861_meta = {
                    .maxContentLightLevel = hdrStaticInfo->maxCll,
                    .maxFrameAverageLightLevel = hdrStaticInfo->maxFall,
                };

            hdr.validTypes = HdrMetadata::SMPTE2086 | HdrMetadata::CTA861_3;
            hdr.smpte2086 = smpte2086_meta;
                hdr.validTypes |= HdrMetadata::CTA861_3;
                hdr.cta8613 = cta861_meta;
            }
        }
        if (hdr10PlusInfo) {
            hdr.validTypes |= HdrMetadata::HDR10PLUS;
            hdr.hdr10plus.assign(