annotate mp3lib/test.c @ 9278:caea8ed36b48

The reason why mplayer crashes (in some cases) when using x11 output and -wid (>0) parameter is this: Mplayer by default creates a colormap using DirectColor visual. If the window given to mplayer uses TrueColor visual there will be an error when mplayer sets the colormap for the window. This patch modifies mplayer to use TrueColor visual if the window given to mplayer uses TrueColor. Another solution is to make sure that the window given to mplayer is created using DirectColor visual if it is supported by the display. Jouni Tulkki <jitulkki@cc.hut.fi>
author arpi
date Tue, 04 Feb 2003 18:31:44 +0000
parents 93304e7353c8
children 17554a75a654
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
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
15 static inline unsigned int GetTimer(){
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
16 struct timeval tv;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
17 struct timezone tz;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
18 // float s;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
19 gettimeofday(&tv,&tz);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
20 // s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
21 return (tv.tv_sec*1000000+tv.tv_usec);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
22 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
23
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
24 static FILE* mp3file=NULL;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
25
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
26 int mplayer_audio_read(char *buf,int size){
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
27 return fread(buf,1,size,mp3file);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
28 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
29
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
30 #define BUFFLEN 4608
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
31 static unsigned char buffer[BUFFLEN];
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
32
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
33 int main(int argc,char* argv[]){
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
34 int len;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
35 int total=0;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
36 unsigned int time1;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
37 float length;
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
38 #ifdef DUMP_PCM
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
39 FILE *f=NULL;
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
40 f=fopen("test.pcm","wb");
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
41 #endif
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
42
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
43 mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb");
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
44 if(!mp3file){ printf("file not found\n"); exit(1); }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
45
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
46 // MPEG Audio:
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
47 #ifdef USE_FAKE_MONO
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
48 MP3_Init(0);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
49 #else
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
50 MP3_Init();
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
51 #endif
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
52 MP3_samplerate=MP3_channels=0;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
53
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
54 time1=GetTimer();
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
55 while((len=MP3_DecodeFrame(buffer,-1))>0 && total<2000000){
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
56 total+=len;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
57 // play it
814
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
58 #ifdef DUMP_PCM
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
59 fwrite(buffer,len,1,f);
13805b1ca0f7 dump to file
arpi_esp
parents: 788
diff changeset
60 #endif
788
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
61 //putchar('.');fflush(stdout);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
62 }
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
63 time1=GetTimer()-time1;
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
64 length=(float)total/(float)(MP3_samplerate*MP3_channels*2);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
65 printf("\nDecoding time: %8.6f\n",(float)time1*0.000001f);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
66 printf("Uncompressed size: %d bytes (%8.3f secs)\n",total,length);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
67 printf("CPU usage at normal playback: %5.2f %\n",time1*0.0001f/length);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
68
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
69 fclose(mp3file);
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
70
214ea3f02d13 test.c added for benchmarking
arpi_esp
parents:
diff changeset
71 }