annotate mp3lib/test.c @ 32282:606e4157cd4c

Split alloc and init of context so that parameters can be set in the context instead of requireing being passed through function parameters. This also makes sws work with AVOptions.
author michael
date Sun, 26 Sep 2010 19:33:57 +0000
parents 4a3c8f6ab63a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
18
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
19 #define DUMP_PCM
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
20
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
21 #include <stdio.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
22 #include <stdlib.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
23
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
24 #include <unistd.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
25 #include <sys/time.h>
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
26
26203
0d255d03016f #include config.h before all other headers.
diego
parents: 16989
diff changeset
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
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
29 #include "mp3lib/mp3.h"
16989
e7a129082fda Unify include paths, -I.. is in CFLAGS.
diego
parents: 10372
diff changeset
30 #include "cpudetect.h"
10372
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
31
28232
8df85ad26746 Add missing 'void' keyword to parameterless function declarations.
diego
parents: 27341
diff changeset
32 static inline unsigned int GetTimer(void){
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
33 struct timeval tv;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
34 struct timezone tz;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
35 // float s;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
36 gettimeofday(&tv,&tz);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
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
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
40
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
41 static FILE* mp3file=NULL;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
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
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
45 return fread(buf,1,size,mp3file);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
46 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
47
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
48 #define BUFFLEN 4608
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
49 static unsigned char buffer[BUFFLEN];
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
50
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
51 int main(int argc,char* argv[]){
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
52 int len;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
53 int total=0;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
54 unsigned int time1;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
55 float length;
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
56 #ifdef DUMP_PCM
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
57 FILE *f=NULL;
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
58 f=fopen("test.pcm","wb");
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
59 #endif
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28232
diff changeset
60
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
61 mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb");
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
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
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
64 GetCpuCaps(&gCpuCaps);
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
65
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
66 // MPEG Audio:
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26504
diff changeset
67 #ifdef CONFIG_FAKE_MONO
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
68 MP3_Init(0);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
69 #else
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
70 MP3_Init();
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
71 #endif
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
72 MP3_samplerate=MP3_channels=0;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28232
diff changeset
73
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
74 time1=GetTimer();
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
75 while((len=MP3_DecodeFrame(buffer,-1))>0 && total<2000000){
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
76 total+=len;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
77 // play it
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
78 #ifdef DUMP_PCM
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
79 fwrite(buffer,len,1,f);
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
80 #endif
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
81 //putchar('.');fflush(stdout);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
82 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
83 time1=GetTimer()-time1;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
84 length=(float)total/(float)(MP3_samplerate*MP3_channels*2);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
85 printf("\nDecoding time: %8.6f\n",(float)time1*0.000001f);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
86 printf("Uncompressed size: %d bytes (%8.3f secs)\n",total,length);
10372
17554a75a654 getcpucaps support
alex
parents: 826
diff changeset
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
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
89 fclose(mp3file);
26502
b3661a203f8b Add return statement, fixes the warning:
diego
parents: 26501
diff changeset
90 return 0;
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
91 }