-Summary: QtGStreamer - libraries integrating Qt with GStreamer
-Summary(pl.UTF-8): QtGStreamer - biblioteki integrujące Qt z GStreamerem
+# TODO: -devel and Qt*Declarative-* packages conflict with gstreamer0.10 equivalents
+#
+# Conditional build:
+%bcond_without qt4 # Qt 4 libraries
+%bcond_without qt5 # Qt 5 libraries
+#
+Summary: QtGStreamer - libraries integrating Qt 4 with GStreamer
+Summary(pl.UTF-8): QtGStreamer - biblioteki integrujące Qt 4 z GStreamerem
Name: qt-gstreamer
-Version: 0.10.0.2
+Version: 1.2.0
Release: 1
License: LGPL v2+
Group: Libraries
-#Source0: http://gstreamer.freedesktop.org/src/qt-gstreamer/%{name}-%{version}.tar.bz2
-Source0: http://gstreamer.freedesktop.org/src/qt-gstreamer/pre/%{name}-%{version}.tar.bz2
-# Source0-md5: 55bd3c5e076b71e13f5d5652a631639a
+Source0: http://gstreamer.freedesktop.org/src/qt-gstreamer/%{name}-%{version}.tar.xz
+# Source0-md5: fd794045a828c184acc1794b08a463fd
+Patch0: boost-moc.patch
URL: http://gstreamer.net/
-BuildRequires: QtCore-devel >= 4.5
-BuildRequires: QtGui-devel >= 4.5
-BuildRequires: QtTest-devel >= 4.5
-BuildRequires: automoc4 >= 0.9.88
+BuildRequires: OpenGL-devel
BuildRequires: bison
-BuildRequires: boost-devel >= 1.40
-BuildRequires: cmake >= 2.8
+BuildRequires: boost-devel >= 1.39
+BuildRequires: cmake >= 2.8.9
+BuildRequires: doxygen
BuildRequires: flex
-BuildRequires: gstreamer-devel >= 0.10.31
-BuildRequires: gstreamer-plugins-base-devel >= 0.10.31
+BuildRequires: glib2-devel >= 2.0
+BuildRequires: gstreamer-devel >= 1.0.0
+BuildRequires: gstreamer-plugins-base-devel >= 1.0.0
BuildRequires: libstdc++-devel >= 6:4.5
BuildRequires: pkgconfig
-BuildRequires: qt4-qmake >= 4.5
-Requires: QtCore >= 4.5
-Requires: QtGui >= 4.5
-Requires: gstreamer >= 0.10.31
-Requires: gstreamer-plugins-base >= 0.10.31
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+%if %{with qt4}
+BuildRequires: QtCore-devel >= 4.7
+BuildRequires: QtDeclarative-devel >= 4.7
+BuildRequires: QtGui-devel >= 4.7
+BuildRequires: QtOpenGL-devel >= 4.7
+BuildRequires: QtTest-devel >= 4.7
+BuildRequires: qt4-qmake >= 4.7
+%endif
+%if %{with qt5}
+BuildRequires: Qt5Core-devel >= 5.0.0
+BuildRequires: Qt5Declarative-devel >= 5.0.0
+BuildRequires: Qt5Gui-devel >= 5.0.0
+BuildRequires: Qt5OpenGL-devel >= 5.0.0
+BuildRequires: Qt5Qml-devel >= 5.0.0
+BuildRequires: Qt5Quick-devel >= 5.0.0
+BuildRequires: Qt5Widgets-devel >= 5.0.0
+BuildRequires: Qt5Test-devel >= 5.0.0
+BuildRequires: qt5-qmake >= 5.0.0
+%endif
+Requires: QtCore >= 4.7
+Requires: QtGui >= 4.7
+Requires: QtOpenGL >= 4.7
+Requires: gstreamer >= 1.0.0
+Requires: gstreamer-plugins-base >= 1.0.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
QtGStreamer is a set of libraries and plugins providing C++ bindings
for GStreamer with a Qt-style API plus some helper classes for
-integrating GStreamer better in Qt applications.
+integrating GStreamer better in Qt 4 applications.
Currently, it consists of the following parts:
- * QtGLib - library providing C++/Qt bindings for parts of the GLib
+ * QtGLib - library providing C++/Qt 4 bindings for parts of the GLib
and GObject APIs, a base on which QtGStreamer is built.
- * QtGStreamer - library providing C++/Qt bindings for GStreamer
+ * QtGStreamer - library providing C++/Qt 4 bindings for GStreamer
* QtGStreamerUi - library providing integration with QtGui;
currently, it only provides a video widget that embeds GStreamer's
video sinks.
+ * QtGStreamerUtils - library providing some high level utility
+ classes.
In addition, it provides a "qwidgetvideosink" GStreamer element, an
video sink element that can draw directly on QWidgets using QPainter.
%description -l pl.UTF-8
QtGStreamer to zestaw bibliotek i wtyczek z wiązaniami C++ do
GStreamera o API w stylu Qt oraz klasami pomocniczymi dla lepszej
-integracji GStreamera w aplikacjach Qt.
+integracji GStreamera w aplikacjach Qt 4.
Obecnie zawiera następujące części:
- - QtGLib - biblioteka z wiązaniami C++/Qt dla części API bibliotek
+ - QtGLib - biblioteka z wiązaniami C++/Qt 4 dla części API bibliotek
GLib i GObject; w oparciu o nią zbudowany jest QtGStreamer
- - QtGStreamer - biblioteka z wiązaniami C++/Qt do GStreamera
+ - QtGStreamer - biblioteka z wiązaniami C++/Qt 4 do GStreamera
- QtGStreamerUi - biblioteka integrująca z QtGui; obecnie zawiera
tylko widget wideo osadzający wyjście obrazu (videosink) GStremera.
+ - QtGStreamerUtils - biblioteka udostępniająca klasy narzędziowe
+ wysokiego poziomu.
Ponadto pakiet udostępnia element GStreamera "qwidgetvideosink" -
element wyjściowy obrazu rysujący bezpośrednio na QWidgetach przy
użyciu QPaintera.
-%description -l pl.UTF-8
-GstRTSP to serwer RTSP zbudowany w oparciu o GStreamera.
-
%package devel
Summary: Header files for QtGStreamer libraries
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek QtGStreamer
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: QtCore-devel >= 4.5
-Requires: QtGui-devel >= 4.5
-Requires: gstreamer-devel >= 0.10.31
-Requires: gstreamer-plugins-base-devel >= 0.10.31
+Requires: QtCore-devel >= 4.7
+Requires: QtGui-devel >= 4.7
+Requires: gstreamer-devel >= 1.0.0
+Requires: gstreamer-plugins-base-devel >= 1.0.0
%description devel
Header files for QtGStreamer libraries.
%description devel -l pl.UTF-8
Pliki nagłówkowe bibliotek QtGStreamer.
+%package -n QtDeclarative-plugin-gstreamer
+Summary: Qt GStreamer plugin for QtDeclarative
+Summary(pl.UTF-8): Wtyczka Qt GStreamer dla QtDeclarative
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: QtDeclarative >= 4.7
+
+%description -n QtDeclarative-plugin-gstreamer
+Qt GStreamer plugin for QtDeclarative.
+
+%description -n QtDeclarative-plugin-gstreamer -l pl.UTF-8
+Wtyczka Qt GStreamer dla QtDeclarative.
+
+%package -n qt5-gstreamer
+Summary: Qt5GStreamer - libraries integrating Qt 5 with GStreamer
+Summary(pl.UTF-8): Qt5GStreamer - biblioteki integrujące Qt 5 z GStreamerem
+Group: Libraries
+Requires: Qt5Core >= 5.0.0
+Requires: Qt5Gui >= 5.0.0
+Requires: Qt5OpenGL >= 5.0.0
+Requires: Qt5Quick >= 5.0.0
+Requires: Qt5Widgets >= 5.0.0
+Requires: gstreamer >= 1.0.0
+Requires: gstreamer-plugins-base >= 1.0.0
+
+%description -n qt5-gstreamer
+Qt5GStreamer is a set of libraries and plugins providing C++ bindings
+for GStreamer with a Qt-style API plus some helper classes for
+integrating GStreamer better in Qt 5 applications.
+
+Currently, it consists of the following parts:
+ * Qt5GLib - library providing C++/Qt 5 bindings for parts of the GLib
+ and GObject APIs, a base on which Qt5GStreamer is built.
+ * Qt5GStreamer - library providing C++/Qt 5 bindings for GStreamer
+ * Qt5GStreamerUi - library providing integration with Qt5Gui;
+ currently, it only provides a video widget that embeds GStreamer's
+ video sinks.
+ * Qt5GStreamerUtils - library providing some high level utility
+ classes.
+
+In addition, it provides a "qwidgetvideosink" GStreamer element, an
+video sink element that can draw directly on QWidgets using QPainter.
+
+%description -n qt5-gstreamer -l pl.UTF-8
+Qt5GStreamer to zestaw bibliotek i wtyczek z wiązaniami C++ do
+GStreamera o API w stylu Qt oraz klasami pomocniczymi dla lepszej
+integracji GStreamera w aplikacjach Qt 5.
+
+Obecnie zawiera następujące części:
+ - Qt5GLib - biblioteka z wiązaniami C++/Qt 5 dla części API bibliotek
+ GLib i GObject; w oparciu o nią zbudowany jest QtGStreamer
+ - Qt5GStreamer - biblioteka z wiązaniami C++/Qt 5 do GStreamera
+ - Qt5GStreamerUi - biblioteka integrująca z Qt5Gui; obecnie zawiera
+ tylko widget wideo osadzający wyjście obrazu (videosink) GStremera.
+ - QtGStreamerUtils - biblioteka udostępniająca klasy narzędziowe
+ wysokiego poziomu.
+
+Ponadto pakiet udostępnia element GStreamera "qwidgetvideosink" -
+element wyjściowy obrazu rysujący bezpośrednio na QWidgetach przy
+użyciu QPaintera.
+
+%package -n qt5-gstreamer-devel
+Summary: Header files for Qt5GStreamer libraries
+Summary(pl.UTF-8): Pliki nagłówkowe bibliotek QtGStreamer
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: Qt5Core-devel >= 5.0.0
+Requires: Qt5Gui-devel >= 5.0.0
+Requires: Qt5Quick-devel >= 5.0.0
+Requires: Qt5Widgets-devel >= 5.0.0
+Requires: gstreamer-devel >= 1.0.0
+Requires: gstreamer-plugins-base-devel >= 1.0.0
+
+%description -n qt5-gstreamer-devel
+Header files for Qt5GStreamer libraries.
+
+%description -n qt5-gstreamer-devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek Qt5GStreamer.
+
+%package -n Qt5Declarative-plugin-gstreamer
+Summary: Qt GStreamer plugin for Qt5Declarative (Quick1)
+Summary(pl.UTF-8): Wtyczka Qt GStreamer dla Qt5Declarative (Quick1)
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: Qt5Declarative >= 5.0.0
+
+%description -n Qt5Declarative-plugin-gstreamer
+Qt GStreamer plugin for Qt5Declarative (Quick1).
+
+%description -n Qt5Declarative-plugin-gstreamer -l pl.UTF-8
+Wtyczka Qt GStreamer dla Qt5Declarative (Quick1).
+
+%package -n Qt5Qml-plugin-gstreamer
+Summary: Qt GStreamer plugin for Qt5Qml (Quick2)
+Summary(pl.UTF-8): Wtyczka Qt GStreamer dla Qt5Qml (Quick2)
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: Qt5Qml >= 5.0.0
+Requires: Qt5Quick >= 5.0.0
+
+%description -n Qt5Qml-plugin-gstreamer
+Qt GStreamer plugin for Qt5Qml (Quick2).
+
+%description -n Qt5Qml-plugin-gstreamer -l pl.UTF-8
+Wtyczka Qt GStreamer dla Qt5Qml (Quick2).
+
%prep
%setup -q
+%patch0 -p1
%build
-install -d build
-cd build
+%if %{with qt4}
+install -d build-qt4
+cd build-qt4
%cmake .. \
-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
-DQTGSTREAMER_EXAMPLES=OFF \
-DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4
+%{__make}
+cd ..
+%endif
+%if %{with qt5}
+install -d build-qt5
+cd build-qt5
+%cmake .. \
+ -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
+ -DQTGSTREAMER_EXAMPLES=OFF \
+ -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt5 \
+ -DQT_VERSION=5
%{__make}
+cd ..
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -C build install \
+%if %{with qt4}
+%{__make} -C build-qt4 install \
+ DESTDIR=$RPM_BUILD_ROOT
+%endif
+
+%if %{with qt5}
+%{__make} -C build-qt5 install \
DESTDIR=$RPM_BUILD_ROOT
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
+%post -n qt5-gstreamer -p /sbin/ldconfig
+%postun -n qt5-gstreamer -p /sbin/ldconfig
+
+%if %{with qt4}
%files
%defattr(644,root,root,755)
-%doc README
+%doc NEWS README
%attr(755,root,root) %{_libdir}/libQtGLib-2.0.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libQtGLib-2.0.so.0
-%attr(755,root,root) %{_libdir}/libQtGStreamer-0.10.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libQtGStreamer-0.10.so.0
-%attr(755,root,root) %{_libdir}/libQtGStreamerUi-0.10.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libQtGStreamerUi-0.10.so.0
-%attr(755,root,root) %{_libdir}/gstreamer-0.10/libgstqwidgetvideosink.so
+%attr(755,root,root) %{_libdir}/libQtGStreamer-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQtGStreamer-1.0.so.0
+%attr(755,root,root) %{_libdir}/libQtGStreamerUi-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQtGStreamerUi-1.0.so.0
+%attr(755,root,root) %{_libdir}/libQtGStreamerUtils-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQtGStreamerUtils-1.0.so.0
+%attr(755,root,root) %{_libdir}/gstreamer-1.0/libgstqtvideosink.so
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libQtGLib-2.0.so
-%attr(755,root,root) %{_libdir}/libQtGStreamer-0.10.so
-%attr(755,root,root) %{_libdir}/libQtGStreamerUi-0.10.so
+%attr(755,root,root) %{_libdir}/libQtGStreamer-1.0.so
+%attr(755,root,root) %{_libdir}/libQtGStreamerUi-1.0.so
+%attr(755,root,root) %{_libdir}/libQtGStreamerUtils-1.0.so
%{_includedir}/QtGStreamer
%{_pkgconfigdir}/QtGLib-2.0.pc
-%{_pkgconfigdir}/QtGStreamer-0.10.pc
-%{_pkgconfigdir}/QtGStreamerUi-0.10.pc
-%dir %{_libdir}/QtGStreamer
-%{_libdir}/QtGStreamer/QtGStreamer*.cmake
+%{_pkgconfigdir}/QtGStreamer-1.0.pc
+%{_pkgconfigdir}/QtGStreamerUi-1.0.pc
+%{_pkgconfigdir}/QtGStreamerUtils-1.0.pc
+%{_libdir}/cmake/QtGStreamer
+
+%files -n QtDeclarative-plugin-gstreamer
+%defattr(644,root,root,755)
+%dir %{_libdir}/qt4/imports/QtGStreamer
+%attr(755,root,root) %{_libdir}/qt4/imports/QtGStreamer/libQtGStreamerQuick1.so
+%{_libdir}/qt4/imports/QtGStreamer/qmldir
+%endif
+
+%if %{with qt5}
+%files -n qt5-gstreamer
+%defattr(644,root,root,755)
+%doc NEWS README
+%attr(755,root,root) %{_libdir}/libQt5GLib-2.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5GLib-2.0.so.0
+%attr(755,root,root) %{_libdir}/libQt5GStreamer-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5GStreamer-1.0.so.0
+%attr(755,root,root) %{_libdir}/libQt5GStreamerQuick-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5GStreamerQuick-1.0.so.0
+%attr(755,root,root) %{_libdir}/libQt5GStreamerUi-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5GStreamerUi-1.0.so.0
+%attr(755,root,root) %{_libdir}/libQt5GStreamerUtils-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5GStreamerUtils-1.0.so.0
+%attr(755,root,root) %{_libdir}/gstreamer-1.0/libgstqt5videosink.so
+
+%files -n qt5-gstreamer-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libQt5GLib-2.0.so
+%attr(755,root,root) %{_libdir}/libQt5GStreamer-1.0.so
+%attr(755,root,root) %{_libdir}/libQt5GStreamerQuick-1.0.so
+%attr(755,root,root) %{_libdir}/libQt5GStreamerUi-1.0.so
+%attr(755,root,root) %{_libdir}/libQt5GStreamerUtils-1.0.so
+%{_includedir}/Qt5GStreamer
+%{_pkgconfigdir}/Qt5GLib-2.0.pc
+%{_pkgconfigdir}/Qt5GStreamer-1.0.pc
+%{_pkgconfigdir}/Qt5GStreamerQuick-1.0.pc
+%{_pkgconfigdir}/Qt5GStreamerUi-1.0.pc
+%{_pkgconfigdir}/Qt5GStreamerUtils-1.0.pc
+%{_libdir}/cmake/Qt5GStreamer
+
+%files -n Qt5Declarative-plugin-gstreamer
+%defattr(644,root,root,755)
+%dir %{_libdir}/qt5/imports/QtGStreamer
+%attr(755,root,root) %{_libdir}/qt5/imports/QtGStreamer/libQtGStreamerQuick1.so
+%{_libdir}/qt5/imports/QtGStreamer/qmldir
+
+%files -n Qt5Qml-plugin-gstreamer
+%defattr(644,root,root,755)
+%dir %{_libdir}/qt5/qml/QtGStreamer
+%attr(755,root,root) %{_libdir}/qt5/qml/QtGStreamer/libQtGStreamerQuick2.so
+%{_libdir}/qt5/qml/QtGStreamer/qmldir
+%endif