summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/RegionSamplingThread.cpp
diff options
context:
space:
mode:
author Kevin DuBois <kevindubois@google.com> 2019-04-03 23:44:26 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-04-03 23:44:26 +0000
commita582d0dc0558bac02278e9182cb289025b57c2bc (patch)
treecfe69b7c49315be441c19b45f95a247f6f4967ae /services/surfaceflinger/RegionSamplingThread.cpp
parent5cd07d8cb0a5d4d2a93390d7ce5e60ae3be5cd0c (diff)
parentbb27bcd9c676f65937a2637d8c400d491d655f54 (diff)
Merge "SF: fix off-by one in luma mean calculation"
Diffstat (limited to 'services/surfaceflinger/RegionSamplingThread.cpp')
-rw-r--r--services/surfaceflinger/RegionSamplingThread.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp
index 718e996dae..35f11fc494 100644
--- a/services/surfaceflinger/RegionSamplingThread.cpp
+++ b/services/surfaceflinger/RegionSamplingThread.cpp
@@ -266,6 +266,7 @@ float getLuma(float r, float g, float b) {
constexpr auto rec709_blue_primary = 0.0722f;
return rec709_red_primary * r + rec709_green_primary * g + rec709_blue_primary * b;
}
+} // anonymous namespace
float sampleArea(const uint32_t* data, int32_t stride, const Rect& area) {
std::array<int32_t, 256> brightnessBuckets = {};
@@ -286,14 +287,13 @@ float sampleArea(const uint32_t* data, int32_t stride, const Rect& area) {
int32_t accumulated = 0;
size_t bucket = 0;
- while (bucket++ < brightnessBuckets.size()) {
+ for (; bucket < brightnessBuckets.size(); bucket++) {
accumulated += brightnessBuckets[bucket];
if (accumulated > majoritySampleNum) break;
}
return bucket / 255.0f;
}
-} // anonymous namespace
std::vector<float> RegionSamplingThread::sampleBuffer(
const sp<GraphicBuffer>& buffer, const Point& leftTop,