diff options
Diffstat (limited to 'ffmpeg/libavcodec/msrledec.c')
| -rw-r--r-- | ffmpeg/libavcodec/msrledec.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/ffmpeg/libavcodec/msrledec.c b/ffmpeg/libavcodec/msrledec.c index 83d7d13..4d3da5b 100644 --- a/ffmpeg/libavcodec/msrledec.c +++ b/ffmpeg/libavcodec/msrledec.c @@ -184,9 +184,9 @@ static int msrle_decode_8_16_24_32(AVCodecContext *avctx, AVPicture *pic, } if ((depth == 8) || (depth == 24)) { - for(i = 0; i < p2 * (depth >> 3); i++) { - *output++ = bytestream2_get_byteu(gb); - } + bytestream2_get_bufferu(gb, output, p2 * (depth >> 3)); + output += p2 * (depth >> 3); + // RLE8 copy is actually padded - and runs are not! if(depth == 8 && (p2 & 1)) { bytestream2_skip(gb, 1); @@ -211,8 +211,8 @@ static int msrle_decode_8_16_24_32(AVCodecContext *avctx, AVPicture *pic, switch(depth){ case 8: pix[0] = bytestream2_get_byte(gb); - for(i = 0; i < p1; i++) - *output++ = pix[0]; + memset(output, pix[0], p1); + output += p1; break; case 16: pix16 = bytestream2_get_le16(gb); |
