Stops compiler from doing incredibly stupid things. With vsynth1-flv inner loop goes from 3501 to 3275 decicycles. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>tags/n2.4
| @@ -309,13 +309,13 @@ static int h261_decode_block(H261Context *h, int16_t *block, int n, int coded) | |||||
| for (;;) { | for (;;) { | ||||
| UPDATE_CACHE(re, &s->gb); | UPDATE_CACHE(re, &s->gb); | ||||
| GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TCOEFF_VLC_BITS, 2, 0); | GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TCOEFF_VLC_BITS, 2, 0); | ||||
| if (run == 66 && level) { | |||||
| CLOSE_READER(re, &s->gb); | |||||
| av_log(s->avctx, AV_LOG_ERROR, "illegal ac vlc code at %dx%d\n", | |||||
| s->mb_x, s->mb_y); | |||||
| return -1; | |||||
| } | |||||
| if (run == 66) { | if (run == 66) { | ||||
| if (level) { | |||||
| CLOSE_READER(re, &s->gb); | |||||
| av_log(s->avctx, AV_LOG_ERROR, "illegal ac vlc code at %dx%d\n", | |||||
| s->mb_x, s->mb_y); | |||||
| return -1; | |||||
| } | |||||
| /* escape */ | /* escape */ | ||||
| /* The remaining combinations of (run, level) are encoded with a | /* The remaining combinations of (run, level) are encoded with a | ||||
| * 20-bit word consisting of 6 bits escape, 6 bits run and 8 bits | * 20-bit word consisting of 6 bits escape, 6 bits run and 8 bits | ||||
| @@ -485,12 +485,12 @@ retry: | |||||
| for(;;) { | for(;;) { | ||||
| UPDATE_CACHE(re, &s->gb); | UPDATE_CACHE(re, &s->gb); | ||||
| GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TEX_VLC_BITS, 2, 0); | GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TEX_VLC_BITS, 2, 0); | ||||
| if (run == 66 && level){ | |||||
| CLOSE_READER(re, &s->gb); | |||||
| av_log(s->avctx, AV_LOG_ERROR, "illegal ac vlc code at %dx%d\n", s->mb_x, s->mb_y); | |||||
| return -1; | |||||
| } | |||||
| if (run == 66) { | if (run == 66) { | ||||
| if (level){ | |||||
| CLOSE_READER(re, &s->gb); | |||||
| av_log(s->avctx, AV_LOG_ERROR, "illegal ac vlc code at %dx%d\n", s->mb_x, s->mb_y); | |||||
| return -1; | |||||
| } | |||||
| /* escape */ | /* escape */ | ||||
| if (CONFIG_FLV_DECODER && s->h263_flv > 1) { | if (CONFIG_FLV_DECODER && s->h263_flv > 1) { | ||||
| int is11 = SHOW_UBITS(re, &s->gb, 1); | int is11 = SHOW_UBITS(re, &s->gb, 1); | ||||