use memset() instead of slow c loops

Originally committed as revision 6059 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2006-08-24 00:03:51 +00:00
parent c7aa36964e
commit daf4cd9ac3

View File

@ -1686,18 +1686,20 @@ static int huffman_decode(MPADecodeContext *s, GranuleDef *g,
linbits = mpa_huff_data[k][1]; linbits = mpa_huff_data[k][1];
vlc = &huff_vlc[l]; vlc = &huff_vlc[l];
if(!l){
memset(&g->sb_hybrid[s_index], 0, sizeof(*g->sb_hybrid)*j);
s_index += 2*j;
continue;
}
/* read huffcode and compute each couple */ /* read huffcode and compute each couple */
for(;j>0;j--) { for(;j>0;j--) {
if (get_bits_count(&s->gb) >= end_pos) if (get_bits_count(&s->gb) >= end_pos)
break; break;
if (l) { y = get_vlc2(&s->gb, vlc->table, 8, 3);
y = get_vlc2(&s->gb, vlc->table, 8, 3); x = y >> 4;
x = y >> 4; y = y & 0x0f;
y = y & 0x0f;
} else {
x = 0;
y = 0;
}
dprintf("region=%d n=%d x=%d y=%d exp=%d\n", dprintf("region=%d n=%d x=%d y=%d exp=%d\n",
i, g->region_size[i] - j, x, y, exponents[s_index]); i, g->region_size[i] - j, x, y, exponents[s_index]);
if (x) { if (x) {
@ -1756,8 +1758,7 @@ static int huffman_decode(MPADecodeContext *s, GranuleDef *g,
g->sb_hybrid[s_index++] = v; g->sb_hybrid[s_index++] = v;
} }
} }
while (s_index < 576) memset(&g->sb_hybrid[s_index], 0, sizeof(*g->sb_hybrid)*(576 - s_index));
g->sb_hybrid[s_index++] = 0;
return 0; return 0;
} }