changeset 789:989b921361d0

test2 added for playback test, testreanmed to test1 to make Atmosfear happy...
author arpi_esp
date Sun, 13 May 2001 19:18:52 +0000
parents 214ea3f02d13
children 6a49986251d0
files mp3lib/Makefile mp3lib/test2.c
diffstat 2 files changed, 73 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mp3lib/Makefile	Sun May 13 18:58:23 2001 +0000
+++ b/mp3lib/Makefile	Sun May 13 19:18:52 2001 +0000
@@ -18,8 +18,11 @@
 libMP3.a:	.depend $(OBJS)
 	$(AR) r libMP3.a $(OBJS)
 
-test:	libMP3.a test.c
-	$(CC) $(CFLAGS) test.c -o test -I.. -L. -lMP3
+test1:	libMP3.a test.c
+	$(CC) $(CFLAGS) test.c -o test1 -I.. -L. -lMP3
+
+test2:	libMP3.a test2.c
+	$(CC) $(CFLAGS) test2.c -o test2 -I.. -L. -lMP3
 
 all:	libMP3.a
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mp3lib/test2.c	Sun May 13 19:18:52 2001 +0000
@@ -0,0 +1,68 @@
+
+// gcc test.c -I.. -L. -lMP3 -o test -O4
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <unistd.h>
+#include <sys/soundcard.h>
+
+#include "mp3lib/mp3.h"
+#include "config.h"
+
+static FILE* mp3file=NULL;
+
+int mplayer_audio_read(char *buf,int size){
+    return fread(buf,1,size,mp3file);
+}
+
+#define BUFFLEN 4608
+static unsigned char buffer[BUFFLEN];
+
+int main(int argc,char* argv[]){
+  int len;
+  int total=0;
+  float length;
+  int r;
+  int audio_fd;
+  
+  mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb");
+  if(!mp3file){  printf("file not found\n");  exit(1); }
+
+  // MPEG Audio:
+#ifdef USE_FAKE_MONO
+  MP3_Init(0);
+#else
+  MP3_Init();
+#endif
+  MP3_samplerate=MP3_channels=0;
+  len=MP3_DecodeFrame(buffer,-1);
+  
+  audio_fd=open("/dev/dsp", O_WRONLY);
+  if(audio_fd<0){  printf("Can't open audio device\n");exit(1); }
+  r=AFMT_S16_LE;ioctl (audio_fd, SNDCTL_DSP_SETFMT, &r);
+  r=MP3_channels-1;ioctl (audio_fd, SNDCTL_DSP_STEREO, &r);
+  r=MP3_samplerate;ioctl (audio_fd, SNDCTL_DSP_SPEED, &r);
+  printf("audio_setup: using %d Hz samplerate (requested: %d)\n",r,MP3_samplerate);
+  
+  while(1){
+      int len2;
+      if(len==0) len=MP3_DecodeFrame(buffer,-1);
+      if(len<=0) break; // EOF
+      
+      // play it
+      len2=write(audio_fd,buffer,len);
+      if(len2<0) break; // ERROR?
+      len-=len2; total+=len2;
+      if(len>0){
+          // this shouldn't happen...
+          memcpy(buffer,buffer+len2,len);
+          putchar('!');fflush(stdout);
+      }
+  }
+  
+  fclose(mp3file);
+  
+}