Mercurial > mplayer.hg
annotate TOOLS/avi-fix.c @ 21444:ce7567436cb0
Open vobsub output files in binary mode, otherwise the OS might
do all kinds of evil mangling to them (fixes bug #668).
author | reimar |
---|---|
date | Sun, 03 Dec 2006 11:23:04 +0000 |
parents | dd053aeb5442 |
children | d7ae37864b03 |
rev | line source |
---|---|
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
1 // avi-fix v0.1 (C) A'rpi, license GPL |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
2 // simple tool to fix chunk sizes in a RIFF AVI file |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
3 // it doesn't check/fix index, use mencoder -forceidx -oac copy -ovc copy to fix index! |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
4 |
17017 | 5 #include "config.h" |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
6 #ifdef MP_DEBUG |
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
7 #define mp_debug(...) printf(__VA_ARGS__) |
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
8 #else |
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
9 #define mp_debug(...) |
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
10 #endif |
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
11 |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
12 #include <stdio.h> |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
13 #include <stdlib.h> |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
14 //#include <string.h> |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
15 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
16 #define FCC(a,b,c,d) (((a)<<24)|((b)<<16)|((c)<<8)|(d)) |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
17 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
18 static inline xx(unsigned char c){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
19 if(c>=32 && c<128) return c; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
20 return '?'; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
21 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
22 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
23 static inline unsigned int getid(FILE* f){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
24 unsigned int id; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
25 id=fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
26 id=(id<<8)|fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
27 id=(id<<8)|fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
28 id=(id<<8)|fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
29 return id; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
30 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
31 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
32 int main(int argc,char* argv[]){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
33 //FILE* f=fopen("edgar.avi","rb"); // readonly (report errors) |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
34 //FILE* f=fopen("edgar.avi","rb+"); // fix mode (fix chunk sizes) |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
35 unsigned int lastgood=0; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
36 unsigned int fixat=0; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
37 unsigned int offset=0; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
38 int fix_flag=0; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
39 FILE* f; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
40 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
41 if(argc<=1){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
42 printf("Usage: %s [-fix] badfile.avi\n",argv[0]); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
43 exit(1); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
44 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
45 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
46 if(!strcmp(argv[1],"-fix")){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
47 fix_flag=1; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
48 f=fopen(argv[argc-1],"rb+"); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
49 } else |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
50 f=fopen(argv[argc-1],"rb"); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
51 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
52 if(!f){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
53 perror("error"); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
54 printf("couldnt open '%s'\n",argv[argc-1]); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
55 exit(2); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
56 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
57 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
58 while(1){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
59 unsigned int id,len; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
60 again: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
61 id=fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
62 id=(id<<8)|fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
63 id=(id<<8)|fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
64 faszom: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
65 if(feof(f)) break; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
66 // if(!lastgood && feof(f)) break; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
67 id=(id<<8)|fgetc(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
68 // lastgood=ftell(f); |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
69 mp_debug("%08X: %c%c%c%c\n",(int)ftell(f)-4,xx(id>>24),xx(id>>16),xx(id>>8),xx(id)); |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
70 switch(id){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
71 case FCC('R','I','F','F'): |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
72 fread(&len,4,1,f); // filesize |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
73 id=getid(f); // AVI |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
74 mp_debug("RIFF header, filesize=0x%X format=%c%c%c%c\n",len,xx(id>>24),xx(id>>16),xx(id>>8),xx(id)); |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
75 break; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
76 case FCC('L','I','S','T'): |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
77 fread(&len,4,1,f); // size |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
78 id=getid(f); // AVI |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
79 mp_debug("LIST size=0x%X format=%c%c%c%c\n",len,xx(id>>24),xx(id>>16),xx(id>>8),xx(id)); |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
80 //case FCC('h','d','r','l'): |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
81 //case FCC('s','t','r','l'): |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
82 //case FCC('o','d','m','l'): |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
83 //case FCC('m','o','v','i'): |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
84 break; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
85 // legal chunk IDs: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
86 case FCC('a','v','i','h'): // avi header |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
87 case FCC('s','t','r','h'): // stream header |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
88 case FCC('s','t','r','f'): // stream format |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
89 case FCC('J','U','N','K'): // official shit |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
90 // index: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
91 case FCC('i','d','x','1'): // main index?? |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
92 case FCC('d','m','l','h'): // opendml header |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
93 case FCC('i','n','d','x'): // opendml main index?? |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
94 case FCC('i','x','0','0'): // opendml sub index?? |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
95 case FCC('i','x','0','1'): // opendml sub index?? |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
96 // data: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
97 case FCC('0','1','w','b'): // audio track #1 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
98 case FCC('0','2','w','b'): // audio track #2 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
99 case FCC('0','3','w','b'): // audio track #3 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
100 case FCC('0','0','d','b'): // uncompressed video |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
101 case FCC('0','0','d','c'): // compressed video |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
102 case FCC('0','0','_','_'): // A-V interleaved (type2 DV file) |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
103 // info: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
104 case FCC('I','S','F','T'): // INFO: software |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
105 case FCC('I','S','R','C'): // INFO: source |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
106 case FCC('I','N','A','M'): // INFO: name |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
107 case FCC('I','S','B','J'): // INFO: subject |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
108 case FCC('I','A','R','T'): // INFO: artist |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
109 case FCC('I','C','O','P'): // INFO: copyright |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
110 case FCC('I','C','M','T'): // INFO: comment |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
111 lastgood=ftell(f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
112 if(fixat && fix_flag){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
113 // fix last chunk's size field: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
114 fseek(f,fixat,SEEK_SET); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
115 len=lastgood-fixat-8; |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
116 mp_debug("Correct len to 0x%X\n",len); |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
117 fwrite(&len,4,1,f); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
118 fseek(f,lastgood,SEEK_SET); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
119 fixat=0; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
120 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
121 fread(&len,4,1,f); // size |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
122 mp_debug("ID ok, chunk len=0x%X\n",len); |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
123 len+=len&1; // align at 2 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
124 fseek(f,len,SEEK_CUR); // skip data |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
125 break; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
126 default: |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
127 if(!lastgood){ |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
128 ++offset; |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
129 mp_debug("invalid ID, trying %d byte offset\n",offset); |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
130 goto faszom; // try again @ next post |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
131 } |
16234
31660114d885
silly printf() is the onyl reason avi-fix was so slow, a printf for
ods15
parents:
11924
diff
changeset
|
132 mp_debug("invalid ID, parsing next chunk's data at 0x%X\n",lastgood); |
11924
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
133 fseek(f,lastgood,SEEK_SET); |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
134 fixat=lastgood; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
135 lastgood=0; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
136 goto again; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
137 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
138 offset=0; |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
139 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
140 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
141 |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
142 } |
217d10ec0e18
avi-fix v0.1: simple tool to fix chunk sizes in a RIFF AVI file
arpi
parents:
diff
changeset
|
143 |