Mercurial > mplayer.hg
annotate mp3lib/test.c @ 30272:c6c40936049c
We only need to disable seeking back in ad_ffmpeg when we actually _use_
a parser, not when just needs_parsing is set.
Fixes playback of e.g. ADPCM in AVI like http://samples.mplayerhq.hu/avi/imaadpcm.avi
author | reimar |
---|---|
date | Fri, 15 Jan 2010 21:01:31 +0000 |
parents | afc8b80eb027 |
children | fee09b258e8a |
rev | line source |
---|---|
814 | 1 |
2 #define DUMP_PCM | |
788 | 3 |
4 #include <stdio.h> | |
5 #include <stdlib.h> | |
6 | |
7 #include <unistd.h> | |
8 #include <sys/time.h> | |
9 | |
26203 | 10 #include "config.h" |
788 | 11 #include "mp3lib/mp3.h" |
16989 | 12 #include "cpudetect.h" |
10372 | 13 |
28232
8df85ad26746
Add missing 'void' keyword to parameterless function declarations.
diego
parents:
27341
diff
changeset
|
14 static inline unsigned int GetTimer(void){ |
788 | 15 struct timeval tv; |
16 struct timezone tz; | |
17 // float s; | |
18 gettimeofday(&tv,&tz); | |
19 // 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
|
20 return tv.tv_sec * 1000000 + tv.tv_usec; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
21 } |
788 | 22 |
23 static FILE* mp3file=NULL; | |
24 | |
25 int mplayer_audio_read(char *buf,int size){ | |
26 return fread(buf,1,size,mp3file); | |
27 } | |
28 | |
29 #define BUFFLEN 4608 | |
30 static unsigned char buffer[BUFFLEN]; | |
31 | |
32 int main(int argc,char* argv[]){ | |
33 int len; | |
34 int total=0; | |
35 unsigned int time1; | |
36 float length; | |
814 | 37 #ifdef DUMP_PCM |
38 FILE *f=NULL; | |
39 f=fopen("test.pcm","wb"); | |
40 #endif | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
41 |
788 | 42 mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb"); |
43 if(!mp3file){ printf("file not found\n"); exit(1); } | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
44 |
10372 | 45 GetCpuCaps(&gCpuCaps); |
788 | 46 |
47 // MPEG Audio: | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
26504
diff
changeset
|
48 #ifdef CONFIG_FAKE_MONO |
788 | 49 MP3_Init(0); |
50 #else | |
51 MP3_Init(); | |
52 #endif | |
53 MP3_samplerate=MP3_channels=0; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28232
diff
changeset
|
54 |
788 | 55 time1=GetTimer(); |
814 | 56 while((len=MP3_DecodeFrame(buffer,-1))>0 && total<2000000){ |
788 | 57 total+=len; |
58 // play it | |
814 | 59 #ifdef DUMP_PCM |
60 fwrite(buffer,len,1,f); | |
61 #endif | |
788 | 62 //putchar('.');fflush(stdout); |
63 } | |
64 time1=GetTimer()-time1; | |
65 length=(float)total/(float)(MP3_samplerate*MP3_channels*2); | |
66 printf("\nDecoding time: %8.6f\n",(float)time1*0.000001f); | |
67 printf("Uncompressed size: %d bytes (%8.3f secs)\n",total,length); | |
10372 | 68 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
|
69 |
788 | 70 fclose(mp3file); |
26502 | 71 return 0; |
788 | 72 } |