Dev:Source/Sequencer/Integrate

提供: wiki
移動先: 案内検索

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