Dev:Source/Sequencer/Integrate
Render Process
- 1. Render Button Pressed*
- 2. BIF_do_render (renderwin.c)
- 3. do_render (renderwin.c)
- 4. RE_animrender (initrender.c)
- 5. SGI->start_movie -> write frame -> close movie (writemovie.c)
- 5. WIN->start_avi_codec -> write frame -> close movie (writeavicodec.c)
- 5. Quicktime->start_qt -> write frame -> close movie (quicktime_export.c)
- 5. other->start_avi -> write frame -> close movie (writeavi.c)
The new audio/video code needs to encapsulate step 5 of the process and provide a single interface to that. In essence make a 6th step. I propose a function for each of the open/append/close steps that has the platform specific code in it. This should clean up the render code a bit, and allow for a separation of the render code and the movie writing code. The new process would look like this:
- 1. Render Button Pressed*
- 2. BIF_do_render (renderwin.c)
- 3. do_render (renderwin.c)
- 4. RE_animrender (initrender.c)
- 5. Open movie -> write frame -> close movie (newfile.c)
- 6. If SGI then SGI->start_movie -> write frame -> close movie (writemovie.c)
- 6. if WIN then WIN->start_avi_codec -> write frame -> close movie (writeavicodec.c)
- 6. if Quicktime then Quicktime->start_qt -> write frame -> close movie (quicktime_export.c)
- 6. if baseline then baseline->start_avi -> write frame -> close movie (writeavi.c)
I've started working on the code to add the abstraction layer for step 5 calls. It's going to be created in a new Blender library prefixed with BAV (BlenderAudioVideo). I plan on consolodating all the blender calls for loading/saving pictures, video, and audio. All the platform dependent code will be moved to this library to simply the Blender code.
-- RobertHolcomb - 30 May 2005