Ticket #1073: yuv2rgb.diff

File yuv2rgb.diff, 808 bytes (added by jwestfall@…, 20 years ago)

fix

  • libs/libmythtv/yuv2rgb.cpp

     
    2525
    2626#include <cstdio>
    2727#include <cstdlib>
     28#include <algorithm>
    2829#include <inttypes.h>
    2930#include "config.h"
    3031
     
    391392#define RGBOUT(r, g, b, y1)\
    392393{\
    393394    y = (y1 - 16) * C_Y;\
    394     r = (y + r_add) >> SCALE_BITS;\
    395     g = (y + g_add) >> SCALE_BITS;\
    396     b = (y + b_add) >> SCALE_BITS;\
     395    r = std::min(UCHAR_MAX, std::max(0, (y + r_add) >> SCALE_BITS));\
     396    g = std::min(UCHAR_MAX, std::max(0, (y + g_add) >> SCALE_BITS));\
     397    b = std::min(UCHAR_MAX, std::max(0, (y + b_add) >> SCALE_BITS));\
    397398}
    398399
    399400static void yuv420_argb32_non_mmx(unsigned char *image, unsigned char *py,