From bb11c3711a5bd683ea6308c0f9bd98d23cd1a88c Mon Sep 17 00:00:00 2001 From: arpi Date: Fri, 30 Nov 2001 23:13:05 +0000 Subject: 0x82 support git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3234 b3059339-0415-0410-9bf9-f77b7e298cf2 --- TOOLS/vivodump.c | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) (limited to 'TOOLS') diff --git a/TOOLS/vivodump.c b/TOOLS/vivodump.c index 54d107d4aa..c0c3417392 100644 --- a/TOOLS/vivodump.c +++ b/TOOLS/vivodump.c @@ -147,7 +147,7 @@ int c; unsigned int head=-1; int pos=0; int frames=0; -FILE *f=fopen("GB1.viv","rb"); +FILE *f=fopen("paulvandykforanangel.viv","rb"); FILE *f2=fopen("GB1.avi","wb"); aviwrite_t* avi=aviwrite_new_muxer(); aviwrite_stream_t* mux=aviwrite_new_stream(avi,AVIWRITE_TYPE_VIDEO); @@ -156,6 +156,7 @@ int i,len; int v_id=0; int flag=0; int flag2=0; +int prefix=0; mux->buffer_size=0x200000; mux->buffer=malloc(mux->buffer_size); @@ -181,7 +182,15 @@ for(i=0;i=0){ -// printf("%02X\n",c); + printf("%08X %02X\n",ftell(f),c); + + prefix=0; + if(c==0x82){ + prefix=1; + //continue; + c=fgetc(f); + printf("%08X %02X\n",ftell(f),c); + } if(c==0x00){ // header @@ -195,14 +204,18 @@ while((c=fgetc(f))>=0){ if((c&0xF0)==0x40){ // audio - printf("audio: %02X (24)\n",c); - for(i=0;i<24;i++) fgetc(f); + len=24; + if(prefix) len=fgetc(f); + printf("audio: %02X (%d)\n",c,len); + for(i=0;i=0){ if((v_id&0xF0)==0x10) fprintf(stderr,"hmm. last video packet %02X\n",v_id); } - v_id=c; flag2=0; if((c&0xF0)==0x10){ // 128 byte - printf("video: %02X (128)\n",c); - fread(mux->buffer+mux->buffer_len,128,1,f); - mux->buffer_len+=128; + len=128; + if(prefix) len=fgetc(f); + printf("video: %02X (%d)\n",c,len); + fread(mux->buffer+mux->buffer_len,len,1,f); + mux->buffer_len+=len; + v_id=c; continue; } if((c&0xF0)==0x20){ @@ -229,9 +244,11 @@ while((c=fgetc(f))>=0){ fread(mux->buffer+mux->buffer_len,len,1,f); mux->buffer_len+=len; flag2=1; + v_id=c; continue; } printf("error: %02X!\n",c); + exit(1); } if(!width) width=320; -- cgit v1.2.3