[Bf-blender-cvs] [ef0d8bf] experimental-build: Revert "Decklink test - 3rd attempt to fix atomic-ops"

Benoit Bolsee noreply at git.blender.org
Thu May 19 17:34:32 CEST 2016


Commit: ef0d8bffc69d6461313cf8367281840ad532fda2
Author: Benoit Bolsee
Date:   Thu May 19 17:33:32 2016 +0200
Branches: experimental-build
https://developer.blender.org/rBef0d8bffc69d6461313cf8367281840ad532fda2

Revert "Decklink test - 3rd attempt to fix atomic-ops"

This reverts commit d65c58e17d155f9c2b54dbfd49872962c218a5d4.

Conflicts:
	intern/atomic/intern/atomic_ops_utils.h
	source/gameengine/VideoTexture/DeckLink.cpp
	source/gameengine/VideoTexture/VideoDeckLink.cpp

===================================================================

M	CMakeLists.txt
M	build_files/cmake/macros.cmake
D	doc/python_api/examples/bge.texture.2.py
M	doc/python_api/rst/bge.logic.rst
M	doc/python_api/rst/bge.render.rst
M	doc/python_api/rst/bge.texture.rst
M	doc/python_api/rst/bge_types/bge.types.BL_Shader.rst
M	intern/CMakeLists.txt
M	intern/atomic/intern/atomic_ops_unix.h
M	intern/atomic/intern/atomic_ops_utils.h
D	intern/decklink/CMakeLists.txt
D	intern/decklink/DeckLinkAPI.cpp
D	intern/decklink/DeckLinkAPI.h
D	intern/decklink/linux/DeckLinkAPI.h
D	intern/decklink/linux/DeckLinkAPIConfiguration.h
D	intern/decklink/linux/DeckLinkAPIConfiguration_v10_2.h
D	intern/decklink/linux/DeckLinkAPIDeckControl.h
D	intern/decklink/linux/DeckLinkAPIDiscovery.h
D	intern/decklink/linux/DeckLinkAPIDispatch.cpp
D	intern/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp
D	intern/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp
D	intern/decklink/linux/DeckLinkAPIModes.h
D	intern/decklink/linux/DeckLinkAPITypes.h
D	intern/decklink/linux/DeckLinkAPIVersion.h
D	intern/decklink/linux/DeckLinkAPI_v10_2.h
D	intern/decklink/linux/DeckLinkAPI_v7_1.h
D	intern/decklink/linux/DeckLinkAPI_v7_3.h
D	intern/decklink/linux/DeckLinkAPI_v7_6.h
D	intern/decklink/linux/DeckLinkAPI_v7_9.h
D	intern/decklink/linux/DeckLinkAPI_v8_0.h
D	intern/decklink/linux/DeckLinkAPI_v8_1.h
D	intern/decklink/linux/DeckLinkAPI_v9_2.h
D	intern/decklink/linux/DeckLinkAPI_v9_9.h
D	intern/decklink/linux/LinuxCOM.h
D	intern/decklink/win/DeckLinkAPI_h.h
D	intern/decklink/win/DeckLinkAPI_i.c
M	intern/ghost/CMakeLists.txt
M	intern/ghost/GHOST_ISystem.h
M	intern/ghost/GHOST_Types.h
M	intern/ghost/intern/GHOST_ContextGLX.cpp
M	intern/ghost/intern/GHOST_ContextGLX.h
M	intern/ghost/intern/GHOST_ContextWGL.cpp
M	intern/ghost/intern/GHOST_ContextWGL.h
M	intern/ghost/intern/GHOST_System.cpp
M	intern/ghost/intern/GHOST_System.h
M	intern/ghost/intern/GHOST_SystemWin32.cpp
M	intern/ghost/intern/GHOST_SystemX11.cpp
M	intern/ghost/intern/GHOST_WindowWin32.cpp
M	intern/ghost/intern/GHOST_WindowWin32.h
M	intern/ghost/intern/GHOST_WindowX11.cpp
M	intern/ghost/intern/GHOST_WindowX11.h
D	intern/gpudirect/CMakeLists.txt
D	intern/gpudirect/dvpapi.cpp
D	intern/gpudirect/dvpapi.h
M	intern/moto/include/MT_Matrix4x4.h
M	source/blender/gpu/GPU_texture.h
M	source/blender/gpu/intern/gpu_framebuffer.c
M	source/blender/gpu/intern/gpu_texture.c
M	source/blender/python/generic/bgl.c
M	source/blenderplayer/CMakeLists.txt
M	source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
M	source/gameengine/GamePlayer/ghost/GPG_Application.cpp
M	source/gameengine/GamePlayer/ghost/GPG_Application.h
M	source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
M	source/gameengine/Ketsji/BL_Shader.cpp
M	source/gameengine/Ketsji/BL_Shader.h
M	source/gameengine/Ketsji/KX_Dome.cpp
M	source/gameengine/Ketsji/KX_KetsjiEngine.cpp
M	source/gameengine/Ketsji/KX_KetsjiEngine.h
M	source/gameengine/Ketsji/KX_PythonInit.cpp
M	source/gameengine/Ketsji/KX_Scene.cpp
M	source/gameengine/Ketsji/KX_Scene.h
M	source/gameengine/Rasterizer/CMakeLists.txt
D	source/gameengine/Rasterizer/RAS_IOffScreen.h
M	source/gameengine/Rasterizer/RAS_IRasterizer.h
D	source/gameengine/Rasterizer/RAS_ISync.h
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.cpp
D	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLOffScreen.cpp
D	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLOffScreen.h
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
D	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLSync.cpp
D	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLSync.h
M	source/gameengine/VideoTexture/CMakeLists.txt
M	source/gameengine/VideoTexture/Common.h
D	source/gameengine/VideoTexture/DeckLink.cpp
D	source/gameengine/VideoTexture/DeckLink.h
M	source/gameengine/VideoTexture/Exception.cpp
M	source/gameengine/VideoTexture/Exception.h
M	source/gameengine/VideoTexture/FilterBase.h
M	source/gameengine/VideoTexture/FilterSource.h
M	source/gameengine/VideoTexture/ImageBase.cpp
M	source/gameengine/VideoTexture/ImageBase.h
M	source/gameengine/VideoTexture/ImageMix.cpp
M	source/gameengine/VideoTexture/ImageRender.cpp
M	source/gameengine/VideoTexture/ImageRender.h
M	source/gameengine/VideoTexture/ImageViewport.cpp
M	source/gameengine/VideoTexture/ImageViewport.h
M	source/gameengine/VideoTexture/Texture.cpp
M	source/gameengine/VideoTexture/VideoBase.cpp
M	source/gameengine/VideoTexture/VideoBase.h
D	source/gameengine/VideoTexture/VideoDeckLink.cpp
D	source/gameengine/VideoTexture/VideoDeckLink.h
M	source/gameengine/VideoTexture/VideoFFmpeg.cpp
M	source/gameengine/VideoTexture/blendVideoTex.cpp

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 343f2f8..408cf22 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -230,8 +230,7 @@ option(WITH_BULLET        "Enable Bullet (Physics Engine)" ON)
 option(WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported due to missing features in upstream!)" )
 mark_as_advanced(WITH_SYSTEM_BULLET)
 option(WITH_GAMEENGINE    "Enable Game Engine" ${_init_GAMEENGINE})
-option(WITH_PLAYER        "Build Player" ON)
-option(WITH_DECKLINK      "Support BlackMagicDesign DeckLink cards in the BGE" ON)
+option(WITH_PLAYER        "Build Player" OFF)
 option(WITH_OPENCOLORIO   "Enable OpenColorIO color management" ${_init_OPENCOLORIO})
 
 # Compositor
@@ -275,7 +274,6 @@ endif()
 if(WITH_X11)
 	option(WITH_X11_XINPUT    "Enable X11 Xinput (tablet support and unicode input)"  ON)
 	option(WITH_X11_XF86VMODE "Enable X11 video mode switching"                       ON)
-	option(WITH_X11_ALPHA     "Enable X11 transparent background"                     ON)
 endif()
 
 if(UNIX AND NOT APPLE)
@@ -716,7 +714,6 @@ if(WITH_GHOST_SDL OR WITH_HEADLESS)
 	set(WITH_X11           OFF)
 	set(WITH_X11_XINPUT    OFF)
 	set(WITH_X11_XF86VMODE OFF)
-	set(WITH_X11_ALPHA     OFF)
 	set(WITH_GHOST_XDND    OFF)
 	set(WITH_INPUT_IME     OFF)
 endif()
@@ -856,16 +853,6 @@ if(WITH_X11)
 		endif()
 	endif()
 
-	if(WITH_X11_ALPHA)
-		find_library(X11_Xrender_LIB Xrender  ${X11_LIB_SEARCH_PATH})
-		mark_as_advanced(X11_Xrender_LIB)
-		if (X11_Xrender_LIB)
-			list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB})
-		else()
-			set(WITH_X11_ALPHA OFF)
-		endif()
-	endif()
-
 endif()
 
 
@@ -3217,7 +3204,6 @@ if(FIRST_RUN)
 
 	info_cfg_text("System Options:")
 	info_cfg_option(WITH_INSTALL_PORTABLE)
-	info_cfg_option(WITH_X11_ALPHA)
 	info_cfg_option(WITH_X11_XF86VMODE)
 	info_cfg_option(WITH_X11_XINPUT)
 	info_cfg_option(WITH_MEM_JEMALLOC)
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index a73eb9f..239371c 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -687,14 +687,6 @@ function(SETUP_BLENDER_SORTED_LIBS)
 		list_insert_after(BLENDER_SORTED_LIBS "ge_logic_ngnetwork" "extern_bullet")
 	endif()
 
-	if(WITH_DECKLINK)
-		list(APPEND BLENDER_SORTED_LIBS bf_intern_decklink)
-	endif()
-
-	if(WIN32)
-		list(APPEND BLENDER_SORTED_LIBS bf_intern_gpudirect)
-	endif()
-
 	if(WITH_OPENSUBDIV)
 		list(APPEND BLENDER_SORTED_LIBS bf_intern_opensubdiv)
 	endif()
diff --git a/doc/python_api/examples/bge.texture.2.py b/doc/python_api/examples/bge.texture.2.py
deleted file mode 100644
index f7e0170..0000000
--- a/doc/python_api/examples/bge.texture.2.py
+++ /dev/null
@@ -1,239 +0,0 @@
-"""
-Video Capture with DeckLink
-+++++++++++++++++++++++++++
-Video frames captured with DeckLink cards have pixel formats that are generally not directly
-usable by OpenGL, they must be processed by a shader. The three shaders presented here should
-cover all common video capture cases.
-
-This file reflects the current video transfer method implemented in the Decklink module:
-whenever possible the video images are transferred as float texture because this is more 
-compatible with GPUs. Of course, only the pixel formats that have a correspondant GL format
-can be transferred as float. Look for fg_shaders in this file for an exhaustive list.
-
-Other pixel formats will be transferred as 32 bits integer red-channel texture but this
-won't work with certain GPU (Intel GMA); the corresponding shaders are not shown here. 
-However, it should not be necessary to use any of them as the list below covers all practical
-cases of video capture with all types of Decklink product.
-
-In other words, only use one of the pixel format below and you will be fine. Note that depending
-on the video stream, only certain pixel formats will be allowed (others will throw an exception).
-For example, to capture a PAL video stream, you must use one of the YUV formats. 
-
-To find which pixel format is suitable for a particular video stream, use the 'Media Express'
-utility that comes with the Decklink software : if you see the video in the 'Log and Capture'
-Window, you have selected the right pixel format and you can use the same in Blender.
-
-Notes: * these shaders only decode the RGB channel and set the alpha channel to a fixed
-value (look for color.a = ). It's up to you to add postprocessing to the color.
-       * these shaders are compatible with 2D and 3D video stream
-"""
-import bge
-from bge import logic
-from bge import texture as vt
-
-# The default vertex shader, because we need one
-#
-VertexShader = """
-#version 130
-   void main()
-   {
-      gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
-      gl_TexCoord[0] = gl_MultiTexCoord0;
-   }
-    
-"""
-
-# For use with RGB video stream: the pixel is directly usable
-#
-FragmentShader_R10l = """
-    #version 130
-    uniform sampler2D tex;
-    // stereo = 1.0 if 2D image, =0.5 if 3D (left eye below, right eye above)
-    uniform float stereo;
-    // eye = 0.0 for the left eye, 0.5 for the right eye
-    uniform float eye;
-
-    void main(void)
-    {
-        vec4 color;
-        float tx, ty;
-        tx = gl_TexCoord[0].x;
-        ty = eye+gl_TexCoord[0].y*stereo;
-        color = texture(tex, vec2(tx,ty));
-        color.a = 0.7;
-        gl_FragColor = color; 
-    }
-"""
-
-# For use with YUV video stream
-#
-FragmentShader_2vuy = """
-    #version 130
-    uniform sampler2D tex; 
-    // stereo = 1.0 if 2D image, =0.5 if 3D (left eye below, right eye above)
-    uniform float stereo;
-    // eye = 0.0 for the left eye, 0.5 for the right eye
-    uniform float eye;
-
-    void main(void) 
-    {
-        vec4 color;
-        float tx, ty, width, Y, Cb, Cr; 
-        int px;
-        tx = gl_TexCoord[0].x; 
-        ty = eye+gl_TexCoord[0].y*stereo;
-        width = float(textureSize(tex, 0).x);
-        color = texture(tex, vec2(tx, ty));
-        px = int(floor(fract(tx*width)*2.0));
-        switch (px) {
-        case 0:
-            Y = color.g;
-            break;
-        case 1:
-            Y = color.a;
-            break;
-        }
-        Y = (Y - 0.0625) * 1.168949772; 
-        Cb = (color.b - 0.0625) * 1.142857143 - 0.5; 
-        Cr = (color.r - 0.0625) * 1.142857143 - 0.5; 
-        color.r = Y + 1.5748 * Cr; 
-        color.g = Y - 0.1873 * Cb - 0.4681 * Cr;
-        color.b = Y + 1.8556 * Cb;
-        color.a = 0.7;
-        gl_FragColor = color; 
-    }
-"""
-
-# For use with high resolution YUV
-#
-FragmentShader_v210 = """
-    #version 130
-    uniform sampler2D tex; 
-    // stereo = 1.0 if 2D image, =0.5 if 3D (left eye below, right eye above)
-    uniform float stereo;
-    // eye = 0.0 for the left eye, 0.5 for the right eye
-    uniform float eye;
-
-    void main(void) 
-    {
-        vec4 color, color1, color2, color3;
-        int px;
-        float tx, ty, width, sx, dx, bx, Y, Cb, Cr; 
-        tx = gl_TexCoord[0].x; 
-        ty = eye+gl_TexCoord[0].y*stereo; 
-        width = float(textureSize(tex, 0).x);
-        // to sample macro pixels (6 pixels in 4 words)
-        sx = tx*width*0.25+0.01;
-        // index of display pixel in the macro pixel 0..5
-        px = int(floor(fract(sx)*6.0));
-        // increment as we sample the macro pixel
-        dx = 1.0/width;
-        // base x coord of macro pixel
-        bx = (floor(sx)+0.01)*dx*4.0;
-        color = texture(tex, vec2(bx, ty));
-        color1 = texture(tex, vec2(bx+dx, ty));
-        color2 = texture(tex, vec2(bx+dx*2.0, ty));
-        color3 = texture(tex, vec2(bx+dx*3.0, ty));
-        switch (px) {
-        case 0:
-        case 1:
-            Cb = color.b;
-            Cr = color.r;
-            break;
-        case 2:
-        case 3:
-            Cb = color1.g;
-            Cr = color2.b;
-            break;
-        default:
-            Cb = color2.r;
-            Cr = color3.g;
-            break;
-        }
-        switch (px) {
-        case 0:
-            Y = color.g;
-            break;
-        case 1:
-            Y = color1.b;
-            break;
-        case 2:
-            Y = color1.r;
-            break;
-        case 3:
-            Y = color2.g;
-            break;
-        case 4:
-            Y = color3.b;
-            break;
-        default:
-            Y = color3.r;
-            break;
-        }
-        Y = (Y - 0.0625) * 1.168949772; 
-        Cb = (Cb - 0.0625) * 1.142857143 - 0.5; 
-        Cr = (Cr - 0.0625) * 1.142857143 - 0.5; 
-        color.r = Y + 1.5748 * Cr; 
-        color.g = Y - 0.1873 * Cb - 0.4681 * Cr;
-        color.b = Y + 1.8556 * Cb;
-        color.a = 0.7;
-        gl_FragColor = color; 
-    }
-"""
-
-# The exhausitve list of pixel formats that are transferred as float texture
-# Only use those for greater efficiency and compatiblity.
-#
-fg_shaders = {
-    '2vuy'       :FragmentShader_2vuy,
-    '8BitYUV'    :FragmentShader_2vuy,
-    'v210'       :FragmentShader_v210,
-    '10BitYUV'   :FragmentShader_v210,
-    '8BitBGRA'   :FragmentShader_R10l,
-    'BGRA'       :FragmentShader_R10l,
-    '8BitARGB'   :FragmentShader_R10l,
-    '10BitRGBXLE':FragmentShader_R10l,
-    'R10l'       :FragmentShader_R10l
-    }
-
-
-    
-
-#
-# Helper function to attach a pixel shader to the material that receives the video frame.
-#
-
-def config_video(obj, format, pixel, is3D=False, mat=0, card=0):
-    if not pixel in fg_shaders:
-        raise('Unsuported shader')
-    shader = obj.meshes[0].materials[mat].getShader()
-    if shader != None and not shader.isValid():
-        shader.setSource(VertexShader, fg_shaders[pixel], True)
-        shader.setSampler('tex', 0)
-        shader.setUniformEyef("eye")
-        shader.setUniform1f("stereo", 0.5 if is3D else 1.0)
-    tex = vt.Texture(obj, mat)
-    tex.source = vt.VideoDeckLink(format + "/" + pixel + ("/3D" if is3D else ""), card)
-    print("frame rate: ", tex.source.framerate)
-    tex.source.play()
-    obj["video"] = tex
-
-#
-# Attach this function to an object that has a material with texture
-# and call it once to initialize the object
-# 
-def init(cont):
-    #config_video(cont.owner, 'HD720p5994', '8BitBGRA')    
-    #config_video(co

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list