annotate mp3lib/test.c @ 10409:4c9ca4819bed

Commands are read in a loop, but for some commands we need to break the loop to finish processing the command. Otherwise some commands may appears as skiped to the user.
author albeu
date Fri, 11 Jul 2003 07:54:52 +0000
parents 17554a75a654
children e7a129082fda
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
1
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
2 #define DUMP_PCM
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
3
826
93304e7353c8 Added missing mathlib for linking.
atmosfear
parents: 814
diff changeset
4 // gcc test.c -I.. -L. -lMP3 -lm -o test1 -O4
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
5
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
6 #include <stdio.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
7 #include <stdlib.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
8
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
9 #include <unistd.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
10 #include <sys/time.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
11
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
12 #include "mp3lib/mp3.h"
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
13 #include "config.h"
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
14
10372
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
15 #include "../cpudetect.h"
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
16 extern CpuCaps gCpuCaps;
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
17
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
18 static inline unsigned int GetTimer(){
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
19 struct timeval tv;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
20 struct timezone tz;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
21 // float s;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
22 gettimeofday(&tv,&tz);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
23 // s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
24 return (tv.tv_sec*1000000+tv.tv_usec);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
25 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
26
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
27 static FILE* mp3file=NULL;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
28
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
29 int mplayer_audio_read(char *buf,int size){
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
30 return fread(buf,1,size,mp3file);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
31 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
32
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
33 #define BUFFLEN 4608
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
34 static unsigned char buffer[BUFFLEN];
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
35
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
36 int main(int argc,char* argv[]){
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
37 int len;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
38 int total=0;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
39 unsigned int time1;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
40 float length;
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
41 #ifdef DUMP_PCM
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
42 FILE *f=NULL;
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
43 f=fopen("test.pcm","wb");
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
44 #endif
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
45
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
46 mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb");
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
47 if(!mp3file){ printf("file not found\n"); exit(1); }
10372
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
48
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
49 GetCpuCaps(&gCpuCaps);
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
50
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
51 // MPEG Audio:
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
52 #ifdef USE_FAKE_MONO
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
53 MP3_Init(0);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
54 #else
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
55 MP3_Init();
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
56 #endif
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
57 MP3_samplerate=MP3_channels=0;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
58
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
59 time1=GetTimer();
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
60 while((len=MP3_DecodeFrame(buffer,-1))>0 && total<2000000){
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
61 total+=len;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
62 // play it
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
63 #ifdef DUMP_PCM
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
64 fwrite(buffer,len,1,f);
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
65 #endif
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
66 //putchar('.');fflush(stdout);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
67 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
68 time1=GetTimer()-time1;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
69 length=(float)total/(float)(MP3_samplerate*MP3_channels*2);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
70 printf("\nDecoding time: %8.6f\n",(float)time1*0.000001f);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
71 printf("Uncompressed size: %d bytes (%8.3f secs)\n",total,length);
10372
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
72 printf("CPU usage at normal playback: %5.2f %%\n",time1*0.0001f/length);
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
73
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
74 fclose(mp3file);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
75
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
76 }