lame 3.89beta produkuje neprehratelny soubor!

Milan Kerslager milan.kerslager na spsselib.hiedu.cz
Středa Červenec 25 17:19:03 CEST 2001


On Wed, 25 Jul 2001, Daniel F. Hrouzek wrote:

> vcera jsem zjistil zajimavou vec: zkompiloval jsem si novy lame
> 3.89beta, pouzil jsem ho (-h -mj -b 160, nic vic) na nekolik naprosto
> korektnix wavu (cdparanoia rulez :-)), ale kdyz jsem se pak pokusil
> vznikle mp3 prehrat, xmms se uplne zblaznilo, poskakovalo po casovem
> prubehu skladby sem a tam, zmatene prepinalo bitrate, menilo mono a
> stereo rezim, ale nevyloudilo ani ton! :-0 zkusil jsem ty same wavy
> zkonvertovat pomoci lame.dll pod windows (zase 3.89beta), a vsexno je
> v poradku :-((. nevite nekdo, cim by to mohlo byt, abyx zbytecne
> neresil neco, co uz je davno vyreseny? pro uplnost, mam rh7.1cz,
> kernel 2.4.6 a duron, a lame 3.88beta mi slapalo naprosto v poradku!

V RH 7.1 byl problem s nasm, treba to bude porad ten pripad:


On Thu, May 17, 2001 at 10:45:38AM +0200, David Balazic wrote:
>
> On a Seawolf system ( gcc-2.96-81 , nasm-0.98-[67] installed )
>
> wget ftp://lame.sourceforge.net/pub/lame/src/lame3.88beta.tar.gz
> tar xzf lame3.88beta.tar.gz
> cd lame-3.88
> make distclean
> ./configure --without-vorbis # vorbis on Seawolf has some compatibility problems with labe 3.88
> make
> frontend/lame testcase.wav test.mp3  # testcase.wav is part of lame package
> core dump !!!!
>

Here is a new patch. Please use it to replace the one in nasm-0.98-6.
It works for your testcase. But I don't know for sure the nasm is
really fixed.

Thanks.

H.J.

--- nasm-0.98/outelf.c.boguself	Sun May 20 01:25:35 2001
+++ nasm-0.98/outelf.c	Sun May 20 02:01:59 2001
@@ -548,7 +548,7 @@ static void elf_add_reloc (struct Sectio
 	r->symbol = 0;
 	for (i=0; i<nsects; i++)
 	    if (segment == sects[i]->index)
-		r->symbol = i+3;
+		r->symbol = i+2;
 	if (!r->symbol)
 	    r->symbol = GLOBAL_TEMP_BASE + raa_read(bsym, segment);
     }
@@ -922,13 +922,13 @@ static struct SAA *elf_build_symtab (lon
      * Now some standard symbols defining the segments, for relocation
      * purposes.
      */
-    for (i = 1; i <= nsects+1; i++) {
+    for (i = 1; i <= nsects; i++) {
 	p = entry;
 	WRITELONG (p, 0);	       /* no symbol name */
 	WRITELONG (p, 0);	       /* offset zero */
 	WRITELONG (p, 0);	       /* size zero */
 	WRITESHORT (p, 3);	       /* local section-type thing */
-	WRITESHORT (p, (i==1 ? SHN_ABS : i-1));   /* the section id */
+	WRITESHORT (p, i);             /* the section id */
 	saa_wbytes (s, entry, 16L);
 	*len += 16;
 	(*local)++;
@@ -986,7 +986,7 @@ static struct SAA *elf_build_reltab (lon
 	long sym = r->symbol;

 	if (sym >= GLOBAL_TEMP_BASE)
-	    sym += -GLOBAL_TEMP_BASE + (nsects+3) + nlocals;
+	    sym += -GLOBAL_TEMP_BASE + (nsects+2) + nlocals;

 	p = entry;
 	WRITELONG (p, r->address);

-- 
                        Milan Kerslager
                        E-mail: milan.kerslager na spsselib.hiedu.cz
                        WWW:    http://www.spsselib.hiedu.cz/~kerslage/




Další informace o konferenci Linux