summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config.tests/unix/gstreamer/gstreamer.cpp42
-rw-r--r--config.tests/unix/gstreamer/gstreamer.pro22
-rwxr-xr-xconfigure69
3 files changed, 132 insertions, 1 deletions
diff --git a/config.tests/unix/gstreamer/gstreamer.cpp b/config.tests/unix/gstreamer/gstreamer.cpp
new file mode 100644
index 0000000000..cc61498787
--- /dev/null
+++ b/config.tests/unix/gstreamer/gstreamer.cpp
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Toolkit
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#define GST_USE_UNSTABLE_API
+
+#include <gst/gst.h>
+
+int main(int, char**)
+{
+ gst_is_initialized();
+ return 0;
+}
diff --git a/config.tests/unix/gstreamer/gstreamer.pro b/config.tests/unix/gstreamer/gstreamer.pro
new file mode 100644
index 0000000000..a5e158fa21
--- /dev/null
+++ b/config.tests/unix/gstreamer/gstreamer.pro
@@ -0,0 +1,22 @@
+SOURCES += gstreamer.cpp
+
+CONFIG += link_pkgconfig
+
+gst-0.10 {
+ PKGCONFIG_PRIVATE += \
+ gstreamer-0.10 \
+ gstreamer-base-0.10 \
+ gstreamer-audio-0.10 \
+ gstreamer-video-0.10 \
+ gstreamer-pbutils-0.10
+} else:gst-1.0 {
+ PKGCONFIG_PRIVATE += \
+ gstreamer-1.0 \
+ gstreamer-base-1.0 \
+ gstreamer-audio-1.0 \
+ gstreamer-video-1.0 \
+ gstreamer-pbutils-1.0
+}
+
+CONFIG -= qt
+
diff --git a/configure b/configure
index 9c07e3713b..ecf223f074 100755
--- a/configure
+++ b/configure
@@ -644,6 +644,8 @@ CFG_QNX_IMF=auto
CFG_LGMON=auto
CFG_SYSTEM_PROXIES=no
CFG_ANDROID_STYLE_ASSETS=yes
+CFG_GSTREAMER=auto
+CFG_GSTREAMER_VERSION=""
# Target architecture
CFG_ARCH=
@@ -968,7 +970,17 @@ while [ "$#" -gt 0 ]; do
shift;
VAL=$1
fi
- ;;
+ ;;
+ -gstreamer)
+ VAR=gstreamer
+ # this option may or may not be followed by an argument
+ if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
+ VAL=yes
+ else
+ shift;
+ VAL=$1
+ fi
+ ;;
-hostprefix)
VAR=`echo $1 | sed 's,^-\(.*\),\1,'`
# this option may or may not be followed by an argument
@@ -1896,6 +1908,15 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
+ gstreamer)
+ if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] ||
+ [ "$VAL" = "0.10" ] || [ "$VAL" = "1.0" ] ||
+ [ "$VAL" = "no" ]; then
+ CFG_GSTREAMER="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
gtkstyle)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_QGTKSTYLE="$VAL"
@@ -2612,6 +2633,12 @@ Additional options:
-no-libinput ........ Do not support libinput.
* -libinput ........... Enable libinput support.
+ -no-gstreamer ....... Do not support GStreamer.
+ + -gstreamer <version> Enable GStreamer support
+ With no parameter, this will attempt to auto-detect GStreamer 0.10 and
+ 1.0. GStreamer 0.10 is used by default when available.
+ Use 0.10 or 1.0 for <version> to override auto-detection.
+
* -no-system-proxies .. Do not use system network proxies by default.
-system-proxies ..... Use system network proxies by default.
@@ -5852,6 +5879,42 @@ if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
CFG_AUDIO_BACKEND=yes
fi
+# detect GStreamer support
+if [ "$CFG_GSTREAMER" = "auto" ] || [ "$CFG_GSTREAMER" = "yes" ]; then
+ if compileTest unix/gstreamer "GStreamer 0.10" -config gst-0.10; then
+ CFG_GSTREAMER=yes
+ CFG_GSTREAMER_VERSION=0.10
+ elif compileTest unix/gstreamer "GStreamer 1.0" -config gst-1.0; then
+ CFG_GSTREAMER=yes
+ CFG_GSTREAMER_VERSION=1.0
+ else
+ if [ "$CFG_GSTREAMER" = "yes" ]; then
+ echo "GStreamer support cannot be enabled due to functionality tests!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ exit 1
+ fi
+ CFG_GSTREAMER=no
+ fi
+elif [ "$CFG_GSTREAMER" = "0.10" ]; then
+ if compileTest unix/gstreamer "GStreamer 0.10" -config gst-0.10; then
+ CFG_GSTREAMER=yes
+ CFG_GSTREAMER_VERSION=0.10
+ else
+ echo "The GStreamer 0.10 functionality test failed!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ exit 1
+ fi
+elif [ "$CFG_GSTREAMER" = "1.0" ]; then
+ if compileTest unix/gstreamer "GStreamer 1.0" -config gst-1.0; then
+ CFG_GSTREAMER=yes
+ CFG_GSTREAMER_VERSION=1.0
+ else
+ echo "The GStreamer 1.0 functionality test failed!"
+ echo " Turn on verbose messaging (-v) to $0 to see the final report."
+ exit 1
+ fi
+fi
+
if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
echo "Warning: largefile support cannot be disabled for win32."
CFG_LARGEFILE="yes"
@@ -6124,6 +6187,9 @@ if [ "$CFG_PULSEAUDIO" = "yes" ]; then
QT_CONFIG="$QT_CONFIG pulseaudio"
fi
+[ "$CFG_GSTREAMER_VERSION" = "0.10" ] && QT_CONFIG="$QT_CONFIG gstreamer-0.10"
+[ "$CFG_GSTREAMER_VERSION" = "1.0" ] && QT_CONFIG="$QT_CONFIG gstreamer-1.0"
+
if [ "$CFG_COREWLAN" = "yes" ]; then
QT_CONFIG="$QT_CONFIG corewlan"
fi
@@ -6892,6 +6958,7 @@ report_support " Evdev .................." "$CFG_EVDEV"
report_support " FontConfig ............." "$CFG_FONTCONFIG"
report_support " FreeType ..............." "$CFG_FREETYPE" system "system library" yes "bundled copy"
report_support " Glib ..................." "$CFG_GLIB"
+report_support " GStreamer .............." "$CFG_GSTREAMER" yes "$CFG_GSTREAMER_VERSION"
report_support " GTK theme .............." "$CFG_QGTKSTYLE"
report_support " HarfBuzz ..............." "$CFG_HARFBUZZ" system "system library" qt "bundled copy"
report_support " Iconv .................." "$CFG_ICONV"