Bug 1123078 - opencv: Please build against GStreamer 1 on F21 and Rawhide
Summary: opencv: Please build against GStreamer 1 on F21 and Rawhide
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: opencv
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Rex Dieter
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: KDE-GStreamer1
TreeView+ depends on / blocked
 
Reported: 2014-07-24 19:21 UTC by Kevin Kofler
Modified: 2014-08-13 00:14 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2014-08-13 00:14:55 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Kevin Kofler 2014-07-24 19:21:56 UTC
Description of problem:
The opencv package in Fedora is currently built against GStreamer 0.10. Upstream has been defaulting to GStreamer 1.x since December 2013:
https://github.com/Itseez/opencv/commit/8a48802decd4cf355cc0646ad3cd12af40af0bc8

Starting from Fedora 21, we are building the Qt 4 stack (Phonon, QtGStreamer, QtWebKit, Telepathy-Qt4, and the applications using them: ktp-call-ui, kipi-plugins, Kamoso) against GStreamer 1. So the only dependency on GStreamer 0.10 that is left for some KDE applications is through OpenCV.

In addition, those applications now end up with both GStreamer 0.10 and 1.x linked, which is likely to crash&burn. Thus, we need OpenCV to be built with the upstream default GStreamer 1 on Fedora 21 and newer.

Version-Release number of selected component (if applicable):
opencv-2.4.9-1.fc21

How reproducible:
Always

Steps to Reproduce:
1. repoquery --repoid=rawhide --requires opencv

Actual results:
Contains GStreamer 0.10 libraries:
libgstapp-0.10.so.0
libgstbase-0.10.so.0
libgstreamer-0.10.so.0
libgstvideo-0.10.so.0

Expected results:
Contains GStreamer 1.x libraries (libgst*-1.0.so.*) instead.

Additional info:
All that should be needed is to change (or conditionalize) this line:
%{!?_without_gstreamer:BuildRequires:  gstreamer-devel gstreamer-plugins-base-devel}
in the specfile (use gstreamer1-* instead). The version of GStreamer to use is automatically detected (with 1.x being preferred in current releases of OpenCV).

Comment 1 Nicolas Chauvet (kwizart) 2014-07-24 20:50:38 UTC
Is there a tested patch ?

Comment 2 Nicolas Chauvet (kwizart) 2014-07-24 20:56:06 UTC
I've though opencv was using gstreamer1 already, please Fix as needed.

Comment 3 Rex Dieter 2014-07-24 21:24:39 UTC
Boo, checking upstream looks like GST1 support only landed in master branch (presumably tracking opencv-3.0).

opencv 2.4 branch doesn't have it yet. :(

I'll see if there's any chance to backport it reasonably...

Comment 4 Rex Dieter 2014-07-24 21:40:56 UTC
Looks like most gstreamer-related support was easy to pick out and apply against 2.4 branch, now to decide if it's a good idea or not:
4f3453dbbf341b4222dd4dbbadf8addae45b234b
921675c4e233d8f9e78786550d549e9e05ffeb2a
6377922716f37b00e4f8f5eab87a8fbcb16422e5
6d66d11046bb526d508e9543ecc37cfee91f4435
30f7f9717f1f0a8c11ba88d4f04b0c7cf26bba70

Or to go with some sort of opencv-3.0 prerelease... I noticed a couple of git tags:
3.0-ocl-tech-preview
3.0-ocl-tp2

Probably time to ask upstream.

Comment 5 Kevin Kofler 2014-07-25 12:01:10 UTC
I'd go with backporting the GStreamer 1 support to 2.4, unless we have other reasons to want 3.0 now. Prerelease versions of libraries are always a risk due to ABI/API compatibility issues, both with the previous stable release and with the upcoming final release.

Comment 6 Rex Dieter 2014-07-25 12:10:52 UTC
%changelog
* Fri Jul 25 2014 Rex Dieter <rdieter> 2.4.9-2
- backport support for GStreamer 1 (#1123078)


built only for rawhide yet, to allow some extra time for review/testing.

Comment 7 Kevin Kofler 2014-08-12 22:09:28 UTC
Almost 3 weeks later, where are we at?

Comment 8 Rex Dieter 2014-08-12 22:13:36 UTC
OK, I'll merge/build today.


Note You need to log in before you can comment on or make changes to this bug.