rv34: fix signed multiplication overflow

Multiply by unsigned 0x01010101 to replicate bytes into 32-bit
word.

Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard 2011-11-26 14:50:23 +00:00
parent e524eadbf8
commit 171ec81223

View File

@ -933,7 +933,7 @@ static void rv34_pred_4x4_block(RV34DecContext *r, uint8_t *dst, int stride, int
if(itype == VERT_LEFT_PRED) itype = VERT_LEFT_PRED_RV40_NODOWN; if(itype == VERT_LEFT_PRED) itype = VERT_LEFT_PRED_RV40_NODOWN;
} }
if(!right && up){ if(!right && up){
topleft = dst[-stride + 3] * 0x01010101; topleft = dst[-stride + 3] * 0x01010101u;
prev = (uint8_t*)&topleft; prev = (uint8_t*)&topleft;
} }
r->h.pred4x4[itype](dst, prev, stride); r->h.pred4x4[itype](dst, prev, stride);