We are making the third version of our Video Editing software called AVIMGen3, in C++ (6.0 or .NET, same compiler almost). The program is mostly done but so far it can not save in any formats. It can import .avi files but we are stuck on nothing but things like pointers to arrays of pointers, which don't seem to be working out. Basically I need someone to fix the .avi export code which uses the AVIFile32 library defined in vfw.h The same thing is true with premiere filmstrip file format and this can be downloaded freely on the net. We have the basic structure for import/export of this but it needs to again, be fixed. These formats are in the attatched .zip file If you can code in more formats (eg, .mov .mpeg NOT .asf), please feel free to charge a little extra, and list the formats for us so we can justify your price increase. Remember we are just after single functions to deal with the individual frame data which is below.
## Deliverables
Complete and fully-functional plain clean commented c++ source code functions (no mfc, only pure win32 api) of all work done. MUST WORK in the program with the specifications above and below. If it does not quite work I am willing to discuss the problems with the coder if we can't fix it. Complete copyrights to all work purchased. If all goes well we may consider getting the coder to work on import formats for AV3, probably of the save file types. Below are the public variables which you need to use. Note there needs to be some way of saving (if the format supports) as double precision (the program uses this) or float frames per second value. In avi this is defined as rate/scale, so some clever maths will be needed. long TotalFrames; //total # of frames in animation char FilName[MAX_PATH]; //temp. filename for saving and loading across functions long FWidth, FHeight; //frame width and height double FPS; //current FPS of animation AVIMGen3 stores each frames' RGB image data in memory. Every frame is consecutive with no extra space. The size of 1 frame in memory is easy to calculate in bytes because it is FWidth * FHeight * 3; the 3 is for red green and blue bytes for each pixel. There is no alpha pixel in the allocated memory. lpFrames is a pointer value, not a pointer to a pointer. So to get to any specified frame's datae: (LPBYTE)(lpFrames + i * FWidth * FHeight * 3); Where i is the frame number starting from 0 and going to a maximum of TotalFrames-1 variable. (If there is 1 frame TotalFrames=1, I _think_.) Framerate has to be accurately saved, and the finished windows file that will be created fromt the frames in memory must work in it's default program. (avi=media player, flm filmstrip = premiere 6) The user has to be able to select as many options about compression as the format supports before the file is written. There should also be error checking and handling so the function can return false. Good luck! Remember to study the attatched formats. The asm code in the filmstrip code shouldnt be needed according to the docs, so feel free to study them yourself. [login to view URL] has some good general file format specifications, but is slightly outdated. If anyone can code mpeg from scratch with no dlls (or code a dll) we will pay a lot more.
## Platform
The program will need to run on these operating systems without runtimes: Windows 95 (if possible) Windows 98 Windows ME Windows 2000 Windows XP
## Deadline information
We will pay half straight away and the rest when the coder sends final code. Only bid if you can do it. Feel free to send progress of the programming.