Hello, I've been lugging around a 0.13 version of libmad for about 5 years for use in a back burner project. I've ported the works to PPC about a year ago and just today to ARM.
With 0.13 libmad there seems to be some really funky decode artifacts in libmad 0.13/ARM (but not in 0.15.1) which I couldn't explain. I noticed a few ARM-specific changes in fixed.h between 0.15.1 and 0.13 as well as what appear to be some tweaks called out in the CHANGES file.
But the echo-like decode artifacts were so dramatic I can't believe they would have gone unnoticed nor unaddressed. I suppose it could be some odd build issue local to my work but that seems rather remote. Anyone encounter any similar issue specific to ARM in or around that vintage?
Thanks,
-john
On Thu, 13 Apr 2006, john cooper wrote:
Hello, I've been lugging around a 0.13 version of libmad for about 5 years for use in a back burner project. I've ported the works to PPC about a year ago and just today to ARM.
With 0.13 libmad there seems to be some really funky decode artifacts in libmad 0.13/ARM (but not in 0.15.1) which I couldn't explain. I noticed a few ARM-specific changes in fixed.h between 0.15.1 and 0.13 as well as what appear to be some tweaks called out in the CHANGES file.
But the echo-like decode artifacts were so dramatic I can't believe they would have gone unnoticed nor unaddressed. I suppose it could be some odd build issue local to my work but that seems rather remote. Anyone encounter any similar issue specific to ARM in or around that vintage?
Pay attention to the inline asm register constraint. There is probably a missing '&' somewhere in v0.13 if my memory is right.
Nicolas
--- Nicolas Pitre nico@cam.org wrote:
On Thu, 13 Apr 2006, john cooper wrote:
Hello,
With 0.13 libmad there seems to be some really funky decode artifacts in libmad 0.13/ARM (but not in 0.15.1) which I couldn't explain. I noticed a few ARM-specific changes in fixed.h between 0.15.1 and 0.13 as well as what appear to be some tweaks called out in the CHANGES file.
But the echo-like decode artifacts were so dramatic I can't believe they would have gone unnoticed nor unaddressed. I suppose it could be some odd build issue local to my work but that seems rather remote. Anyone encounter any similar issue specific to ARM in or around that vintage?
Pay attention to the inline asm register constraint. There is probably a missing '&' somewhere in v0.13 if my memory is right.
Yes - fixed sometime after v0.14.2 Here's the patch I sent to Rob on Feb 15th 2002:
diff -ruN mad-0.14.2b_original/libmad/fixed.h mad-0.14.2b/libmad/fixed.h --- mad-0.14.2b_original/libmad/fixed.h Fri Nov 2 01:51:06 2001 +++ mad-0.14.2b/libmad/fixed.h Fri Feb 15 22:56:15 2002 @@ -275,7 +275,7 @@ ({ mad_fixed_t __result; \ asm ("movs %0, %1, lsr %3\n\t" \ "adc %0, %0, %2, lsl %4" \ - : "=r" (__result) \ + : "=&r" (__result) \ : "r" (lo), "r" (hi), \ "M" (MAD_F_SCALEBITS), "M" (32 - MAD_F_SCALEBITS) \ : "cc"); \
Andre --
Andre wrote:
--- Nicolas Pitre nico@cam.org wrote:
On Thu, 13 Apr 2006, john cooper wrote:
With 0.13 libmad there seems to be some really funky decode artifacts in libmad 0.13/ARM (but not in 0.15.1) which I couldn't explain.
Pay attention to the inline asm register constraint. There is probably a missing '&' somewhere in v0.13 if my memory is right.
Yes - fixed sometime after v0.14.2 Here's the patch I sent to Rob on Feb 15th 2002:
Thanks for indulging my curiosity. You are both doing well to recall a patch made over 4 years ago. :)
-john