mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-10-11 10:27:50 +08:00
Simplify ra144_decode_frame() by unrolling a senseless
loop. Thanks mkhdor for suggesting this patch. Originally committed as revision 13211 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@ -401,25 +401,14 @@ static int ra144_decode_frame(AVCodecContext * avctx,
|
|||||||
val = decodeval[get_bits(&gb, 5) << 1]; // Useless table entries?
|
val = decodeval[get_bits(&gb, 5) << 1]; // Useless table entries?
|
||||||
a = t_sqrt(val*glob->oldval) >> 12;
|
a = t_sqrt(val*glob->oldval) >> 12;
|
||||||
|
|
||||||
for (c=0; c < NBLOCKS; c++) {
|
dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, glob->oldval, glob->swapbuf2, 0);
|
||||||
if (c == (NBLOCKS - 1)) {
|
if (glob->oldval < val) {
|
||||||
dec1(glob, glob->swapbuf1, glob->swapbuf2, 3, val);
|
dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, a, glob->swapbuf2alt, 1);
|
||||||
} else {
|
} else {
|
||||||
if (c * 2 == (NBLOCKS - 2)) {
|
dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, a, glob->swapbuf2, 1);
|
||||||
if (glob->oldval < val) {
|
|
||||||
dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, a, glob->swapbuf2alt, c);
|
|
||||||
} else {
|
|
||||||
dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, a, glob->swapbuf2, c);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (c * 2 < (NBLOCKS - 2)) {
|
|
||||||
dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, glob->oldval, glob->swapbuf2, c);
|
|
||||||
} else {
|
|
||||||
dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, val, glob->swapbuf2alt, c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, val, glob->swapbuf2alt, 2);
|
||||||
|
dec1(glob, glob->swapbuf1, glob->swapbuf2, 3, val);
|
||||||
|
|
||||||
/* do output */
|
/* do output */
|
||||||
for (b=0, c=0; c<4; c++) {
|
for (b=0, c=0; c<4; c++) {
|
||||||
|
Reference in New Issue
Block a user