summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore45
-rw-r--r--AUTHORS1
-rw-r--r--CMakeLists.txt57
-rw-r--r--ChangeLog33
-rw-r--r--INSTALL85
-rw-r--r--TODO7
-rw-r--r--cmake/modules/FindATK.cmake11
-rw-r--r--cmake/modules/FindCairo.cmake11
-rw-r--r--cmake/modules/FindGTK2.cmake43
-rw-r--r--cmake/modules/FindGlew.cmake17
-rw-r--r--cmake/modules/FindGlib2.cmake43
-rw-r--r--cmake/modules/FindGstreamer.cmake130
-rw-r--r--cmake/modules/FindLibIconv.cmake11
-rw-r--r--cmake/modules/FindLibXml2.cmake11
-rw-r--r--gst-libs/CMakeLists.txt1
-rw-r--r--gst-libs/gst/CMakeLists.txt2
-rw-r--r--gst-libs/gst/freeglut/CMakeLists.txt15
-rw-r--r--gst-libs/gst/gl/CMakeLists.txt22
-rw-r--r--gst/CMakeLists.txt1
-rw-r--r--gst/gl/CMakeLists.txt53
-rw-r--r--win32/common/config.h2
21 files changed, 598 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..21f1303
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,45 @@
+sh.exe.stackdump
+tests/examples/generic/cube/Debug/
+tests/examples/generic/cube/cube.vcproj.BOWOB.Julien.user
+tests/examples/generic/cubeyuv/Debug/
+tests/examples/generic/cubeyuv/cubeyuv.vcproj.BOWOB.Julien.user
+tests/examples/generic/debug/
+tests/examples/generic/doublecube/Debug/
+tests/examples/generic/doublecube/doublecube.vcproj.BOWOB.Julien.user
+tests/examples/generic/generic.ncb
+tests/examples/generic/generic.suo
+tests/examples/generic/recordgraphic/Debug/
+tests/examples/generic/recordgraphic/recordgraphic.vcproj.BOWOB.Julien.user
+tests/examples/gtk/debug/
+tests/examples/gtk/filterxoverlay/Debug/
+tests/examples/gtk/filterxoverlay/Release/
+tests/examples/gtk/filterxoverlay/filterxoverlay.vcproj.BOWOB.Julien.user
+tests/examples/gtk/fxtest/Debug/
+tests/examples/gtk/fxtest/Release/
+tests/examples/gtk/fxtest/fxtest.vcproj.BOWOB.Julien.user
+tests/examples/gtk/gtk.ncb
+tests/examples/gtk/gtk.suo
+tests/examples/gtk/gtkxoverlay/Debug/
+tests/examples/gtk/gtkxoverlay/Release/
+tests/examples/gtk/gtkxoverlay/gtkxoverlay.vcproj.BOWOB.Julien.user
+tests/examples/gtk/pixbufdrop/Debug/
+tests/examples/gtk/pixbufdrop/Release/
+tests/examples/gtk/pixbufdrop/pixbufdrop.vcproj.BOWOB.Julien.user
+tests/examples/gtk/release/
+tests/examples/qt/videoxoverlay/Debug/
+tests/examples/qt/videoxoverlay/generatedfiles/
+tests/examples/qt/videoxoverlay/videoxoverlay.ncb
+tests/examples/qt/videoxoverlay/videoxoverlay.suo
+tests/examples/qt/videoxoverlay/videoxoverlay.vcproj.BOWOB.Julien.user
+win32/codeblock/Debug/
+win32/codeblock/Release/
+win32/codeblock/gstopengl.depend
+win32/codeblock/gstopengl.layout
+win32/codeblock/obj/
+win32/vs8/Debug/
+win32/vs8/Release/
+win32/vs8/bumpwall.bmp
+win32/vs8/libgstopengl.ncb
+win32/vs8/libgstopengl.suo
+win32/vs8/libgstopengl.vcproj.BOWOB.Julien.user
+win32/vs8/normalmap.bmp
diff --git a/AUTHORS b/AUTHORS
index 80e5470..55bacdf 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,2 +1,3 @@
+David A. Schleef <ds@schleef.org>
Julien isorce <julien.isorce@gmail.com>
Filippo Argiolas <filippo.argiolas@gmail.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..f81f57a
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,57 @@
+cmake_minimum_required(VERSION "2.6.1")
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
+
+project (GST-PLUGINS-GL)
+
+find_package(Glib2 REQUIRED)
+find_package(GTK2 REQUIRED)
+find_package(ATK REQUIRED)
+find_package(CAIRO REQUIRED)
+find_package(LibXml2 REQUIRED)
+find_package(LibIconv REQUIRED)
+find_package(Gstreamer REQUIRED)
+find_package(Glew REQUIRED)
+
+function(check_package name)
+ if (${name}_FOUND)
+ message(STATUS "Found ${name}... YES")
+ else (${name}_FOUND)
+ message(STATUS "Found ${name}... NO")
+ if (WIN32)
+ message(FATAL_ERROR "You should set the env variable ${name}_DIR")
+ else (WIN32)
+ message(FATAL_ERROR "You should install ${name} dev package")
+ endif (WIN32)
+ endif (${name}_FOUND)
+endfunction(check_package)
+
+check_package(GLIB2)
+check_package(GTK2)
+check_package(ATK)
+check_package(CAIRO)
+check_package(LIBXML2)
+check_package(LIBICONV)
+check_package(GSTREAMER)
+check_package(GLEW)
+
+message("****" ${GLIB2_INCLUDE_DIR})
+message("****" ${GLIB2_LIBRARIES})
+message("****" ${GTK2_INCLUDE_DIR})
+message("****" ${GTK2_LIBRARIES})
+message("****" ${ATK_INCLUDE_DIR})
+message("****" ${CAIRO_INCLUDE_DIR})
+message("****" ${LIBXML2_INCLUDE_DIR})
+message("****" ${LIBICONV_INCLUDE_DIR})
+message("****" ${GSTREAMER_INCLUDE_DIR})
+message("****" ${GSTREAMER_LIBRARIES})
+message("****" ${GLEW_INCLUDE_DIR})
+message("****" ${GLEW_LIBRARY})
+
+add_subdirectory (gst-libs)
+add_subdirectory (gst)
+add_subdirectory (tests)
+
+add_dependencies(gstgl gstfreeglut)
+
+add_definitions(-DHAVE_CONFIG_H)
diff --git a/ChangeLog b/ChangeLog
index 5f5a89d..aae2d5b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,36 @@
+2008-09-11 Julien Isorce <julien.isorce@gmail.com>
+
+ * .gitignore
+ * AUTHORS
+ * CMakeLists.txt
+ * INSTALL
+ * TODO
+ * cmake/modules/FindATK.cmake
+ * cmake/modules/FindCairo.cmake
+ * cmake/modules/FindGTK2.cmake
+ * cmake/modules/FindGlew.cmake
+ * cmake/modules/FindGlib2.cmake
+ * cmake/modules/FindGstreamer.cmake
+ * cmake/modules/FindLibIconv.cmake
+ * cmake/modules/FindLibXml2.cmake
+ * gst-libs/CMakeLists.txt
+ * gst-libs/gst/CMakeLists.txt
+ * gst-libs/gst/freeglut/CMakeLists.txt
+ * gst-libs/gst/gl/CMakeLists.txt
+ * gst/CMakeLists.txt
+ * gst/gl/CMakeLists.txt
+ * win32/common/config.h
+ Add cmake build http://www.cmake.org.
+ See CMake install instructions in the INSTALL file.
+ (I have not correctly configured yet the cmake build for unix, BE patient)
+
+ * AUTHORS
+ * BUGS
+ * ChangeLog
+ * TODO
+ * configure.ac
+ CRLF to LF
+
2008-09-07 Julien Isorce <julien.isorce@gmail.com>
* TODO
diff --git a/INSTALL b/INSTALL
index 23e5f25..2889d6d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -7,6 +7,91 @@ Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
+Cross-platform Installation
+==========================
+
+Using CMake http://www.cmake.org
+
+--------
+* WIN32:
+--------
+
+-mingw32:
+cd gst-plugins-gl
+cd ..
+mkdir mingw32
+cd mingw32
+cmake -G "MinGW Makefiles" ..\gst-plugins-gl
+mingw32-make
+result is gst\gl\libgstopengl.dll
+
+-vs8:
+cd gst-plugins-gl
+cd ..
+mkdir vs8
+cd vs8
+cmake -G "Visual Studio 8 2005" ..\gst-plugins-gl
+Open GST-PLUGINS-GL.sln and press F7 to build the project
+result is gst\gl\debug\gstopengl.dll (or in release if you selected it)
+
+-CodeBlocks:
+cd gst-plugins-gl
+cd ..
+mkdir codeblocks
+cd codeblocks
+cmake -G "CodeBlocks - MinGW Makefiles" ..\gst-plugins-gl
+Open GST-PLUGINS-GL.cbp and press Ctrl-F9 to build the project
+result in gst\gl\libgstopengl.dll
+
+-Others:
+Type "cmake --help" to have a look of possible builds
+(Visual Studio 9 2008
+Eclipse CDT4 - MinGW Makefiles
+etc...)
+
+-On win32 I usually write a file named glcmake.bat
+in the same dir as gst-plugins-gl is.
+BUT IT IS NOT AN OBLIGATION
+This file contains:
+
+rem ########################################################################
+set GLIB2_DIR=H:\svn\glib
+set GTK2_DIR=H:\svn\gtk+
+set ATK_DIR=H:\svn\atk
+set CAIRO_DIR=H:\svn\cairo
+set LIBXML2_DIR=H:\svn\libxml2-2.6.30+.win32
+set LIBICONV_DIR=H:\svn\libiconv
+set GSTREAMER_DIR=H:\svn\gstreamer
+set GLEW_DIR=H:\svn\glew
+
+rem cd mingw32
+rem del *ache* && cmake -G "MinGW Makefiles" ..\gst-plugins-gl
+
+rem cd vs8
+rem del *ache* && cmake -G "Visual Studio 8 2005" ..\gst-plugins-gl
+
+cd codeblocks
+del *ache* && cmake -G "CodeBlocks - MinGW Makefiles" ..\gst-plugins-gl
+
+cmd
+rem ########################################################################
+
+In this way you have to set manually the env variables
+
+
+-------
+* UNIX:
+-------
+
+For now just use ./autogen.sh then make
+because I have not correctly configured yet the cmake build on
+unix (cmake -G "Unix Makefiles")
+result in gst-plugins-gl/gst/gl/.libs/libgstopengl.so
+Or you can use gst-plugins-gl/unix/codeblocks/gstopengl/gstopengl.cbp
+But this unix codeblocks build will be replaced when
+the cmake build will work on unix because cmake can generate it
+through cmake -G "CodeBlocks - Unix Makefiles"
+
Basic Installation
==================
diff --git a/TODO b/TODO
index 07fd0b1..16b43a3 100644
--- a/TODO
+++ b/TODO
@@ -5,11 +5,11 @@
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/chapter-developing.html
cap: I am ok, but I am not using emacs, so I let you run the re-indent script
-(DONE) - 1: make Filippo's GstGLEffects work on this repository.
+(DONE) - 1: make Filippo's GstGLEffects work on this repository.
(DONE) - 2: use GstGLShader in the GLSL colorspace conversion.
-- 3: add GLEW check in configure.ac
+(DONE) - 3: add GLEW check in configure.ac
(DONE) - 4: make the plugin (any pipeline) properly shutdown when Shader compilation failed.
(using "return GST_FLOW_UNEXPECTED")
@@ -57,3 +57,6 @@
then we would be able to do some basic stuffs as colorspace conversion even if GLSL is not available.
(And so have some more cool stuffs work on Intel card for example)
cg can convert GLSL code to ARB_fp/ARB_vp.
+
+- 17: add a generic way to check that a given extension is available. (and set isAlive to false..)
+ (for examples gleffects does not check you have shaders available so it can cause segfault.)
diff --git a/cmake/modules/FindATK.cmake b/cmake/modules/FindATK.cmake
new file mode 100644
index 0000000..e2ae906
--- /dev/null
+++ b/cmake/modules/FindATK.cmake
@@ -0,0 +1,11 @@
+FILE(TO_CMAKE_PATH "$ENV{ATK_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${ATK_DIR}" TRY2_DIR)
+FILE(GLOB ATK_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(ATK_INCLUDE_DIR atk/atk.h
+ PATHS ${ATK_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing atk/atk.h include file")
+
+IF (ATK_INCLUDE_DIR)
+ SET(ATK_FOUND TRUE)
+ENDIF (ATK_INCLUDE_DIR)
diff --git a/cmake/modules/FindCairo.cmake b/cmake/modules/FindCairo.cmake
new file mode 100644
index 0000000..ed98f4c
--- /dev/null
+++ b/cmake/modules/FindCairo.cmake
@@ -0,0 +1,11 @@
+FILE(TO_CMAKE_PATH "$ENV{CAIRO_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${CAIRO_DIR}" TRY2_DIR)
+FILE(GLOB CAIRO_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(CAIRO_INCLUDE_DIR cairo.h
+ PATHS ${CAIRO_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing cairo.h include file")
+
+IF (CAIRO_INCLUDE_DIR)
+ SET(CAIRO_FOUND TRUE)
+ENDIF (CAIRO_INCLUDE_DIR)
diff --git a/cmake/modules/FindGTK2.cmake b/cmake/modules/FindGTK2.cmake
new file mode 100644
index 0000000..db69a7a
--- /dev/null
+++ b/cmake/modules/FindGTK2.cmake
@@ -0,0 +1,43 @@
+FILE(TO_CMAKE_PATH "$ENV{GTK2_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${GTK2_DIR}" TRY2_DIR)
+FILE(GLOB GTK_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(GTK_gtk_2_INCLUDE_DIR gtk/gtk.h
+ PATHS ${GTK_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing gtk/gtk.h include file")
+
+FIND_PATH(GTK_gdk_2_INCLUDE_DIR gdk/gdk.h
+ PATHS ${GTK_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing gdk/gdk.h include file")
+
+FIND_PATH(GTK_gdkconfig_2_INCLUDE_DIR gdkconfig.h
+ PATHS ${GTK_DIR}/include ${GTK_DIR}/lib/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing gdkconfig.h include file")
+
+FIND_LIBRARY(GTK_gdk_pixbuf_2_LIBRARY NAMES gdk_pixbuf-2.0
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gdk_pixbuf library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GTK_gdk_win32_2_LIBRARY NAMES gdk-win32-2.0
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib
+ ENV LIB
+ DOC "gdk-win32 library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GTK_gtk_win32_2_LIBRARY NAMES gtk-win32-2.0
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib
+ ENV LIB
+ DOC "gtk-win32 library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+IF (GTK_gtk_2_INCLUDE_DIR AND GTK_gdk_2_INCLUDE_DIR AND GTK_gdkconfig_2_INCLUDE_DIR AND
+ GTK_gdk_pixbuf_2_LIBRARY AND GTK_gdk_win32_2_LIBRARY AND GTK_gtk_win32_2_LIBRARY)
+ SET(GTK2_INCLUDE_DIR ${GTK_gtk_2_INCLUDE_DIR} ${GTK_gdk_2_INCLUDE_DIR} ${GTK_gdkconfig_2_INCLUDE_DIR})
+ list(REMOVE_DUPLICATES GTK2_INCLUDE_DIR)
+ SET(GTK2_LIBRARIES ${GTK_gdk_pixbuf_2_LIBRARY} ${GTK_gdk_win32_2_LIBRARY} ${GTK_gtk_win32_2_LIBRARY})
+ list(REMOVE_DUPLICATES GTK2_LIBRARIES)
+ SET(GTK2_FOUND TRUE)
+ENDIF (GTK_gtk_2_INCLUDE_DIR AND GTK_gdk_2_INCLUDE_DIR AND GTK_gdkconfig_2_INCLUDE_DIR AND
+ GTK_gdk_pixbuf_2_LIBRARY AND GTK_gdk_win32_2_LIBRARY AND GTK_gtk_win32_2_LIBRARY)
diff --git a/cmake/modules/FindGlew.cmake b/cmake/modules/FindGlew.cmake
new file mode 100644
index 0000000..2795e07
--- /dev/null
+++ b/cmake/modules/FindGlew.cmake
@@ -0,0 +1,17 @@
+FILE(TO_CMAKE_PATH "$ENV{GLEW_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${GLEW_DIR}" TRY2_DIR)
+FILE(GLOB GLEW_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(GLEW_INCLUDE_DIR GL/glew.h
+ PATHS ${GLEW_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing glew/glew.h include file")
+
+FIND_LIBRARY(GLEW_LIBRARY NAMES glew32 GLEW glew32s
+ PATHS ${GLEW_DIR}/bin ${GLEW_DIR}/win32/bin ${GLEW_DIR}/lib ${GLEW_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "glew library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+IF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
+ SET(GLEW_FOUND TRUE)
+ENDIF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
diff --git a/cmake/modules/FindGlib2.cmake b/cmake/modules/FindGlib2.cmake
new file mode 100644
index 0000000..8b1e21d
--- /dev/null
+++ b/cmake/modules/FindGlib2.cmake
@@ -0,0 +1,43 @@
+FILE(TO_CMAKE_PATH "$ENV{GLIB2_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${GLIB2_DIR}" TRY2_DIR)
+FILE(GLOB GLIB2_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(GLIB_glib_2_INCLUDE_DIR glib.h
+ PATHS ${GLIB2_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing glib.h include file")
+
+FIND_PATH(GLIB_glibconfig_2_INCLUDE_DIR glibconfig.h
+ PATHS ${GLIB2_DIR}/include ${GLIB2_DIR}/lib/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing glibconfig.h include file")
+
+FIND_LIBRARY(GLIB_glib_2_LIBRARY NAMES glib-2.0
+ PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "glib library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GLIB_gmodule_2_LIBRARY NAMES gmodule-2.0
+ PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gmodule library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GLIB_gobject_2_LIBRARY NAMES gobject-2.0
+ PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gobject library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GLIB_gthread_2_LIBRARY NAMES gthread-2.0
+ PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gthread library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+IF (GLIB_glib_2_INCLUDE_DIR AND GLIB_glibconfig_2_INCLUDE_DIR AND GLIB_glib_2_LIBRARY AND GLIB_gmodule_2_LIBRARY AND GLIB_gobject_2_LIBRARY AND GLIB_gthread_2_LIBRARY)
+ SET(GLIB2_INCLUDE_DIR ${GLIB_glib_2_INCLUDE_DIR} ${GLIB_glibconfig_2_INCLUDE_DIR})
+ list(REMOVE_DUPLICATES GLIB2_INCLUDE_DIR)
+ SET(GLIB2_LIBRARIES ${GLIB_glib_2_LIBRARY} ${GLIB_gmodule_2_LIBRARY} ${GLIB_gobject_2_LIBRARY} ${GLIB_gthread_2_LIBRARY})
+ list(REMOVE_DUPLICATES GLIB2_LIBRARIES)
+ SET(GLIB2_FOUND TRUE)
+ENDIF (GLIB_glib_2_INCLUDE_DIR AND GLIB_glibconfig_2_INCLUDE_DIR AND GLIB_glib_2_LIBRARY AND GLIB_gmodule_2_LIBRARY AND GLIB_gobject_2_LIBRARY AND GLIB_gthread_2_LIBRARY)
diff --git a/cmake/modules/FindGstreamer.cmake b/cmake/modules/FindGstreamer.cmake
new file mode 100644
index 0000000..11787fb
--- /dev/null
+++ b/cmake/modules/FindGstreamer.cmake
@@ -0,0 +1,130 @@
+FILE(TO_CMAKE_PATH "$ENV{GSTREAMER_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${GSTREAMER_DIR}" TRY2_DIR)
+FILE(GLOB GSTREAMER_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(GSTREAMER_gst_INCLUDE_DIR gst/gst.h
+ PATHS ${GSTREAMER_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing gst/gst.h include file")
+
+FIND_PATH(GSTREAMER_gstconfig_INCLUDE_DIR gst/gstconfig.h
+ PATHS ${GSTREAMER_DIR}/include ${GSTREAMER_DIR}/lib/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing gst/gstconfig.h include file")
+
+FIND_LIBRARY(GSTREAMER_gstaudio_LIBRARY NAMES gstaudio-0.10 libgstaudio-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstaudio library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstbase_LIBRARY NAMES gstbase-0.10 libgstbase-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstbase library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GLIB_gstcdda_LIBRARY NAMES gstcdda-0.10 libgstcdda-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstcdda library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstcontroller_LIBRARY NAMES gstcontroller-0.10 libgstcontroller-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstcontroller library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstdataprotocol_LIBRARY NAMES gstdataprotocol-0.10 libgstdataprotocol-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstdataprotocol library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstinterfaces_LIBRARY NAMES gstinterfaces-0.10 libgstinterfaces-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstinterfaces library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstnet_LIBRARY NAMES gstnet-0.10 libgstnet-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstnet library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstnetbuffer_LIBRARY NAMES gstnetbuffer-0.10 libgstnetbuffer-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstnetbuffer library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstpbutils_LIBRARY NAMES gstpbutils-0.10 libgstpbutils-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstpbutils library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstreamer_LIBRARY NAMES gstreamer-0.10 libgstreamer-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstreamer library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstriff_LIBRARY NAMES gstriff-0.10 libgstriff-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstriff library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstrtp_LIBRARY NAMES gstrtp-0.10 libgstrtp-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstrtp library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstrtsp_LIBRARY NAMES gstrtsp-0.10 libgstrtsp-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstrtsp library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstsdp_LIBRARY NAMES gstsdp-0.10 libgstsdp-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstsdp library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gsttag_LIBRARY NAMES gsttag-0.10 libgsttag-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gsttag library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+FIND_LIBRARY(GSTREAMER_gstvideo_LIBRARY NAMES gstvideo-0.10 libgstvideo-0.10
+ PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gstvideo library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+
+IF (GSTREAMER_gst_INCLUDE_DIR AND GSTREAMER_gstconfig_INCLUDE_DIR AND
+ GSTREAMER_gstaudio_LIBRARY AND GSTREAMER_gstbase_LIBRARY AND GLIB_gstcdda_LIBRARY AND GSTREAMER_gstcontroller_LIBRARY AND
+ GSTREAMER_gstdataprotocol_LIBRARY AND GSTREAMER_gstinterfaces_LIBRARY AND GSTREAMER_gstnet_LIBRARY AND
+ GSTREAMER_gstnetbuffer_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstreamer_LIBRARY AND
+ GSTREAMER_gstriff_LIBRARY AND GSTREAMER_gstrtp_LIBRARY AND GSTREAMER_gstrtsp_LIBRARY AND GSTREAMER_gstsdp_LIBRARY AND
+ GSTREAMER_gsttag_LIBRARY AND GSTREAMER_gstvideo_LIBRARY)
+ SET(GSTREAMER_INCLUDE_DIR ${GSTREAMER_gst_INCLUDE_DIR} ${GSTREAMER_gstconfig_INCLUDE_DIR})
+ list(REMOVE_DUPLICATES GSTREAMER_INCLUDE_DIR)
+ SET(GSTREAMER_LIBRARIES ${GSTREAMER_gstaudio_LIBRARY} ${GSTREAMER_gstbase_LIBRARY} ${GLIB_gstcdda_LIBRARY}
+ ${GSTREAMER_gstcontroller_LIBRARY} ${GSTREAMER_gstdataprotocol_LIBRARY} ${GSTREAMER_gstinterfaces_LIBRARY}
+ ${GSTREAMER_gstnet_LIBRARY} ${GSTREAMER_gstnetbuffer_LIBRARY} ${GSTREAMER_gstpbutils_LIBRARY}
+ ${GSTREAMER_gstreamer_LIBRARY} ${GSTREAMER_gstriff_LIBRARY} ${GSTREAMER_gstrtp_LIBRARY}
+ ${GSTREAMER_gstrtsp_LIBRARY} ${GSTREAMER_gstsdp_LIBRARY} ${GSTREAMER_gsttag_LIBRARY} ${GSTREAMER_gstvideo_LIBRARY})
+ list(REMOVE_DUPLICATES GSTREAMER_LIBRARIES)
+ SET(GSTREAMER_FOUND TRUE)
+ENDIF (GSTREAMER_gst_INCLUDE_DIR AND GSTREAMER_gstconfig_INCLUDE_DIR AND
+ GSTREAMER_gstaudio_LIBRARY AND GSTREAMER_gstbase_LIBRARY AND GLIB_gstcdda_LIBRARY AND GSTREAMER_gstcontroller_LIBRARY AND
+ GSTREAMER_gstdataprotocol_LIBRARY AND GSTREAMER_gstinterfaces_LIBRARY AND GSTREAMER_gstnet_LIBRARY AND
+ GSTREAMER_gstnetbuffer_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstreamer_LIBRARY AND
+ GSTREAMER_gstriff_LIBRARY AND GSTREAMER_gstrtp_LIBRARY AND GSTREAMER_gstrtsp_LIBRARY AND GSTREAMER_gstsdp_LIBRARY AND
+ GSTREAMER_gsttag_LIBRARY AND GSTREAMER_gstvideo_LIBRARY)
diff --git a/cmake/modules/FindLibIconv.cmake b/cmake/modules/FindLibIconv.cmake
new file mode 100644
index 0000000..0934202
--- /dev/null
+++ b/cmake/modules/FindLibIconv.cmake
@@ -0,0 +1,11 @@
+FILE(TO_CMAKE_PATH "$ENV{LIBICONV_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${LIBICONV_DIR}" TRY2_DIR)
+FILE(GLOB LIBICONV_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(LIBICONV_INCLUDE_DIR iconv.h
+ PATHS ${LIBICONV_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing iconv.h include file")
+
+IF (LIBICONV_INCLUDE_DIR)
+ SET(LIBICONV_FOUND TRUE)
+ENDIF (LIBICONV_INCLUDE_DIR)
diff --git a/cmake/modules/FindLibXml2.cmake b/cmake/modules/FindLibXml2.cmake
new file mode 100644
index 0000000..686db32
--- /dev/null
+++ b/cmake/modules/FindLibXml2.cmake
@@ -0,0 +1,11 @@
+FILE(TO_CMAKE_PATH "$ENV{LIBXML2_DIR}" TRY1_DIR)
+FILE(TO_CMAKE_PATH "${LIBXML2_DIR}" TRY2_DIR)
+FILE(GLOB LIBXML2_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+FIND_PATH(LIBXML2_INCLUDE_DIR libxml/parser.h
+ PATHS ${LIBXML2_DIR}/include /usr/local/include /usr/include
+ ENV INCLUDE DOC "Directory containing libxml/parser.h include file")
+
+IF (LIBXML2_INCLUDE_DIR)
+ SET(LIBXML2_FOUND TRUE)
+ENDIF (LIBXML2_INCLUDE_DIR)
diff --git a/gst-libs/CMakeLists.txt b/gst-libs/CMakeLists.txt
new file mode 100644
index 0000000..1049a2d
--- /dev/null
+++ b/gst-libs/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory (gst)
diff --git a/gst-libs/gst/CMakeLists.txt b/gst-libs/gst/CMakeLists.txt
new file mode 100644
index 0000000..4489ae1
--- /dev/null
+++ b/gst-libs/gst/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory (freeglut)
+add_subdirectory (gl)
diff --git a/gst-libs/gst/freeglut/CMakeLists.txt b/gst-libs/gst/freeglut/CMakeLists.txt
new file mode 100644
index 0000000..6c13eeb
--- /dev/null
+++ b/gst-libs/gst/freeglut/CMakeLists.txt
@@ -0,0 +1,15 @@
+add_library (gstfreeglut STATIC
+ freeglut_callbacks.c
+ freeglut_display.c
+ freeglut_init.c
+ freeglut_main.c
+ freeglut_state.c
+ freeglut_structure.c
+ freeglut_window.c)
+
+target_link_libraries(gstfreeglut
+ general glu32
+ general opengl32
+ general gdi32
+ general winmm)
+ \ No newline at end of file
diff --git a/gst-libs/gst/gl/CMakeLists.txt b/gst-libs/gst/gl/CMakeLists.txt
new file mode 100644
index 0000000..6b34e47
--- /dev/null
+++ b/gst-libs/gst/gl/CMakeLists.txt
@@ -0,0 +1,22 @@
+add_definitions(-DHAVE_CONFIG_H)
+
+include_directories(AFTER
+ ../../../win32/common
+ ${GLEW_INCLUDE_DIR}
+ ../freeglut
+ ${GSTREAMER_INCLUDE_DIR}
+ ${GLIB2_INCLUDE_DIR}
+ ${LIBXML2_INCLUDE_DIR}
+ ${LIBICONV_INCLUDE_DIR})
+
+add_library (gstgl STATIC
+ gstgldisplay.c
+ gstglbuffer.c
+ gstglfilter.c
+ gstglshader.c)
+
+target_link_libraries(gstgl
+ general gstfreeglut
+ general ${GLEW_LIBRARY}
+ general ${GLIB2_LIBRARIES}
+ general ${GSTREAMER_LIBRARIES})
diff --git a/gst/CMakeLists.txt b/gst/CMakeLists.txt
new file mode 100644
index 0000000..3300d05
--- /dev/null
+++ b/gst/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory (gl)
diff --git a/gst/gl/CMakeLists.txt b/gst/gl/CMakeLists.txt
new file mode 100644
index 0000000..8f99ce3
--- /dev/null
+++ b/gst/gl/CMakeLists.txt
@@ -0,0 +1,53 @@
+add_definitions(-DHAVE_CONFIG_H -DHAVE_GDKPIXBUF)
+
+include_directories(AFTER
+ ../../win32/common
+ ${GSTREAMER_INCLUDE_DIR}
+ ${GLIB2_INCLUDE_DIR}
+ ${LIBXML2_INCLUDE_DIR}
+ ${LIBICONV_INCLUDE_DIR}
+ ${LIBATK_INCLUDE_DIR}
+ ${CAIRO_INCLUDE_DIR}
+ ${GTK2_INCLUDE_DIR}
+ ../../gst-libs/gst/gl
+ ${GLEW_INCLUDE_DIR}
+ ../../gst-libs/gst/freeglut
+ ../../gst-libs
+ .
+ effects)
+
+add_library (gstopengl SHARED
+ gstopengl.c
+ gstglimagesink.c
+ gstglimagesink.h
+ gstglupload.c
+ gstgldownload.c
+ gstglfilterblur.c
+ gstglfiltercube.c
+ gstglfilterlaplacian.c
+ gstglfilterapp.c
+ gstglcolorscale.c
+ gltestsrc.c
+ gstgltestsrc.c
+ gstgleffects.c
+ gstglpixbufoverlay.c
+ gstgldifferencematte.c
+ gstglbumper.c
+ effects/gstgleffectssources.c
+ effects/gstgleffectidentity.c
+ effects/gstgleffectmirror.c
+ effects/gstgleffectsqueeze.c
+ effects/gstgleffectstretch.c
+ effects/gstgleffecttunnel.c
+ effects/gstgleffectfisheye.c
+ effects/gstgleffecttwirl.c
+ effects/gstgleffectbulge.c
+ effects/gstgleffectsquare.c
+ effects/gstgleffectlumatocurve.c
+ effects/gstgleffectrgbtocurve.c
+ effects/gstgleffectsin.c
+ effects/gstgleffectglow.c)
+
+target_link_libraries(gstopengl
+ general gstgl
+ general ${GTK2_LIBRARIES})
diff --git a/win32/common/config.h b/win32/common/config.h
index 2e08862..d8a79d5 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -27,7 +27,7 @@
#define GST_LICENSE "LGPL"
/* package name in plugins */
-#define GST_PACKAGE_NAME "GStreamer OpengGL Plug-ins CVS/prerelease"
+#define GST_PACKAGE_NAME "GStreamer OpengGL Plug-ins GIT/prerelease"
/* package origin */
#define GST_PACKAGE_ORIGIN "Unknown package origin"