summaryrefslogtreecommitdiffstats
path: root/libavcodec/msrledec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-01-30 16:39:35 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-01-30 16:39:35 +0100
commitdbaae33c2c71862b8eaea978ed6dccc5ec03db89 (patch)
tree79461ae49941bb2966cec9b6621d779c9a64c1f5 /libavcodec/msrledec.c
parentc2992b705381e082e33633e62e151887da67b285 (diff)
downloadffmpeg-streaming-dbaae33c2c71862b8eaea978ed6dccc5ec03db89.zip
ffmpeg-streaming-dbaae33c2c71862b8eaea978ed6dccc5ec03db89.tar.gz
msrledec: move loop into switch
speeds up code and allows more simplifications Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/msrledec.c')
-rw-r--r--libavcodec/msrledec.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/libavcodec/msrledec.c b/libavcodec/msrledec.c
index 6596cec..cc69af8 100644
--- a/libavcodec/msrledec.c
+++ b/libavcodec/msrledec.c
@@ -218,21 +218,30 @@ static int msrle_decode_8_16_24_32(AVCodecContext *avctx, AVPicture *pic,
case 32: pix32 = bytestream2_get_le32(gb);
break;
}
- for(i = 0; i < p1; i++) {
- switch(depth){
- case 8: *output++ = pix[0];
- break;
- case 16: *(uint16_t*)output = pix16;
- output += 2;
- break;
- case 24: *output++ = pix[0];
- *output++ = pix[1];
- *output++ = pix[2];
- break;
- case 32: *(uint32_t*)output = pix32;
- output += 4;
- break;
+ switch(depth){
+ case 8:
+ for(i = 0; i < p1; i++)
+ *output++ = pix[0];
+ break;
+ case 16:
+ for(i = 0; i < p1; i++) {
+ *(uint16_t*)output = pix16;
+ output += 2;
+ }
+ break;
+ case 24:
+ for(i = 0; i < p1; i++) {
+ *output++ = pix[0];
+ *output++ = pix[1];
+ *output++ = pix[2];
+ }
+ break;
+ case 32:
+ for(i = 0; i < p1; i++) {
+ *(uint32_t*)output = pix32;
+ output += 4;
}
+ break;
}
pos += p1;
}
OpenPOWER on IntegriCloud