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/ )