fix the case where all vlc codes are 8 bits long (repeat=256)

Originally committed as revision 2374 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2003-10-13 19:38:34 +00:00
parent 7674347b64
commit a003ee9a44
1 changed files with 4 additions and 5 deletions

View File

@ -438,14 +438,13 @@ static void store_table(HYuvContext *s, uint8_t *len){
int index= s->avctx->extradata_size;
for(i=0; i<256;){
int cur=i;
int val= len[i];
int repeat;
int repeat=0;
for(; i<256 && len[i]==val; i++);
repeat= i - cur;
for(; i<256 && len[i]==val && repeat<255; i++)
repeat++;
assert(val < 32 && val >0 && repeat<256 && repeat>0);
if(repeat>7){
((uint8_t*)s->avctx->extradata)[index++]= val;
((uint8_t*)s->avctx->extradata)[index++]= repeat;