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

Commit d7e1d08c authored by Rachad's avatar Rachad Committed by Rachad Alao
Browse files

YUVImage.cpp: Fix hidden overflow error in YUV to RGB conversion

Bug: 19573730
Change-Id: I4a233d9dd49fc590df33258b6a288ad058f11f73
parent 13e71707
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -374,13 +374,13 @@ uint8_t clamp(uint8_t v, uint8_t minValue, uint8_t maxValue) {

void YUVImage::yuv2rgb(uint8_t yValue, uint8_t uValue, uint8_t vValue,
        uint8_t *r, uint8_t *g, uint8_t *b) const {
    *r = yValue + (1.370705 * (vValue-128));
    *g = yValue - (0.698001 * (vValue-128)) - (0.337633 * (uValue-128));
    *b = yValue + (1.732446 * (uValue-128));
    int rTmp = yValue + (1.370705 * (vValue-128));
    int gTmp = yValue - (0.698001 * (vValue-128)) - (0.337633 * (uValue-128));
    int bTmp = yValue + (1.732446 * (uValue-128));

    *r = clamp(*r, 0, 255);
    *g = clamp(*g, 0, 255);
    *b = clamp(*b, 0, 255);
    *r = clamp(rTmp, 0, 255);
    *g = clamp(gTmp, 0, 255);
    *b = clamp(bTmp, 0, 255);
}

bool YUVImage::writeToPPM(const char *filename) const {