[Buildroot] [PATCH v5 08/13] package/opencv: add gstreamer-1.x support

Samuel Martin s.martin49 at gmail.com
Sun Jun 7 10:26:34 UTC 2015


Starting with the 2.4.10 release, OpenCV supports both Gstreamer-0.10
and Gstreamer-1, but only one can be enabled at the same time (OpenCV
uses Gstreamer-1 when available).

Since Buildroot allows both Gstreamer versions to co-exist, the
configure options and dependencies are set to reflect the OpenCV
preference.

Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
Cc: "Yann E. MORIN" <yann.morin.1998 at free.fr>

---
changes v4->v5:
- rebase
- rework gst-X backend selection (use similar structure for qt)
- remove patch merged upstream

changes v3->v4:
- new patch
---
 package/opencv/Config.in | 34 ++++++++++++++++++++++++++--------
 package/opencv/opencv.mk |  9 +++++++--
 2 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index db950f4..55e7580 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -170,17 +170,35 @@ config BR2_PACKAGE_OPENCV_WITH_FFMPEG
 	  Use ffmpeg from the target system.
 
 config BR2_PACKAGE_OPENCV_WITH_GSTREAMER
-	bool "gstreamer support"
-	depends on BR2_USE_MMU # gstreamer -> libglib2
-	depends on BR2_USE_WCHAR # gstreamer -> libglib2
-	depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer -> libglib2
-	select BR2_PACKAGE_GSTREAMER
+	bool "gstreamer backend support"
+	depends on BR2_PACKAGE_GSTREAMER || BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_OPENCV_GSTREAMER_BACKEND  if BR2_PACKAGE_GSTREAMER && \
+		!BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_OPENCV_GSTREAMER1_BACKEND if BR2_PACKAGE_GSTREAMER1
+	help
+	  Enable Gstreamer support for OpenCV.
+
+	  This uses whatever Gstreamer version you enabled: Gstreamer-0.10
+	  or Gstreamer-1.
+
+	  If both Gstreamer version are enable, only Gstreamer-1 will be
+	  used by OpenCV.
+
+config BR2_PACKAGE_OPENCV_GSTREAMER_BACKEND
+	bool
+	# no need to select gstreamer
 	select BR2_PACKAGE_GST_PLUGINS_BASE
 	select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
 
-comment "gstreamer support needs a toolchain w/ wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+config BR2_PACKAGE_OPENCV_GSTREAMER1_BACKEND
+	bool
+	# no need to select gstreamer1
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
+
+comment "gstreamer backend needs either Gstreamer-0.10 or Gstreamer-1"
+	depends on !BR2_PACKAGE_GSTREAMER && !BR2_PACKAGE_GSTREAMER1
+	depends on BR2_USE_MMU # gstreamer -> libglib2
 
 config BR2_PACKAGE_OPENCV_WITH_GTK
 	bool "gtk support"
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
index aa972dc..6162d1e 100644
--- a/package/opencv/opencv.mk
+++ b/package/opencv/opencv.mk
@@ -211,10 +211,15 @@ OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON
+ifeq ($(BR2_PACKAGE_GSTREAMER1),y)
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=OFF
+OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
+else
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=ON
 OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
+endif
 else
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)
-- 
2.4.2




More information about the buildroot mailing list