For submit/view bug reports, feature
requests, patch files and support requests, please follow
this
link.
You can also create and update Translations. Please look at
WiKi pages.
DivFix++ initially checks for "AVI LIST"
identifier.
Because it couldn't convert a zip file to avi file of course :)
Than copy all headers to target file (to the "movi" chunk) and scan
00dc, 01wb and 00db chunks in avi file. It counts them and copies
correct frames to target file sequentially. It also generates "index"
table by this process. After reaching "idx1" chunk or end of file, it
merges index table with target file. After this it adjust headers some
variables and some chunks "size"s. If there are missing frames (of
course there are missing frames if you
use this program :) ) avi, stream and OpenDML headers frame counts will
be corrupt (different than actual frame counts.) It makes errors/bugs
at scanning avi file. They must be corrected. Movie size
will shrink
if you want to cut out bad parts from AVI.
Because of this AVI size, "movi" chunk size and index part's location
will be change. A program has to be adjust all of this variables...
RIFF means
"Resource
Interchange File Format".
It has a basic structure. "ID,Size,Chunk"
This "chunk" could be recursive, means chunk could be a RIFF structure too.
This makes things little complex...
A standard AVI file is close to this format:
RIFF "size" AVI
LIST "size"
hdrl avih
"size=56" ...
LIST "size"
strl strh
"size" ...
strf
"size" ...
JUNK
"size" ...
LIST "size"
strl strh
"size" ...
strf
"size" ...
JUNK
"size" ...
LIST "size"
odml dmlh
"size" ...
LIST "size" ...
INFO ISFT
"size" ...
JUNK
"size" ...
LIST "size" movi
01wb
"size" ...
00dc
"size" ...
00db
"size" ...
....
....
....
idx1 "size"
01wb
"key" "location" "size"
00dc
"key" "location" "size"
00db
"key" "location" "size"
JUNK "size" ...