I don't remember who it was, but someone was asking about why libmad is compiled with -O1 optimisation (instead of eg -O3).
Anyway, I just found the results of some profiling tests I did a while back using the Pentium Time Stamp Counter to profile the imdct36() function in layer3.c, mad-0.11.0b.
Hopefully the results are of interest, although I can't really offer too much explanation except to suspect 'features' in the gcc optimiser....
All results are in clock cycles on a Pentium III:
gcc version egcs-2.91.66 (ie stock RH 6.2):
gcc -O1 : 1329 clocks (asm mad_f_mul), 1529 clocks (C mad_f_mul) gcc -O2 : 1607 clocks (asm mad_f_mul), 2176 clocks (C mad_f_mul) gcc -O3 : 1608 clocks (asm mad_f_mul), 2186 clocks (C mad_f_mul)
gcc version 2.95.2 19991024:
gcc -O0 : 2946 clocks (asm mad_f_mul), 2616 clocks (C mad_f_mul) gcc -O1 : 1735 clocks (asm mad_f_mul), 1201 clocks (C mad_f_mul) gcc -O2 : 1380 clocks (asm mad_f_mul), 1567 clocks (C mad_f_mul) gcc -O3 : 1380 clocks (asm mad_f_mul), 1567 clocks (C mad_f_mul)
Rob, any news on an ETA for the next release ??
Andre --
____________________________________________________________ Do You Yahoo!? Get your free @yahoo.co.uk address at http://mail.yahoo.co.uk or your free @yahoo.ie address at http://mail.yahoo.ie
On Wed, 25 Oct 2000, Andre wrote:
All results are in clock cycles on a Pentium III:
gcc version egcs-2.91.66 (ie stock RH 6.2):
gcc -O1 : 1329 clocks (asm mad_f_mul), 1529 clocks (C mad_f_mul) gcc -O2 : 1607 clocks (asm mad_f_mul), 2176 clocks (C mad_f_mul) gcc -O3 : 1608 clocks (asm mad_f_mul), 2186 clocks (C mad_f_mul)
gcc version 2.95.2 19991024:
gcc -O0 : 2946 clocks (asm mad_f_mul), 2616 clocks (C mad_f_mul) gcc -O1 : 1735 clocks (asm mad_f_mul), 1201 clocks (C mad_f_mul) gcc -O2 : 1380 clocks (asm mad_f_mul), 1567 clocks (C mad_f_mul) gcc -O3 : 1380 clocks (asm mad_f_mul), 1567 clocks (C mad_f_mul)
This is strange.
The gcc-2.95.2 results are somewhat different on a StrongARM. They are more inline with the egcs-2.91.66 results above...
Nicolas
Rob, any news on an ETA for the next release ??
I had been holding back the release of 0.12.0 until more things could be included, but it's probably just as well to release it now.
Please note, I consider this an ALPHA release because there have been many sweeping changes, and I may surely have broken something along the way. Also, not all of the intended functionality (fade-out, gap handling) is complete.
You will note that I have not made any changes to the decoding library that should measurably affect performance. As I mentioned before, I am saving Andre's most recent patch for another release. The good news is that Andre's patch can still be safely applied to this release.
(Andre, maybe it would be worth posting the patch on SourceForge for the time being?)
To summarize the changes...
Throughout: - use of automake - use of libtool * a shared libmad can now be built with --enable-shared
libmad: - extended the timer API, making it very useful - the async API is almost finished * arbitrary messages can now be sent to the subsidiary process - extended the decoder API to enable fast header decoding and an opportunity to preempt decoding the rest of the frame (used for seeking) - numerous other API changes and a few bug fixes
madplay: - support for long-style options - support for internationalization via GNU gettext * French translation contributed by Gabriel Bouvigne * German, Norwegian, and Croatian translations in progress - support for start/stop playing in the middle of a file - support for shuffle/repeat - modularized filter framework * fade-in filter completed * fade-out, inter-song gap, and cross-fade handling in progress - new man page
For more details, see the CHANGES file in the distribution.
There is also the beginnings of a `mad123' program included, but it is currently useless and needs a lot of work. Is anyone interested in working on this?
The release is here:
ftp://ftp.mars.org/pub/mpeg/
and will be mirrored on SourceForge shortly.
In other news, I have decided to write a MAD plug-in for Winamp. It seems a number of people want both a quality decoder and 24-bit output. :-) I hope to have a pre-release version ready in a few days.
Cheers, -rob
In other news, I have decided to write a MAD plug-in for Winamp. It seems a number of people want both a quality decoder and 24-bit output. :-) I hope to have a pre-release version ready in a few days.
how much work is needed to also make a xmms plugin?
how much work is needed to also make a xmms plugin?
I don't know. I would guess it's not a lot of work, just judging how quickly I put together a plug-in for Winamp -- and most of that time, for me, has been spent getting used to Win32 development.
Are you interested in working on one? :-)
-rob