X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=mp3read.c;h=0236f317d832d3918916c7de89a78c13433ef66c;hb=8369381b57a8816178630db41390da318faa6403;hp=dd61d86f175bf87f909fdcfa3f68ccefe2790635;hpb=86da6d4566b8433c0d628545e4551ce500ce67c8;p=my-code%2Fmp3db.git diff --git a/mp3read.c b/mp3read.c index dd61d86..0236f31 100644 --- a/mp3read.c +++ b/mp3read.c @@ -6,29 +6,58 @@ #include #include #include +#include #define MAX_READ 1024 -#define MAX_FILENAME 256 +#define MAX_FILENAME 32 +#define MAX_VER_ID 64 + +/* +info: +http://www.dv.co.yu/mpgscript/mpeghdr.htm +*/ int main (int argc,char **argv) { - int file_fd; /* desc fir file */ - char buf[MAX_READ]; /* buffer for the actual info */ + int file_fd,exit,count; + unsigned char buf; + unsigned char header[3]; + char mpeg_ver_id[MAX_VER_ID]; char filename[MAX_FILENAME]; - strcpy(argv[1],filename); + strcpy(filename,argv[1]); if((file_fd=open(filename,O_RDONLY))<=0) { puts("open failed"); return -23; } - if((read(file_fd,&buf,MAX_READ))<=MAX_READ) { - puts("read failed"); - return -23; + count=0; + exit=0; + while(!exit) { + printf("count=%d\n",count++); + read(file_fd,&buf,1); + if(buf==0xff) { + read(file_fd,&buf,1); + if(buf>=0xe0) { + puts("got frame header:"); + exit=1; + header[0]=buf; + read(file_fd,header+1,2); + + printf("debug: %x%x%x \n",header[0],header[1],header[2]); + + if(((header[0]&0x18)>>3)==0x00) strcpy(mpeg_ver_id,"MPEG Version 2.5"); + else if(((header[0]&0x18)>>3)==0x10) strcpy(mpeg_ver_id,"MPEG Version 2 (ISO/IEC 13818-3)"); + else if(((header[0]&0x18)>>3)==0x11) strcpy(mpeg_ver_id,"MPEG Version 1 (ISO/IEC 11172-3)"); + else strcpy(mpeg_ver_id,"unknown"); + + printf("version: %s\n",mpeg_ver_id); + } + } } - printf(" -> %s",buf); + close(file_fd); puts(""); puts("done");