Mercurial > mplayer.hg
annotate mp3lib/test.c @ 33140:d57654eb9f31
Add -benchmark to recommended fast dumping options.
author | reimar |
---|---|
date | Wed, 06 Apr 2011 17:49:15 +0000 |
parents | 4a3c8f6ab63a |
children |
rev | line source |
---|---|
30452
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
1 /* |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
2 * This file is part of MPlayer. |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
3 * |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
7 * (at your option) any later version. |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
8 * |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
12 * GNU General Public License for more details. |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
13 * |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
fee09b258e8a
Add missing license headers to test programs for external libraries.
diego
parents:
29717
diff
changeset
|
17 */ |
814 | 18 |
19 #define DUMP_PCM | |
788 | 20 |
21 #include <stdio.h> | |
22 #include <stdlib.h> | |
23 | |
24 #include <unistd.h> | |
25 #include <sys/time.h> | |
26 | |
26203 | 27 #include "config.h" |
31339
4a3c8f6ab63a
Add ad_mp3lib.h #include for the mplayer_audio_read prototype.
diego
parents:
31338
diff
changeset
|
28 #include "libmpcodecs/ad_mp3lib.h" |
788 | 29 #include "mp3lib/mp3.h" |
16989 | 30 #include "cpudetect.h" |
10372 | 31 |
28232
8df85ad26746
Add missing 'void' keyword to parameterless function declarations.
diego
parents:
27341
diff
changeset
|
32 static inline unsigned int GetTimer(void){ |
788 | 33 struct timeval tv; |
34 struct timezone tz; | |
35 // float s; | |
36 gettimeofday(&tv,&tz); | |
37 // s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec; | |
29717
afc8b80eb027
cosmetics: Remove some pointless parentheses from return calls.
diego
parents:
29263
diff
changeset
|
38 return tv.tv_sec * 1000000 + tv.tv_usec; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
39 } |
788 | 40 |
41 static FILE* mp3file=NULL; | |
42 | |
31338
4f1740bd1cb3
Revert marking mplayer_audio_read() as static; it is used from linked .o files.
diego
parents:
31330
diff
changeset
|
43 int mplayer_audio_read(char *buf, int size) |
31330
1c789a1ad0f0
Mark mplayer_audio_read() function as static; it is not used outside the file.
diego
parents:
30452
diff
changeset
|
44 { |
788 | 45 return fread(buf,1,size,mp3file); |
46 } | |
47 | |
48 #define BUFFLEN 4608 | |
49 static unsigned char buffer[BUFFLEN]; | |
50 | |
51 int main(int argc,char* argv[]){ | |
52 int len; | |
53 int total=0; | |
54 unsigned int time1; | |
55 float length; | |
814 | 56 #ifdef DUMP_PCM |
57 FILE *f=NULL; | |
58 f=fopen("test.pcm","wb"); | |
59 #endif | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
60 |
788 | 61 mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb"); |
62 if(!mp3file){ printf("file not found\n"); exit(1); } | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
63 |
10372 | 64 GetCpuCaps(&gCpuCaps); |
788 | 65 |
66 // MPEG Audio: | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26504
diff
changeset
|
67 #ifdef CONFIG_FAKE_MONO |
788 | 68 MP3_Init(0); |
69 #else | |
70 MP3_Init(); | |
71 #endif | |
72 MP3_samplerate=MP3_channels=0; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
73 |
788 | 74 time1=GetTimer(); |
814 | 75 while((len=MP3_DecodeFrame(buffer,-1))>0 && total<2000000){ |
788 | 76 total+=len; |
77 // play it | |
814 | 78 #ifdef DUMP_PCM |
79 fwrite(buffer,len,1,f); | |
80 #endif | |
788 | 81 //putchar('.');fflush(stdout); |
82 } | |
83 time1=GetTimer()-time1; | |
84 length=(float)total/(float)(MP3_samplerate*MP3_channels*2); | |
85 printf("\nDecoding time: %8.6f\n",(float)time1*0.000001f); | |
86 printf("Uncompressed size: %d bytes (%8.3f secs)\n",total,length); | |
10372 | 87 printf("CPU usage at normal playback: %5.2f %%\n",time1*0.0001f/length); |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
88 |
788 | 89 fclose(mp3file); |
26502 | 90 return 0; |
788 | 91 } |