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

Commit 11ea4d2b authored by John Dias's avatar John Dias Committed by android-build-merger
Browse files

Merge "sf: optimize luma sampling code" into qt-r1-dev am: f1218eeb

am: 2e48e9cd

Change-Id: Iba74c7bf332e10f18b34231498a2abcbb8ee099a
parents 0f400276 2e48e9cd
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -258,7 +258,7 @@ void RegionSamplingThread::binderDied(const wp<IBinder>& who) {

namespace {
// Using Rec. 709 primaries
float getLuma(float r, float g, float b) {
inline float getLuma(float r, float g, float b) {
    constexpr auto rec709_red_primary = 0.2126f;
    constexpr auto rec709_green_primary = 0.7152f;
    constexpr auto rec709_blue_primary = 0.0722f;
@@ -293,10 +293,10 @@ float sampleArea(const uint32_t* data, int32_t width, int32_t height, int32_t st
        const uint32_t* rowBase = data + row * stride;
        for (int32_t column = area.left; column < area.right; ++column) {
            uint32_t pixel = rowBase[column];
            const float r = (pixel & 0xFF) / 255.0f;
            const float g = ((pixel >> 8) & 0xFF) / 255.0f;
            const float b = ((pixel >> 16) & 0xFF) / 255.0f;
            const uint8_t luma = std::round(getLuma(r, g, b) * 255.0f);
            const float r = pixel & 0xFF;
            const float g = (pixel >> 8) & 0xFF;
            const float b = (pixel >> 16) & 0xFF;
            const uint8_t luma = std::round(getLuma(r, g, b));
            ++brightnessBuckets[luma];
            if (brightnessBuckets[luma] > majoritySampleNum) return luma / 255.0f;
        }