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. ![]() 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... ![]() 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" ...
|
![]() ![]() ![]() |
![]() |