diff mbox

[v7,2/7] package/opencv: add gstreamer-1.x support

Message ID 1436036821-10073-3-git-send-email-s.martin49@gmail.com
State Superseded
Headers show

Commit Message

Samuel Martin July 4, 2015, 7:06 p.m. UTC
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
chooses Gstreamer-1 over Gstreamer-0.10 when both are available).

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

---
changes v6->v7:
- move gstreamer1 comment inside the choice (Yann)
- remove extra endif in opencv.mk (catched by Yann)

changes v5->v6:
- rebase
- use a choice

changes v4->v5:
- rebase
- update a/r/t tags
- rework gst-X backend selection (use similar structure for qt)
- remove patch merged upstream

changes v3->v4:
- new patch
---
 package/opencv/Config.in | 13 +++++++++++++
 package/opencv/opencv.mk | 13 ++++++++++---
 2 files changed, 23 insertions(+), 3 deletions(-)

Comments

Yann E. MORIN July 5, 2015, 8:45 a.m. UTC | #1
Samuel, All,

On 2015-07-04 21:06 +0200, Samuel Martin spake thusly:
> 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
> chooses Gstreamer-1 over Gstreamer-0.10 when both are available).
> 
> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>

[--SNIP--]
> diff --git a/package/opencv/Config.in b/package/opencv/Config.in
> index c3b7535..92a1306 100644
> --- a/package/opencv/Config.in
> +++ b/package/opencv/Config.in
> @@ -194,6 +194,19 @@ comment "gstreamer-0.10 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_WITH_GSTREAMER1
> +	bool "gstreamer-1.x"
> +	depends on BR2_USE_MMU # libglib2
> +	depends on BR2_USE_WCHAR # libglib2
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2

I would have used the "gst -> libglib2" trail in the comment because,
again, we're not selecting libglib2, but gst-1, so it's weid to see the
dependency being explained because of libglib2...

[--SNIP--]
> diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
> index 633c2bf..6b1a139 100644
> --- a/package/opencv/opencv.mk
> +++ b/package/opencv/opencv.mk
> @@ -222,11 +222,18 @@ else
>  OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
>  endif
>  
> +ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER)$(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),)
> +OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
> +endif

Why do you split this out, rather than have each be defined in the else
clause of each if-block?

AFAICS, GST and GST_0_10 are mutually exclusive (i.e. when one is ON,
the other is OFF) :

>  ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
> -OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=ON
> +OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=ON

... here: GST=OFFF and GST_0_10=ON ...

>  OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
> -else
> -OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),y)
> +OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=OFF

... and here GST=ON and GST_0_10=OFF

> +OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
>  endif

So, I'd have written something like:

    ifeq ($(BR2_PKG_OCV_GST_0_10),y)
    OCV_CONF_OPTS += -DWITH_GST_0_10=ON
    OVC_DEPS += gst gst-plugins-base
    else
    OCV_CONF_OPTS += -DWITH_GST_0_10=OFF
    endif

    ifeq ($(BR2_PKG_OCV_GST),y)
    OCV_CONF_OPTS += -DWITH_GST=ON
    OVC_DEPS += gst-1 gst-1-plugins-base
    else
    OCV_CONF_OPTS += -DWITH_GST=OFF
    endif

(Sorry, I forgot to say so in my previous review... :-( )

Regards,
Yann E. MORIN.
Samuel Martin July 5, 2015, 9:10 a.m. UTC | #2
Yann,

On Sun, Jul 5, 2015 at 10:45 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Samuel, All,
>
> On 2015-07-04 21:06 +0200, Samuel Martin spake thusly:
>> 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
>> chooses Gstreamer-1 over Gstreamer-0.10 when both are available).
>>
>> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
>> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> [--SNIP--]
>> diff --git a/package/opencv/Config.in b/package/opencv/Config.in
>> index c3b7535..92a1306 100644
>> --- a/package/opencv/Config.in
>> +++ b/package/opencv/Config.in
>> @@ -194,6 +194,19 @@ comment "gstreamer-0.10 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_WITH_GSTREAMER1
>> +     bool "gstreamer-1.x"
>> +     depends on BR2_USE_MMU # libglib2
>> +     depends on BR2_USE_WCHAR # libglib2
>> +     depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
>
> I would have used the "gst -> libglib2" trail in the comment because,
> again, we're not selecting libglib2, but gst-1, so it's weid to see the
> dependency being explained because of libglib2...

done.

>
> [--SNIP--]
>> diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
>> index 633c2bf..6b1a139 100644
>> --- a/package/opencv/opencv.mk
>> +++ b/package/opencv/opencv.mk
>> @@ -222,11 +222,18 @@ else
>>  OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
>>  endif
>>
>> +ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER)$(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),)
>> +OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
>> +endif
>
> Why do you split this out, rather than have each be defined in the else
> clause of each if-block?
>
> AFAICS, GST and GST_0_10 are mutually exclusive (i.e. when one is ON,
> the other is OFF) :
>
>>  ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
>> -OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=ON
>> +OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=ON
>
> ... here: GST=OFFF and GST_0_10=ON ...
>
>>  OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
>> -else
>> -OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),y)
>> +OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=OFF
>
> ... and here GST=ON and GST_0_10=OFF

You're right! Just letf-over stuff from previous bump in which, to get
gst-0.10 support, one has to do GST=ON and GST_0_10=ON.
I'm fixing this.

>
>> +OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
>>  endif
>
> So, I'd have written something like:
>
>     ifeq ($(BR2_PKG_OCV_GST_0_10),y)
>     OCV_CONF_OPTS += -DWITH_GST_0_10=ON
>     OVC_DEPS += gst gst-plugins-base
>     else
>     OCV_CONF_OPTS += -DWITH_GST_0_10=OFF
>     endif
>
>     ifeq ($(BR2_PKG_OCV_GST),y)
>     OCV_CONF_OPTS += -DWITH_GST=ON
>     OVC_DEPS += gst-1 gst-1-plugins-base
>     else
>     OCV_CONF_OPTS += -DWITH_GST=OFF
>     endif
>
> (Sorry, I forgot to say so in my previous review... :-( )
no pb ;)

>
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'

Thanks,
diff mbox

Patch

diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index c3b7535..92a1306 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -194,6 +194,19 @@  comment "gstreamer-0.10 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_WITH_GSTREAMER1
+	bool "gstreamer-1.x"
+	depends on BR2_USE_MMU # libglib2
+	depends on BR2_USE_WCHAR # libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+	select BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
+
+comment "gstreamer-1.x support needs a toolchain w/ wchar, threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+
 endchoice
 
 config BR2_PACKAGE_OPENCV_WITH_GTK
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
index 633c2bf..6b1a139 100644
--- a/package/opencv/opencv.mk
+++ b/package/opencv/opencv.mk
@@ -222,11 +222,18 @@  else
 OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER)$(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),)
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
+endif
+
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=ON
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=ON
 OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
-else
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),y)
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=OFF
+OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)