Hi Barry,

Thanks for tracking that down.  There are two problems: The code
enabled by

#define USE_GNUC_ASM

is currently broken. Takehiro was trying some improvements,
(Takehiro, maybe you could revert CVS back to the original until
these are working? )

This normally does not cause problems because it is only enabled on
GNU x386 machines, and right now the code in CVS uses (for GNU x386)
#define TAKEHIRO_IEEE754_HACK instead.  

So I am guessing the TAKEHIRO_IEEE754_HACK does not work
for FreeBSD?  Is is possible it would work on linux and not freebsd?

The fix is to make sure quantize-pvt.c does not use
either code.  i.e., change the #defines to:

#undef TAKEHIRO_IEEE754_HACK 

and

#undef USE_GNUC_ASM

But this will be slower then previous versions.  

Mark


> 
> I'm using a boatload of different versions of lame to do live
> encodings for streaming, in a pipeline receiving raw PCM data
> and then spewing the encoded mpeg data out for icecast streaming,
> using FreeBSD.
> 
> I just discovered that the latest CVS version isn't doing this
> for me (no suitable output sent to stdout), while the beta 3.83
> package (19.May) is fine.
> 
> Further testing reveals that CVS of 22.May 12.00 GMT+2 is fine,
> while 23.May 00.00 GMT+2 is b0rken.  There are a couple diffs in
> place, but the file which seems to `fix' things if restored from
> the `good' source is quantize-pvt.c
> 
> If I take the below patch, which is the diff of quantize-pvt.c
> over these 12 hours on 22.May, and I apply it to the latest
> CVS source, then lame works fine in a pipeline again.  (Well,
> it seems to require twice the CPU of 3.83, which is more than
> the machine doing three live streams can deliver, but it does
> deliver encoded output that I can listen to.)
> 
> I haven't dug around to see how this patch below might make a
> difference with stdin/stdout and why, but without it, what I
> get is nothing for several minutes, then repeated MPEG headers
> (with the lame version) sent to stdout, with the identical
> command pipeline that works as expected with 3.83.
> 
> (here the diffs applied on 22.May from CVS)
> 
> --- quantize-pvt.c    Sat May 27 10:18:30 2000
> +++ quantize-pvt.c-good       Sat May 27 10:39:20 2000
> @@ -6,11 +6,8 @@
>  #include "quantize-pvt.h"
>  
>  /* This does not work properly on some CPUs (68k for sure), it should not be 
>default.*/
> -#if (defined(__GNUC__) && defined(__i386__))
> -#define TAKEHIRO_IEEE754_HACK
> -#else
>  #undef TAKEHIRO_IEEE754_HACK
> -#endif
> +
>  
>  const int slen1_tab[16] = { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };
>  const int slen2_tab[16] = { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 };
> @@ -1124,7 +1121,7 @@
>  
>  /* NOTE: GNUC quantize_xrpow is broken as of 1.107 */
>  #if (defined(__GNUC__) && defined(__i386__))
> -#define USE_GNUC_ASM
> +#define USE_GNUC_ASMXXX
>  #endif
>  #ifdef _MSC_VER
>  #define USE_MSC_ASM
> 
> 
> 
> Barry Bouwsma, streaming radio netscum, tele danmark internet
> 
> --
> MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )
> 
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to