ab8e9ba3dd
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.
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
#!/usr/bin/python
|
|
import sys
|
|
|
|
Import ('env')
|
|
|
|
sources = env.Glob('*.cpp')
|
|
|
|
incs = '. #source/gameengine/Ketsji #source/gameengine/Expressions'
|
|
incs += ' #source/gameengine/GameLogic #source/gameengine/SceneGraph #source/gameengine/Rasterizer'
|
|
incs += ' #source/gameengine/Rasterizer/RAS_OpenGLRasterizer'
|
|
incs += ' #source/gameengine/BlenderRoutines'
|
|
incs += ' #source/blender/include #source/blender/blenlib #source/blender/blenkernel'
|
|
incs += ' #source/blender/makesdna #source/blender/imbuf #source/blender/python'
|
|
incs += ' #source/blender/gpu #source/kernel/gen_system #intern/string #intern/moto/include'
|
|
incs += ' #intern/guardedalloc #intern/SoundSystem'
|
|
incs += ' #extern/glew/include'
|
|
|
|
defs = ''
|
|
cxxflags = []
|
|
if env['OURPLATFORM']=='win32-vc':
|
|
cxxflags.append ('/GR')
|
|
cxxflags.append ('/O2')
|
|
|
|
|
|
incs += ' ' + env['BF_PYTHON_INC']
|
|
#incs += ' ' + env['BF_OPENGL_INC']
|
|
|
|
if env['WITH_BF_FFMPEG']:
|
|
defs += ' WITH_FFMPEG'
|
|
incs += ' ' + env['BF_FFMPEG_INC'] + ' ' + env['BF_PTHREADS_INC']
|
|
defs += ' __STDC_CONSTANT_MACROS'
|
|
|
|
env.BlenderLib ( 'bf_videotex', sources, Split(incs), Split(defs), libtype=['game','player'], priority=[25, 72], cxx_compileflags = cxxflags )
|