All of lore.kernel.org
 help / color / mirror / Atom feed
* mpg123 hack
@ 1999-04-06  2:33 Ulf Carlsson
       [not found] ` <37096F0C.64AE42F2@foo.tho.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Ulf Carlsson @ 1999-04-06  2:33 UTC (permalink / raw)
  To: Linux SGI

Hi,

I know this is silly and you don't care about it, but I've patched mpg123 so
that I can play mp3's without generating wav files in between :-). Maybe you say
that I should fix my poor HAL2 driver instead - I will...

About the noise:

I have done some testing with mpg123. The HAL2 is, to say the least, acting
weird. I found that only every other sample is played, and the other ones are
dumped.

Ok now to the really really weird part: If I play audio on the samples which are
dumped and zeros on the ones which are played I can hear this silly noise in the
speakers. If I do not play anything, zeros in both channels, it's death quiet
(although the DMA is acting and the HAL2 is playing the zeros). If I play zeros
on the dumped channel and audio on the other one I can hear this noise again.

Hum, I have been looking at this noise problem for nearly two days now without
any progress. Testing one thing the other with no effect. Quite boring, I'll
hack something else tomorrow..

- Ulf

diff -ur mpg123-0.59q-orig/Makefile mpg123-0.59q/Makefile
--- mpg123-0.59q-orig/Makefile	Tue Jan 26 14:35:18 1999
+++ mpg123-0.59q/Makefile	Tue Jan 18 03:26:46 2000
@@ -56,7 +56,7 @@
 	@echo "make linux-nas      Linux, output to Network Audio System"
 	@echo "make linux-sparc    Linux/Sparc"
 	@echo "make linux-sajber   Linux, build binary for Sajber Jukebox frontend"
-	@echo "make linux-alsa     Linux with ALSA sound driver"
+	@echo "make linux-mips-alsa Linux/MIPS with ALSA sound driver"
 	@echo ""
 	@echo "make linux-esd      Linux, output to EsounD"
 	@echo "make linux-alpha-esd Linux/Alpha, output to EsounD"
@@ -148,6 +148,17 @@
 		CFLAGS='-DI386_ASSEM -DREAL_IS_FLOAT -DPENTIUM_OPT -DLINUX \
 			-DREAD_MMAP -DALSA \
 			-Wall \
+			-fomit-frame-pointer -funroll-all-loops \
+			-finline-functions -ffast-math \
+			$(RPM_OPT_FLAGS)' \
+		mpg123-make
+
+linux-mips-alsa:
+	$(MAKE) CC=gcc LDFLAGS= \
+		AUDIO_LIB='-lasound' \
+		OBJECTS='decode.o dct64.o audio_alsa.o' \
+		CFLAGS='-DLINUX -DREAD_MMAP -DSWAP_BYTES -DREAL_IS_FLOAT \
+			-DALSA -Wall -O2 \
 			-fomit-frame-pointer -funroll-all-loops \
 			-finline-functions -ffast-math \
 			$(RPM_OPT_FLAGS)' \
diff -ur mpg123-0.59q-orig/audio_alsa.c mpg123-0.59q/audio_alsa.c
--- mpg123-0.59q-orig/audio_alsa.c	Fri Nov 27 11:16:58 1998
+++ mpg123-0.59q/audio_alsa.c	Tue Jan 18 03:24:40 2000
@@ -182,8 +182,24 @@
 int audio_play_samples(struct audio_info_struct *ai,unsigned char *buf,int len)
 {
 	ssize_t ret;
+#ifdef SWAP_BYTES
+	int samples = len >> 1; /* will only work in 16 bit mode .. */
+	unsigned short *sample = (unsigned short *) buf;
+	static unsigned short *swap_buf = NULL;
 
+	if (!swap_buf)
+		swap_buf = (unsigned short *) malloc(len);
+
+	while (samples--) {
+		swap_buf[samples] =
+			(((sample[samples] & 0x00ff) << 8) |
+			((sample[samples] & 0xff00) >> 8));
+	}
+
+	ret=snd_pcm_write(ai->handle, swap_buf, len);
+#else
 	ret=snd_pcm_write(ai->handle, buf, len);
+#endif
 
 	return ret;
 }

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~1999-04-06 12:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1999-04-06  2:33 mpg123 hack Ulf Carlsson
     [not found] ` <37096F0C.64AE42F2@foo.tho.org>
1999-04-06 12:28   ` Ulf Carlsson
1999-04-06 12:47   ` Ulf Carlsson
1999-04-06 12:05     ` Alan Cox
1999-04-06 12:05       ` Alan Cox

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.