VideoTexture: reactivate VideoTexture for scons/cmake/makefile compilation systems...
authorBenoit Bolsee <benoit.bolsee@online.be>
Thu, 5 Mar 2009 15:16:43 +0000 (15:16 +0000)
committerBenoit Bolsee <benoit.bolsee@online.be>
Thu, 5 Mar 2009 15:16:43 +0000 (15:16 +0000)
commitab8e9ba3dd54fe8781f763644b882bbcb8cc7e8d
tree2ceb3db96d4e00ba6ce72e5421c57ce5b913f8b7
parent7b197fcfdda39a3016efe4179ab9c67e2224f6a3
VideoTexture: reactivate VideoTexture for scons/cmake/makefile compilation systems, fix video streaming, fix camera support in Linux, add multi-thread cache service, fix crash when a VideoFFmpeg object could not be created.

The multi-thread cache service is activated only on multi-core processors.
It consists in loading, decoding and caching the video frames in a
separate thread. The cache size is 5 decoded frames and 30 raw frames.
Note that the opening of video file/stream/camera is not multi-thread:
you will still experience a delay at the VideoFFmpeg object creation.
Processing of the video frame (resize, loading to texture) is still done
in the main thread.  Caching is automatically enabled for video file,
video streaming and video camera.

Video streaming now works correctly: the videos frames are loaded
at the correct rate. Network delays and frequency drifts are automatically
compensated.
Note: an http video source is always treated as a streaming source,
even though the http protocol allows seeking. For the user it means that
he cannot define start/stop range and cannot restart the video except
by reopening the source. Pause/play is however possible.

Video camera is now correctly handled on Linux: it will not slow down the BGE.
A video camera is treated as a streaming source.
source/gameengine/BlenderRoutines/CMakeLists.txt
source/gameengine/BlenderRoutines/Makefile
source/gameengine/BlenderRoutines/SConscript
source/gameengine/VideoTexture/CMakeLists.txt
source/gameengine/VideoTexture/Makefile
source/gameengine/VideoTexture/SConscript
source/gameengine/VideoTexture/VideoFFmpeg.cpp
source/gameengine/VideoTexture/VideoFFmpeg.h