Mark Taylor schrieb am Mon, 27 M�r 2000:
> if you dont mind, can you try again the latest CVS version?  
> 
> I'm guessing these problems were caused by Takehiro's latest
> changes:  he put in yet more efficient lossless encoding
> which is also faster!  But there may be a few more bugs,
> he just checked in the following change:
> 
> revision 1.32
> date: 2000/03/27 15:59:14;  author: takehiro;  state: Exp;  lines: +2 -2
> debugged seg.fault when count1 is 576
> 
> I've also made a branch which does not include Takehiro's changes,
> "lame3_70".  You can get this branch with cvs update -r lame3_70
> (or fill in the branch box in the "sticky options" tab under wincvs)
> can you see if this branch still has the problem?  
> 
> lame3_70 is going to be the next "official release".  
> 
> Mark

I checked the 3.67 tarball from sulaco.org and it seems to work.
For the SEGFAULT problem with Takehiro's enhanced code I inserted
an assert(i<=576) in best_huffman_divide, and now it stops with
an assertion failure instead of a segmentation fault.

    /* Determines the number of bits to encode the quadruples. */
    i = (cod_info.count1 += 2);

->  assert(i <= 576); <-

    a1 = a2 = 0;
    for (; i > cod_info.big_values; i -= 4) {
      int p = ((ix[i-4] * 2 + ix[i-3]) * 2 + ix[i-2]) * 2 + ix[i-1];
      a1 += ht[32].hlen[p]; <--
      a2 += ht[33].hlen[p];
    }
    cod_info.big_values = i;

When I change

    i = (cod_info.count1 += 2);

into

    i = cod_info.count1;

then LAME encodes without an assertion failure or SEGFAULT.

Is this "cod_info.count1 += 2" really necessary?

Robert

-- 
http://linux.unixcity.de/catwalk/index.html
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to