Subject: New(ish) fixed point mpeg decoder available.
To: None <port-arm32@netbsd.org>
From: Simon Burge <simonb@wasabisystems.com>
List: port-arm32
Date: 09/22/2000 00:43:02
Folks,

There's a new mpeg decoder available called "MAD".  Source is available
via http://www.mars.org/home/rob/proj/mpeg/.  The trailing patch is
needed for version 0.11.3b to run on NetBSD platforms - the author has
this patch and it should be in later versions.

This decoder is _much_ better than the current mpg123 fixed-point
decoder in pkgsrc, and uses the same if not a little less CPU to do the
decoding.  I heartily recommend any arm32 folk who are currently using
mpg123 to switch to this decoder.  The comparison on the author's web
page of some other mpeg decoders is an interesting read too...

Note that this can't be committed to pkgsrc because of the current
freeze in preparation for the 1.5 release.

Enjoy!
Simon.
--
Simon Burge                            <simonb@wasabisystems.com>
NetBSD Sales, Support and Service:  http://www.wasabisystems.com/



--- audio_sun.c.DIST	Mon Sep 11 11:55:54 2000
+++ audio_sun.c	Tue Sep 19 16:20:35 2000
@@ -29,6 +29,17 @@
 # include <sys/audioio.h>
 # include <errno.h>
 
+# ifdef __NetBSD__
+#  include <machine/endian.h>
+#  if BYTE_ORDER == LITTLE_ENDIAN
+#   define AUDIO_PCM_S16 audio_pcm_s16le
+#  endif
+# endif
+
+# if !defined(AUDIO_PCM_S16)
+#  define AUDIO_PCM_S16 audio_pcm_s16be
+# endif
+
 # include "mad.h"
 # include "audio.h"
 
@@ -105,7 +116,7 @@
   unsigned char data[MAX_NSAMPLES * 2 * 2];
   unsigned int len;
 
-  len = audio_pcm_s16be(data, play->nsamples,
+  len = AUDIO_PCM_S16(data, play->nsamples,
 			play->samples[0], play->samples[1], play->mode);
 
   return output(data, len);
--- libmad/imdct_l_arm.S.DIST	Mon Sep 18 05:52:18 2000
+++ libmad/imdct_l_arm.S	Wed Sep 20 21:48:23 2000
@@ -198,8 +198,10 @@
     .align
 
     .global III_imdct_l
+    .global _III_imdct_l
 
 III_imdct_l:
+_III_imdct_l:
 
     stmdb   sp!, { r2, r4 - r11, lr }   @ all callee saved regs, plus arg3