summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/RegionSamplingThread.h
diff options
context:
space:
mode:
author Kevin DuBois <kevindubois@google.com> 2019-04-02 14:34:35 -0700
committer Kevin DuBois <kevindubois@google.com> 2019-04-03 13:18:04 -0700
commitbb27bcd9c676f65937a2637d8c400d491d655f54 (patch)
treee29a56544a000ada1440c49cc1581244c003e6ac /services/surfaceflinger/RegionSamplingThread.h
parent945a7006f905b5f460668923b9875cd6637931a6 (diff)
SF: fix off-by one in luma mean calculation
There was an off by one error in luma mean calculation that could lead to segfault. Flaw was figured out in writing the 5 attached unit tests for the function. Condition would be obscure in the wild, but an exactly half-white, half-another-color in the sampled region could present condition. Fixes: 129858549 Test: libsurfaceflinger_unittest (5 new tests) Change-Id: I920cd9cac15122178ec9258e33c9bc35b1bb9357
Diffstat (limited to 'services/surfaceflinger/RegionSamplingThread.h')
-rw-r--r--services/surfaceflinger/RegionSamplingThread.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/services/surfaceflinger/RegionSamplingThread.h b/services/surfaceflinger/RegionSamplingThread.h
index d4e57bfc7b..979642912b 100644
--- a/services/surfaceflinger/RegionSamplingThread.h
+++ b/services/surfaceflinger/RegionSamplingThread.h
@@ -37,6 +37,8 @@ class Scheduler;
class SurfaceFlinger;
struct SamplingOffsetCallback;
+float sampleArea(const uint32_t* data, int32_t stride, const Rect& area);
+
class RegionSamplingThread : public IBinder::DeathRecipient {
public:
struct TimingTunables {