Pete Popov wrote: > Has anyone used madplay on mips to play mp3 files successfully? I've > tried it on two mips boards with different sound drivers, and in both > cases it plays the song slower and a bit muffled. It works on x86 and > supposedly ppc. Muffled sound could be the result of a poor FPM choice, or a buggy compiler. For best performance, MAD needs a multiply/accumulate instruction, which is not available on all MIPS platforms. Check the MIPS section of libmad/fixed.h and see whether you can use either of the MADD_ASM alternatives, then change your libmad/config.h to suit (or consider updating libmad/configure.in). In the worst case you might need to write a new asm alternative, or try something more generic like FPM_64BIT or FPM_DEFAULT -- though the latter could also be the cause of poor sound. I've encountered problems with certain gcc optimization options on some platforms, notably ARM and MIPS, the symptom being a sort of muffled sound result rather than the clear sound MAD ought to produce. I never traced these bugs in the compiler, so my only advice is to try different combinations of -fstrength-reduce and -finline-functions if you suspect this to be a problem. > Even though madplay claims that no floating point is used, the > disassembly of the latest version shows otherwise. But I tried it on a > board with a cpu that does have a hardware floating point unit with the > same result. The _only_ floating point used by madplay is in option parsing and calculation of peak amplitude in decibels upon completion of decoding. There is no floating point used in the decoder proper (libmad). I'm not sure what you mean by songs "playing slower" but it could be either libmad is not reaching real-time performance, or there could be issues with channel/sampling frequency selection in your sound driver. You could try -m and/or --downsample, or modify the audio output module to use a fixed known good sampling frequency. Also try sending output to a file (-o out.wav) and see if you can play that successfully with another program. If the problem is real-time performance, you can try the --enable-speed option to `configure' at the expense of some accuracy. -- Rob Leslie rob@mars.org