diff options
author | Martin Jansa <Martin.Jansa@gmail.com> | 2015-05-28 14:50:37 +0200 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2015-05-28 14:50:37 +0200 |
commit | 3fa7bb148ed40bd018ce51b5f20c0c8792638568 (patch) | |
tree | dc7b2847822189d5c0cbc7195fbca3556d6aa6a2 /recipes-qt | |
parent | 17eb158c6d2cd290b054b5bd54311aa44a02d04d (diff) | |
download | meta-qt5-3fa7bb148ed40bd018ce51b5f20c0c8792638568.tar.gz |
qt5: drop recipes for 5.4.1 version
* we don't plan to keep 2 versions, one from tarballs and one from git
now there is 5.4.2 in git recipes and 5.4.1 tarballs aren't very useful
anymore
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt')
66 files changed, 0 insertions, 5845 deletions
diff --git a/recipes-qt/qt5/nativesdk-qtbase_5.4.1.bb b/recipes-qt/qt5/nativesdk-qtbase_5.4.1.bb deleted file mode 100644 index 6215e828..00000000 --- a/recipes-qt/qt5/nativesdk-qtbase_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "9507825e558c980fed602de1f16ec7ae" | ||
5 | SRC_URI[sha256sum] = "8574a593830959c0f7e5430fe77a43832ea7f5299e14a397a74576b3df7fb1b7" | ||
diff --git a/recipes-qt/qt5/nativesdk-qttools_5.4.1.bb b/recipes-qt/qt5/nativesdk-qttools_5.4.1.bb deleted file mode 100644 index d3d549ee..00000000 --- a/recipes-qt/qt5/nativesdk-qttools_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "5b2fd42304e9294bc0f77095fdb35ad6" | ||
5 | SRC_URI[sha256sum] = "11de0f8573843194b134e32af49594514498fadc4fc0b3b0333540fe1f671f72" | ||
diff --git a/recipes-qt/qt5/qt5-5.4.1.inc b/recipes-qt/qt5/qt5-5.4.1.inc deleted file mode 100644 index 495551f6..00000000 --- a/recipes-qt/qt5/qt5-5.4.1.inc +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | # Copyright (C) 2012 O.S. Systems Software LTDA. | ||
2 | # Copyright (C) 2013 Martin Jansa <martin.jansa@gmail.com> | ||
3 | |||
4 | QT_VERSION ?= "${PV}" | ||
5 | |||
6 | # it's different for RC versions | ||
7 | QT_VERSION_DIR ?= "5.4" | ||
8 | |||
9 | SRC_URI += " \ | ||
10 | http://download.qt-project.org/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/submodules/${QT_MODULE}-opensource-src-${QT_VERSION}.tar.xz \ | ||
11 | " | ||
12 | |||
13 | S = "${WORKDIR}/${QT_MODULE}-opensource-src-${QT_VERSION}" | ||
14 | |||
15 | LICENSE = "GFDL-1.3 & BSD & (LGPL-2.1 & Digia-Qt-LGPL-Exception-1.1 | LGPL-3.0)" | ||
16 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=d87ae0d200af76dca730d911474cbe5b \ | ||
17 | file://LICENSE.LGPLv3;md5=ffcfac38a32c9ebdb8ff768fa1702478 \ | ||
18 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
19 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
diff --git a/recipes-qt/qt5/qtbase-native_5.4.1.bb b/recipes-qt/qt5/qtbase-native_5.4.1.bb deleted file mode 100644 index 8ad61776..00000000 --- a/recipes-qt/qt5/qtbase-native_5.4.1.bb +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | do_install_append() { | ||
5 | # for modules which are still using syncqt and call qtPrepareTool(QMAKE_SYNCQT, syncqt) | ||
6 | # e.g. qt3d, qtwayland | ||
7 | ln -sf syncqt.pl ${D}${OE_QMAKE_PATH_QT_BINS}/syncqt | ||
8 | } | ||
9 | |||
10 | SRC_URI[md5sum] = "9507825e558c980fed602de1f16ec7ae" | ||
11 | SRC_URI[sha256sum] = "8574a593830959c0f7e5430fe77a43832ea7f5299e14a397a74576b3df7fb1b7" | ||
diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch deleted file mode 100644 index 5f7ab145..00000000 --- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch +++ /dev/null | |||
@@ -1,351 +0,0 @@ | |||
1 | From df887cc51d1cf5328e536708b461f475e9fb4577 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Mon, 15 Apr 2013 04:29:32 +0200 | ||
4 | Subject: [PATCH 01/13] Add linux-oe-g++ platform | ||
5 | |||
6 | * This qmake.conf unlike other platforms reads most variables from | ||
7 | shell environment, because it's easier for qt recipes to export | ||
8 | *FLAGS or CC specific for given recipe | ||
9 | |||
10 | * configure: add getQEvalMakeConf and getXQEvalMakeConf | ||
11 | Allow expansion of $(...) references from qmake.conf to generate | ||
12 | qmake environment from shell environment as exported by qmake5_base | ||
13 | |||
14 | * configure: don't export SYSTEM_VARIABLES to .qmake.vars | ||
15 | linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is | ||
16 | causing issues as we need g++ to be used as linker | ||
17 | |||
18 | * configure.prf: Allow to add extra arguments to make | ||
19 | sometimes we would like to add -e or define some variable and respect it from both | ||
20 | Makefiles used in configure tests and also Makefiles to build the application | ||
21 | |||
22 | * OE_QMAKE_CXX in order to allow compiler version check to succeed | ||
23 | which allows WebKit to be enabled. | ||
24 | |||
25 | * Other variables in order to let config.tests to use our -platform | ||
26 | settings | ||
27 | |||
28 | * Add setBootstrapEvalVariable to bootstrap qmake with our environment | ||
29 | too, this allows us to use -platform linux-oe-g++ also for native | ||
30 | recipe | ||
31 | |||
32 | * disable gdb_dwarf_index | ||
33 | * qmake is trying to call native gdb and we don't depend on gdb-native | ||
34 | (or even provide gdb-native) | ||
35 | * fixes errors like this: | ||
36 | /bin/sh: gdb: command not found | ||
37 | /bin/sh: line 0: test: -gt: unary operator expected | ||
38 | which are not fatal, but still misleading in do_configure output | ||
39 | |||
40 | Upstream-Status: Inappropriate [embedded specific] | ||
41 | too OE specific, probably cannot be upstreamed | ||
42 | |||
43 | Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c | ||
44 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
45 | --- | ||
46 | configure | 66 ++++++++++++++++------- | ||
47 | mkspecs/features/configure.prf | 4 +- | ||
48 | mkspecs/linux-oe-g++/qmake.conf | 40 ++++++++++++++ | ||
49 | mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++ | ||
50 | 4 files changed, 188 insertions(+), 22 deletions(-) | ||
51 | create mode 100644 mkspecs/linux-oe-g++/qmake.conf | ||
52 | create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h | ||
53 | |||
54 | diff --git a/configure b/configure | ||
55 | index 5ad29bb..0bcc175 100755 | ||
56 | --- a/configure | ||
57 | +++ b/configure | ||
58 | @@ -316,6 +316,16 @@ getQMakeConf() | ||
59 | getSingleQMakeVariable "$1" "$specvals" | ||
60 | } | ||
61 | |||
62 | +# OE qmake.conf is reading some variables from shell env | ||
63 | +# read them from qmake.conf, replace qmake () syntax with shell and eval | ||
64 | +getQEvalMakeConf() | ||
65 | +{ | ||
66 | + VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` | ||
67 | + EVAL=`eval "echo ${VAL}"` | ||
68 | +# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 | ||
69 | + eval "echo ${VAL}" | ||
70 | +} | ||
71 | + | ||
72 | getXQMakeConf() | ||
73 | { | ||
74 | if [ -z "$xspecvals" ]; then | ||
75 | @@ -325,6 +335,16 @@ getXQMakeConf() | ||
76 | getSingleQMakeVariable "$1" "$xspecvals" | ||
77 | } | ||
78 | |||
79 | +# OE qmake.conf is reading some variables from shell env | ||
80 | +# read them from qmake.conf, replace qmake () syntax with shell and eval | ||
81 | +getXQEvalMakeConf() | ||
82 | +{ | ||
83 | + VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` | ||
84 | + EVAL=`eval "echo ${VAL}"` | ||
85 | +# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 | ||
86 | + eval "echo ${VAL}" | ||
87 | +} | ||
88 | + | ||
89 | compilerSupportsFlag() | ||
90 | { | ||
91 | cat >conftest.cpp <<EOF | ||
92 | @@ -541,21 +561,19 @@ fi | ||
93 | # initalize variables | ||
94 | #------------------------------------------------------------------------------- | ||
95 | |||
96 | -SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS" | ||
97 | -for varname in $SYSTEM_VARIABLES; do | ||
98 | +# Export all OE variables for qmake.conf from shell env to QMakeVars | ||
99 | +OE_VARIABLES="AR CC CFLAGS COMPILER CXX CXXFLAGS LDFLAGS LINK QT_CONFIG STRIP" | ||
100 | +for varname in $OE_VARIABLES; do | ||
101 | qmakevarname="${varname}" | ||
102 | - # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS | ||
103 | - if [ "${varname}" = "LDFLAGS" ]; then | ||
104 | - qmakevarname="LFLAGS" | ||
105 | - elif [ "${varname}" = "LD" ]; then | ||
106 | - qmakevarname="LINK" | ||
107 | - fi | ||
108 | cmd=`echo \ | ||
109 | -'if [ -n "\$'${varname}'" ]; then | ||
110 | - QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'" | ||
111 | +'if [ -n "\$OE_QMAKE_'${varname}'" ]; then | ||
112 | + QMakeVar set OE_QMAKE_'${qmakevarname}' "\$OE_QMAKE_'${varname}'" | ||
113 | +# echo "Exporting OE_QMAKE_'${qmakevarname}' value=\"\$OE_QMAKE_'${varname}'\"" >&2 | ||
114 | fi'` | ||
115 | eval "$cmd" | ||
116 | done | ||
117 | + | ||
118 | +SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS" | ||
119 | # Use CC/CXX to run config.tests | ||
120 | mkdir -p "$outpath/config.tests" | ||
121 | rm -f "$outpath/config.tests/.qmake.cache" | ||
122 | @@ -3173,7 +3191,7 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then | ||
123 | [ "$CFG_QGTKSTYLE" = "auto" ] && CFG_QGTKSTYLE=no | ||
124 | fi | ||
125 | |||
126 | -QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX` | ||
127 | +QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX` | ||
128 | |||
129 | TEST_COMPILER=$QMAKE_CONF_COMPILER | ||
130 | |||
131 | @@ -3211,7 +3229,7 @@ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then | ||
132 | exit 1 | ||
133 | fi | ||
134 | fi | ||
135 | -TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS` | ||
136 | +TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS` | ||
137 | |||
138 | GCC_MACHINE_DUMP= | ||
139 | case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac | ||
140 | @@ -3682,6 +3700,14 @@ setBootstrapVariable() | ||
141 | getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" | ||
142 | } | ||
143 | |||
144 | +# OE qmake.conf is reading some variables from shell env | ||
145 | +# read them from qmake.conf, replace qmake () syntax with shell and eval | ||
146 | +setBootstrapEvalVariable() | ||
147 | +{ | ||
148 | + getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" | ||
149 | +} | ||
150 | + | ||
151 | + | ||
152 | # build qmake | ||
153 | if true; then ###[ '!' -f "$outpath/bin/qmake" ]; | ||
154 | echo "Creating qmake..." | ||
155 | @@ -3720,14 +3746,14 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; | ||
156 | fi | ||
157 | |||
158 | [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM= | ||
159 | - setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM" | ||
160 | - setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM" | ||
161 | - setBootstrapVariable QMAKE_CFLAGS | ||
162 | - setBootstrapVariable QMAKE_CFLAGS_SPLIT_SECTIONS | ||
163 | - setBootstrapVariable QMAKE_CXXFLAGS | ||
164 | - setBootstrapVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS | ||
165 | - setBootstrapVariable QMAKE_LFLAGS | ||
166 | - setBootstrapVariable QMAKE_LFLAGS_GCSECTIONS | ||
167 | + setBootstrapEvalVariable QMAKE_CC CC "$CC_TRANSFORM" | ||
168 | + setBootstrapEvalVariable QMAKE_CXX CXX "$CC_TRANSFORM" | ||
169 | + setBootstrapEvalVariable QMAKE_CFLAGS | ||
170 | + setBootstrapEvalVariable QMAKE_CFLAGS_SPLIT_SECTIONS | ||
171 | + setBootstrapEvalVariable QMAKE_CXXFLAGS | ||
172 | + setBootstrapEvalVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS | ||
173 | + setBootstrapEvalVariable QMAKE_LFLAGS | ||
174 | + setBootstrapEvalVariable QMAKE_LFLAGS_GCSECTIONS | ||
175 | |||
176 | if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then | ||
177 | setBootstrapVariable QMAKE_CFLAGS_RELEASE | ||
178 | diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf | ||
179 | index 6b37a04..dcf6025 100644 | ||
180 | --- a/mkspecs/features/configure.prf | ||
181 | +++ b/mkspecs/features/configure.prf | ||
182 | @@ -63,12 +63,12 @@ defineTest(qtCompileTest) { | ||
183 | } | ||
184 | |||
185 | # Clean up after previous run | ||
186 | - exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean") | ||
187 | + exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean") | ||
188 | |||
189 | mkpath($$test_out_dir)|error("Aborting.") | ||
190 | |||
191 | qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") { | ||
192 | - qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") { | ||
193 | + qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") { | ||
194 | log("yes$$escape_expand(\\n)") | ||
195 | msg = "test $$1 succeeded" | ||
196 | write_file($$QMAKE_CONFIG_LOG, msg, append) | ||
197 | diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf | ||
198 | new file mode 100644 | ||
199 | index 0000000..2ad2810 | ||
200 | --- /dev/null | ||
201 | +++ b/mkspecs/linux-oe-g++/qmake.conf | ||
202 | @@ -0,0 +1,40 @@ | ||
203 | +# | ||
204 | +# qmake configuration for linux-g++ with modifications for building with OpenEmbedded | ||
205 | +# | ||
206 | + | ||
207 | +MAKEFILE_GENERATOR = UNIX | ||
208 | +CONFIG += incremental | ||
209 | +QMAKE_INCREMENTAL_STYLE = sublib | ||
210 | + | ||
211 | +include(../common/linux.conf) | ||
212 | + | ||
213 | +# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip | ||
214 | +QMAKE_AR = $(OE_QMAKE_AR) cqs | ||
215 | +QMAKE_STRIP = $(OE_QMAKE_STRIP) | ||
216 | +QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER) | ||
217 | + | ||
218 | +include(../common/gcc-base-unix.conf) | ||
219 | + | ||
220 | +# *FLAGS from gcc-base.conf | ||
221 | +QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS) | ||
222 | +QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS) | ||
223 | +QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) | ||
224 | + | ||
225 | +include(../common/g++-unix.conf) | ||
226 | + | ||
227 | +# tc settings from g++-base.conf | ||
228 | +QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc | ||
229 | +QMAKE_CC = $(OE_QMAKE_CC) | ||
230 | +QMAKE_CXX = $(OE_QMAKE_CXX) | ||
231 | + | ||
232 | +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS) | ||
233 | + | ||
234 | +QMAKE_LINK = $(OE_QMAKE_LINK) | ||
235 | +QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) | ||
236 | +QMAKE_LINK_C = $(OE_QMAKE_LINK) | ||
237 | +QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK) | ||
238 | + | ||
239 | +# for the SDK | ||
240 | +isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG) | ||
241 | + | ||
242 | +load(qt_config) | ||
243 | diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h | ||
244 | new file mode 100644 | ||
245 | index 0000000..dd12003 | ||
246 | --- /dev/null | ||
247 | +++ b/mkspecs/linux-oe-g++/qplatformdefs.h | ||
248 | @@ -0,0 +1,100 @@ | ||
249 | +/**************************************************************************** | ||
250 | +** | ||
251 | +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | ||
252 | +** Contact: http://www.qt-project.org/legal | ||
253 | +** | ||
254 | +** This file is part of the qmake spec of the Qt Toolkit. | ||
255 | +** | ||
256 | +** $QT_BEGIN_LICENSE:LGPL$ | ||
257 | +** Commercial License Usage | ||
258 | +** Licensees holding valid commercial Qt licenses may use this file in | ||
259 | +** accordance with the commercial license agreement provided with the | ||
260 | +** Software or, alternatively, in accordance with the terms contained in | ||
261 | +** a written agreement between you and Digia. For licensing terms and | ||
262 | +** conditions see http://qt.digia.com/licensing. For further information | ||
263 | +** use the contact form at http://qt.digia.com/contact-us. | ||
264 | +** | ||
265 | +** GNU Lesser General Public License Usage | ||
266 | +** Alternatively, this file may be used under the terms of the GNU Lesser | ||
267 | +** General Public License version 2.1 as published by the Free Software | ||
268 | +** Foundation and appearing in the file LICENSE.LGPL included in the | ||
269 | +** packaging of this file. Please review the following information to | ||
270 | +** ensure the GNU Lesser General Public License version 2.1 requirements | ||
271 | +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | ||
272 | +** | ||
273 | +** In addition, as a special exception, Digia gives you certain additional | ||
274 | +** rights. These rights are described in the Digia Qt LGPL Exception | ||
275 | +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | ||
276 | +** | ||
277 | +** GNU General Public License Usage | ||
278 | +** Alternatively, this file may be used under the terms of the GNU | ||
279 | +** General Public License version 3.0 as published by the Free Software | ||
280 | +** Foundation and appearing in the file LICENSE.GPL included in the | ||
281 | +** packaging of this file. Please review the following information to | ||
282 | +** ensure the GNU General Public License version 3.0 requirements will be | ||
283 | +** met: http://www.gnu.org/copyleft/gpl.html. | ||
284 | +** | ||
285 | +** | ||
286 | +** $QT_END_LICENSE$ | ||
287 | +** | ||
288 | +****************************************************************************/ | ||
289 | + | ||
290 | +#ifndef QPLATFORMDEFS_H | ||
291 | +#define QPLATFORMDEFS_H | ||
292 | + | ||
293 | +// Get Qt defines/settings | ||
294 | + | ||
295 | +#include "qglobal.h" | ||
296 | + | ||
297 | +// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs | ||
298 | + | ||
299 | +// 1) need to reset default environment if _BSD_SOURCE is defined | ||
300 | +// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 | ||
301 | +// 3) it seems older glibc need this to include the X/Open stuff | ||
302 | +#ifndef _GNU_SOURCE | ||
303 | +# define _GNU_SOURCE | ||
304 | +#endif | ||
305 | + | ||
306 | +#include <unistd.h> | ||
307 | + | ||
308 | + | ||
309 | +// We are hot - unistd.h should have turned on the specific APIs we requested | ||
310 | + | ||
311 | +#include <features.h> | ||
312 | +#include <pthread.h> | ||
313 | +#include <dirent.h> | ||
314 | +#include <fcntl.h> | ||
315 | +#include <grp.h> | ||
316 | +#include <pwd.h> | ||
317 | +#include <signal.h> | ||
318 | + | ||
319 | +#include <sys/types.h> | ||
320 | +#include <sys/ioctl.h> | ||
321 | +#include <sys/ipc.h> | ||
322 | +#include <sys/time.h> | ||
323 | +#include <sys/shm.h> | ||
324 | +#include <sys/socket.h> | ||
325 | +#include <sys/stat.h> | ||
326 | +#include <sys/wait.h> | ||
327 | +#include <netinet/in.h> | ||
328 | +#ifndef QT_NO_IPV6IFNAME | ||
329 | +#include <net/if.h> | ||
330 | +#endif | ||
331 | + | ||
332 | +#define QT_USE_XOPEN_LFS_EXTENSIONS | ||
333 | +#include "../common/posix/qplatformdefs.h" | ||
334 | + | ||
335 | +#undef QT_SOCKLEN_T | ||
336 | + | ||
337 | +#if defined(__GLIBC__) && (__GLIBC__ >= 2) | ||
338 | +#define QT_SOCKLEN_T socklen_t | ||
339 | +#else | ||
340 | +#define QT_SOCKLEN_T int | ||
341 | +#endif | ||
342 | + | ||
343 | +#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) | ||
344 | +#define QT_SNPRINTF ::snprintf | ||
345 | +#define QT_VSNPRINTF ::vsnprintf | ||
346 | +#endif | ||
347 | + | ||
348 | +#endif // QPLATFORMDEFS_H | ||
349 | -- | ||
350 | 2.3.1 | ||
351 | |||
diff --git a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch deleted file mode 100644 index f8420c04..00000000 --- a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | From 046ff855191e587ce9263f40bd46183c175b6387 Mon Sep 17 00:00:00 2001 | ||
2 | From: Holger Freyther <zecke@selfish.org> | ||
3 | Date: Wed, 26 Sep 2012 17:22:30 +0200 | ||
4 | Subject: [PATCH 02/13] qlibraryinfo: allow to set qt.conf from the outside | ||
5 | using the environment | ||
6 | |||
7 | Allow to set a qt.conf from the outside using the environment. This allows | ||
8 | to inject new prefixes and other paths into qmake. This is needed when using | ||
9 | the same qmake binary to build qt/x11 and qt/embedded | ||
10 | |||
11 | Upstream-Status: Inappropriate [embedded specific] | ||
12 | again very OE specific to read everything from environment (reusing the same | ||
13 | qmake from sstate and replacing all configured paths in it with qt.conf from | ||
14 | environment). | ||
15 | |||
16 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
17 | --- | ||
18 | src/corelib/global/qlibraryinfo.cpp | 5 ++++- | ||
19 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
20 | |||
21 | diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp | ||
22 | index d592032..c418c5e 100644 | ||
23 | --- a/src/corelib/global/qlibraryinfo.cpp | ||
24 | +++ b/src/corelib/global/qlibraryinfo.cpp | ||
25 | @@ -138,7 +138,10 @@ QLibrarySettings::QLibrarySettings() | ||
26 | |||
27 | QSettings *QLibraryInfoPrivate::findConfiguration() | ||
28 | { | ||
29 | - QString qtconfig = QStringLiteral(":/qt/etc/qt.conf"); | ||
30 | + QByteArray config = getenv("QT_CONF_PATH"); | ||
31 | + QString qtconfig = QFile::decodeName(config); | ||
32 | + if(!QFile::exists(qtconfig)) | ||
33 | + qtconfig = QStringLiteral(":/qt/etc/qt.conf"); | ||
34 | #ifdef QT_BOOTSTRAPPED | ||
35 | if(!QFile::exists(qtconfig)) | ||
36 | qtconfig = qt_libraryInfoFile(); | ||
37 | -- | ||
38 | 2.3.1 | ||
39 | |||
diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch deleted file mode 100644 index ff269677..00000000 --- a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch +++ /dev/null | |||
@@ -1,233 +0,0 @@ | |||
1 | From 6c015d77a95910deec0a8c4a265587578531b476 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 | ||
4 | Subject: [PATCH 03/13] Add -external-hostbindir option | ||
5 | |||
6 | * when cross-compiling it's sometimes useful to use existing tools from machine | ||
7 | (or in OpenEmbedded built with separate native recipe) when building for target | ||
8 | |||
9 | * this way we can skip bootstraping tools we already have | ||
10 | |||
11 | * qt_functions: temporary remove isEmpty check | ||
12 | * now we assume that every build will provide QT_EXTERNAL_HOST_BINS value | ||
13 | * isEmpty works correctly only with qmake variables (e.g. $$FOO - | ||
14 | isEmpty(FOO)), but doesn't work with system properties like $$[FOO]. | ||
15 | |||
16 | * cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries | ||
17 | |||
18 | Upstream-Status: Pending | ||
19 | is a lot better for upstreaming (and it was already sort of approved by | ||
20 | Oswald) but in 5.2.0 I've noticed that he added something similar for | ||
21 | android builds | ||
22 | |||
23 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
24 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
25 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
26 | --- | ||
27 | configure | 15 +++++++++++++++ | ||
28 | mkspecs/features/qt_functions.prf | 6 +++++- | ||
29 | mkspecs/features/qt_tool.prf | 4 ++-- | ||
30 | qtbase.pro | 13 ++++++++++--- | ||
31 | src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++--- | ||
32 | src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++-- | ||
33 | src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +- | ||
34 | 7 files changed, 38 insertions(+), 12 deletions(-) | ||
35 | |||
36 | diff --git a/configure b/configure | ||
37 | index 0bcc175..996ce50 100755 | ||
38 | --- a/configure | ||
39 | +++ b/configure | ||
40 | @@ -769,6 +769,7 @@ QT_HOST_BINS= | ||
41 | QT_HOST_LIBS= | ||
42 | QT_HOST_DATA= | ||
43 | QT_EXT_PREFIX= | ||
44 | +QT_EXTERNAL_HOST_BINS= | ||
45 | |||
46 | #flags for SQL drivers | ||
47 | QT_CFLAGS_PSQL= | ||
48 | @@ -888,6 +889,7 @@ while [ "$#" -gt 0 ]; do | ||
49 | -testsdir| \ | ||
50 | -hostdatadir| \ | ||
51 | -hostbindir| \ | ||
52 | + -external-hostbindir| \ | ||
53 | -hostlibdir| \ | ||
54 | -extprefix| \ | ||
55 | -sysroot| \ | ||
56 | @@ -1102,6 +1104,9 @@ while [ "$#" -gt 0 ]; do | ||
57 | extprefix) | ||
58 | QT_EXT_PREFIX="$VAL" | ||
59 | ;; | ||
60 | + external-hostbindir) | ||
61 | + QT_EXTERNAL_HOST_BINS="$VAL" | ||
62 | + ;; | ||
63 | pkg-config) | ||
64 | if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then | ||
65 | CFG_PKGCONFIG="$VAL" | ||
66 | @@ -2265,6 +2270,10 @@ Installation options: | ||
67 | -hostdatadir <dir> . Data used by qmake will be installed to <dir> | ||
68 | (default HOSTPREFIX) | ||
69 | |||
70 | + -external-hostbindir <dir> Use external host executables instead of building them | ||
71 | + (not used by defaut) | ||
72 | + | ||
73 | + | ||
74 | Configure options: | ||
75 | |||
76 | The defaults (*) are usually acceptable. A plus (+) denotes a default value | ||
77 | @@ -2944,6 +2953,11 @@ fi | ||
78 | # command line and environment validation | ||
79 | #------------------------------------------------------------------------------- | ||
80 | |||
81 | +# default is empty, don't call makeabs if it is empty | ||
82 | +if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then | ||
83 | + QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"` | ||
84 | +fi | ||
85 | + | ||
86 | # update QT_CONFIG to show our current predefined configuration | ||
87 | CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h | ||
88 | case "$CFG_QCONFIG" in | ||
89 | @@ -3644,6 +3658,7 @@ static const char qt_configure_prefix_path_strs[][256 + 12] = { | ||
90 | "qt_hbinpath=$QT_HOST_BINS", | ||
91 | "qt_hlibpath=$QT_HOST_LIBS", | ||
92 | "qt_hdatpath=$QT_HOST_DATA", | ||
93 | + "qt_ebinpath=$QT_EXTERNAL_HOST_BINS", | ||
94 | "qt_targspec=$shortxspec", | ||
95 | "qt_hostspec=$shortspec", | ||
96 | #endif | ||
97 | diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf | ||
98 | index 7961f65..e11b23d 100644 | ||
99 | --- a/mkspecs/features/qt_functions.prf | ||
100 | +++ b/mkspecs/features/qt_functions.prf | ||
101 | @@ -192,7 +192,11 @@ defineTest(qtAddRpathLink) { | ||
102 | defineTest(qtPrepareTool) { | ||
103 | cmd = $$eval(QT_TOOL.$${2}.binary) | ||
104 | isEmpty(cmd) { | ||
105 | - cmd = $$[QT_HOST_BINS]/$$2 | ||
106 | + QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] | ||
107 | + isEmpty(QT_EXTERNAL_HOST_BINS): \ | ||
108 | + cmd = $$[QT_HOST_BINS]/$$2 | ||
109 | + else: \ | ||
110 | + cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2 | ||
111 | exists($${cmd}.pl) { | ||
112 | cmd = perl -w $$system_path($${cmd}.pl) | ||
113 | } else: contains(QMAKE_HOST.os, Windows) { | ||
114 | diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf | ||
115 | index 1d3e88c..9b26adf 100644 | ||
116 | --- a/mkspecs/features/qt_tool.prf | ||
117 | +++ b/mkspecs/features/qt_tool.prf | ||
118 | @@ -12,11 +12,11 @@ | ||
119 | load(qt_app) | ||
120 | |||
121 | CONFIG += console | ||
122 | +QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] | ||
123 | |||
124 | # If we are doing a prefix build, create a "module" pri which enables | ||
125 | # qtPrepareTool() to work with the non-installed build. | ||
126 | -# Non-bootstrapped tools always need this because of the environment setup. | ||
127 | -!build_pass:if(!host_build|!force_bootstrap|force_independent) { | ||
128 | +!build_pass:if(!host_build|!force_bootstrap|force_independent):isEmpty(QT_EXTERNAL_HOST_BINS) { | ||
129 | isEmpty(MODULE):MODULE = $$TARGET | ||
130 | |||
131 | !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private) | ||
132 | diff --git a/qtbase.pro b/qtbase.pro | ||
133 | index 6d0de44..ddf7478 100644 | ||
134 | --- a/qtbase.pro | ||
135 | +++ b/qtbase.pro | ||
136 | @@ -69,18 +69,25 @@ CONFIG -= qt | ||
137 | |||
138 | ### installations #### | ||
139 | |||
140 | +QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] | ||
141 | + | ||
142 | #qmake | ||
143 | qmake.path = $$[QT_HOST_BINS] | ||
144 | +qmake.files = $$OUT_PWD/bin/qmake | ||
145 | +!isEmpty(QT_EXTERNAL_HOST_BINS) { | ||
146 | + qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake | ||
147 | +} | ||
148 | equals(QMAKE_HOST.os, Windows) { | ||
149 | - qmake.files = $$OUT_PWD/bin/qmake.exe | ||
150 | -} else { | ||
151 | - qmake.files = $$OUT_PWD/bin/qmake | ||
152 | + qmake.files = $${qmake.files}.exe | ||
153 | } | ||
154 | INSTALLS += qmake | ||
155 | |||
156 | #syncqt | ||
157 | syncqt.path = $$[QT_HOST_BINS] | ||
158 | syncqt.files = $$PWD/bin/syncqt.pl | ||
159 | +!isEmpty(QT_EXTERNAL_HOST_BINS) { | ||
160 | + syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl | ||
161 | +} | ||
162 | INSTALLS += syncqt | ||
163 | |||
164 | # If we are doing a prefix build, create a "module" pri which enables | ||
165 | diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in | ||
166 | index 9bda70e..6e3605a 100644 | ||
167 | --- a/src/corelib/Qt5CoreConfigExtras.cmake.in | ||
168 | +++ b/src/corelib/Qt5CoreConfigExtras.cmake.in | ||
169 | @@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake) | ||
170 | !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) | ||
171 | set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") | ||
172 | !!ELSE | ||
173 | - set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") | ||
174 | + set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\") | ||
175 | !!ENDIF | ||
176 | _qt5_Core_check_file_exists(${imported_location}) | ||
177 | |||
178 | @@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc) | ||
179 | !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) | ||
180 | set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") | ||
181 | !!ELSE | ||
182 | - set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") | ||
183 | + set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\") | ||
184 | !!ENDIF | ||
185 | _qt5_Core_check_file_exists(${imported_location}) | ||
186 | |||
187 | @@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc) | ||
188 | !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) | ||
189 | set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") | ||
190 | !!ELSE | ||
191 | - set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") | ||
192 | + set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\") | ||
193 | !!ENDIF | ||
194 | _qt5_Core_check_file_exists(${imported_location}) | ||
195 | |||
196 | diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in | ||
197 | index 1d94715..301af8f 100644 | ||
198 | --- a/src/dbus/Qt5DBusConfigExtras.cmake.in | ||
199 | +++ b/src/dbus/Qt5DBusConfigExtras.cmake.in | ||
200 | @@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml) | ||
201 | !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) | ||
202 | set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") | ||
203 | !!ELSE | ||
204 | - set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") | ||
205 | + set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") | ||
206 | !!ENDIF | ||
207 | _qt5_DBus_check_file_exists(${imported_location}) | ||
208 | |||
209 | @@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp) | ||
210 | !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) | ||
211 | set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") | ||
212 | !!ELSE | ||
213 | - set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") | ||
214 | + set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") | ||
215 | !!ENDIF | ||
216 | _qt5_DBus_check_file_exists(${imported_location}) | ||
217 | |||
218 | diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in | ||
219 | index 99d87e2..5621dc0 100644 | ||
220 | --- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in | ||
221 | +++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in | ||
222 | @@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic) | ||
223 | !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) | ||
224 | set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") | ||
225 | !!ELSE | ||
226 | - set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") | ||
227 | + set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\") | ||
228 | !!ENDIF | ||
229 | _qt5_Widgets_check_file_exists(${imported_location}) | ||
230 | |||
231 | -- | ||
232 | 2.3.1 | ||
233 | |||
diff --git a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch b/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch deleted file mode 100644 index 45fca3aa..00000000 --- a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch +++ /dev/null | |||
@@ -1,114 +0,0 @@ | |||
1 | From 55e85e61eb93bce5b84f856ea5cc47af73e01a1d Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 27 Apr 2013 23:15:37 +0200 | ||
4 | Subject: [PATCH 04/13] qt_module: Fix pkgconfig and libtool replacements | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | * in situation like this: | ||
10 | QT_SYSROOT:/OE/oe-core/tmp-eglibc/sysroots/qemuarm | ||
11 | QT_INSTALL_LIBS:/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib | ||
12 | QT_INSTALL_LIBS/raw:/usr/lib | ||
13 | QT_INSTALL_LIBS/get:/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib | ||
14 | |||
15 | I don't want the replacement like this: | ||
16 | sed | ||
17 | -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/include,/usr/include/qt5,g" | ||
18 | -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib,/usr/lib,g" | ||
19 | "../../lib/pkgconfig/Qt5Core.pc" | ||
20 | >"/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/image/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib/pkgconfig/Qt5Core.pc" | ||
21 | because that way I'll end with -L/usr/lib in .pc file which is | ||
22 | cross-compile unfriendly, keeping ${libdir}/${includedir} works better | ||
23 | in my case | ||
24 | |||
25 | * qt_module: Fix paths in .prl files | ||
26 | * qmake does not prefix them with QT_SYSROOT when using them | ||
27 | so e.g. when building qtdeclarative we get -L/usr/lib to LINKAGE | ||
28 | variable, which is unsafe for cross-compilation | ||
29 | * writting QT_SYSROOT in .prl files is dangerous for sstate when | ||
30 | builds are in different directories, so we need | ||
31 | SSTATE_SCAN_FILES += "*.pri *.prl" | ||
32 | to make them relocateble | ||
33 | |||
34 | * fix paths in packageconfig files | ||
35 | This reverts parts of: | ||
36 | |||
37 | enable path replacement in installed prl files on all platforms | ||
38 | |||
39 | Task-number: QTBUG-33794 | ||
40 | Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b | ||
41 | Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> | ||
42 | |||
43 | * to debug this, rebuild qtbase and read build/src/corelib/Makefile | ||
44 | * this is example of broken install_target rule (added line feeds): | ||
45 | -$(SED) -e s,/OE/5.3.1-r0/build/lib,/usr/lib,g | ||
46 | -e 's,/OE/5.3.1-r0/build/include,$$\{includedir},g' | ||
47 | -e 's,/OE/5.3.1-r0/build/lib,$$\{libdir},g' | ||
48 | "../../lib/pkgconfig/Qt5Core.pc" | ||
49 | >"$(INSTALL_ROOT)/usr/lib/pkgconfig/Qt5Core.pc" | ||
50 | change .prf files, create copy of WORKDIR, re-excecute only | ||
51 | do_configure task and compare generated Makefile, repeat until | ||
52 | replace in generated Makefile works ok, then refresh patch and | ||
53 | try complete rebuild for qtbase | ||
54 | * if everything is ok, then try: | ||
55 | image $ grep -R "\-L/usr" . | ||
56 | image $ grep -R "\-I/usr" . | ||
57 | and it should return only few cases of | ||
58 | qmake.conf:QMAKE_LFLAGS_THREAD = -L/usr/lib/threads | ||
59 | for aix* platformas | ||
60 | |||
61 | Change-Id: Ie1c94b15f2a4e736b65b4d0924d99eb2a7d92a6c | ||
62 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
63 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
64 | --- | ||
65 | mkspecs/features/qt_common.prf | 2 +- | ||
66 | mkspecs/features/qt_module.prf | 15 +++++++++++++++ | ||
67 | 2 files changed, 16 insertions(+), 1 deletion(-) | ||
68 | |||
69 | diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf | ||
70 | index eb65e73..4db40d0 100644 | ||
71 | --- a/mkspecs/features/qt_common.prf | ||
72 | +++ b/mkspecs/features/qt_common.prf | ||
73 | @@ -33,7 +33,7 @@ contains(TEMPLATE, .*lib) { | ||
74 | lib_replace.replace = | ||
75 | } else { | ||
76 | lib_replace.match = $$rplbase/lib | ||
77 | - lib_replace.replace = $$qt_libdir | ||
78 | + lib_replace.replace = "\$$\\{libdir}" | ||
79 | } | ||
80 | lib_replace.CONFIG = path | ||
81 | QMAKE_PRL_INSTALL_REPLACE += lib_replace | ||
82 | diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf | ||
83 | index d213f9e..915c596 100644 | ||
84 | --- a/mkspecs/features/qt_module.prf | ||
85 | +++ b/mkspecs/features/qt_module.prf | ||
86 | @@ -192,10 +192,25 @@ unix|mingw { | ||
87 | QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module | ||
88 | QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace | ||
89 | |||
90 | + pkgconfig_include_replace.match = $$rplbase/include | ||
91 | + pkgconfig_include_replace.replace = "\$$\\{includedir}" | ||
92 | + pkgconfig_include_replace.CONFIG = path | ||
93 | + QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace | ||
94 | + | ||
95 | unix { | ||
96 | CONFIG += create_libtool explicitlib | ||
97 | QMAKE_LIBTOOL_LIBDIR = $$qt_libdir | ||
98 | QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace | ||
99 | + # add '=' as sysroot in .la files | ||
100 | + lafile_replace.match = "-L\$${libdir}" | ||
101 | + lafile_replace.replace = "-L=\$$\\{libdir}" | ||
102 | + lafile_replace.CONFIG = path | ||
103 | + QMAKE_LIBTOOL_INSTALL_REPLACE += lafile_replace | ||
104 | + # drop -L/usr/lib in .prl files | ||
105 | + prl_replace.match = "-L\$${libdir}" | ||
106 | + prl_replace.replace = "" | ||
107 | + prl_replace.CONFIG = path | ||
108 | + QMAKE_PRL_INSTALL_REPLACE += prl_replace | ||
109 | } | ||
110 | } | ||
111 | |||
112 | -- | ||
113 | 2.3.1 | ||
114 | |||
diff --git a/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch b/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch deleted file mode 100644 index 4a71e0f2..00000000 --- a/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch +++ /dev/null | |||
@@ -1,97 +0,0 @@ | |||
1 | From 129d2a82da2ef6eede761967d981c5edcc0820d8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Mon, 21 Apr 2014 19:22:04 +0200 | ||
4 | Subject: [PATCH 05/13] Revert "eglfs: Print the chosen config in debug mode" | ||
5 | |||
6 | With this change the build is failing with: | ||
7 | | In file included from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/eglplatform.h:118:0, | ||
8 | | from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/egl.h:36, | ||
9 | | from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext_p.h:51, | ||
10 | | from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext.cpp:34: | ||
11 | | ../../include/QtCore/../../../git/src/corelib/io/qtextstream.h:72:10: error: expected identifier before 'int' | ||
12 | | enum Status { | ||
13 | | ^ | ||
14 | | In file included from ../../include/QtCore/qtextstream.h:1:0, | ||
15 | | from ../../include/QtCore/../../../git/src/corelib/io/qdebug.h:42, | ||
16 | | from ../../include/QtCore/qdebug.h:1, | ||
17 | | from ../../include/QtCore/QDebug:1, | ||
18 | | from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext.cpp:40: | ||
19 | | ../../include/QtCore/../../../git/src/corelib/io/qtextstream.h:72:17: error: expected unqualified-id before '{' token | ||
20 | | enum Status { | ||
21 | | ^ | ||
22 | | Makefile:3896: recipe for target '.obj/qeglplatformcontext.o' failed | ||
23 | | make[2]: *** [.obj/qeglplatformcontext.o] Error 1 | ||
24 | | make[2]: *** Waiting for unfinished jobs.... | ||
25 | | /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:196:5: error: 'Display' redeclared as different kind of symbol | ||
26 | | Display | ||
27 | | ^ | ||
28 | | In file included from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/eglplatform.h:118:0, | ||
29 | | from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/egl.h:36, | ||
30 | | from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration_p.h:51, | ||
31 | | from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:55: | ||
32 | | /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/X11/Xlib.h:499:26: note: previous declaration 'typedef struct _XDisplay Display' | ||
33 | | typedef struct _XDisplay Display; | ||
34 | | ^ | ||
35 | | /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp: In member function 'virtual void* QEGLPlatformIntegration::nativeResourceForScreen(const QByteArray&, QScreen*)': | ||
36 | | /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:239:17: error: expected primary-expression before ':' token | ||
37 | | case Display: | ||
38 | | ^ | ||
39 | | Makefile:5486: recipe for target '.obj/qeglplatformintegration.o' failed | ||
40 | |||
41 | This reverts commit dc685cf6331f5fb46285cf10d6464c2ecf41f73e. | ||
42 | |||
43 | Will be partially resolved in newer revision with: | ||
44 | https://codereview.qt-project.org/96220 | ||
45 | |||
46 | Change-Id: I7a6a926b7525d4f137824c71f2ec8cd089c21f13 | ||
47 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
48 | --- | ||
49 | src/platformsupport/eglconvenience/qeglconvenience.cpp | 4 +++- | ||
50 | src/platformsupport/eglconvenience/qeglplatformcontext.cpp | 7 ------- | ||
51 | 2 files changed, 3 insertions(+), 8 deletions(-) | ||
52 | |||
53 | diff --git a/src/platformsupport/eglconvenience/qeglconvenience.cpp b/src/platformsupport/eglconvenience/qeglconvenience.cpp | ||
54 | index c1a491c..7a0fc87 100644 | ||
55 | --- a/src/platformsupport/eglconvenience/qeglconvenience.cpp | ||
56 | +++ b/src/platformsupport/eglconvenience/qeglconvenience.cpp | ||
57 | @@ -443,9 +443,11 @@ void q_printEglConfig(EGLDisplay display, EGLConfig config) | ||
58 | for (index = 0; attrs[index].attr != -1; ++index) { | ||
59 | EGLint value; | ||
60 | if (eglGetConfigAttrib(display, config, attrs[index].attr, &value)) { | ||
61 | - qDebug("\t%s: %d", attrs[index].name, (int)value); | ||
62 | + qWarning("\t%s: %d\n", attrs[index].name, (int)value); | ||
63 | } | ||
64 | } | ||
65 | + | ||
66 | + qWarning("\n"); | ||
67 | } | ||
68 | |||
69 | #ifdef Q_OS_UNIX | ||
70 | diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp | ||
71 | index 7cc3300..ccbd974a 100644 | ||
72 | --- a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp | ||
73 | +++ b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp | ||
74 | @@ -37,7 +37,6 @@ | ||
75 | #include <qpa/qplatformwindow.h> | ||
76 | #include <QOpenGLContext> | ||
77 | #include <QtPlatformHeaders/QEGLNativeContext> | ||
78 | -#include <QDebug> | ||
79 | |||
80 | QT_BEGIN_NAMESPACE | ||
81 | |||
82 | @@ -181,12 +180,6 @@ void QEGLPlatformContext::init(const QSurfaceFormat &format, QPlatformOpenGLCont | ||
83 | return; | ||
84 | } | ||
85 | |||
86 | - static const bool printConfig = qgetenv("QT_QPA_EGLFS_DEBUG").toInt(); | ||
87 | - if (printConfig) { | ||
88 | - qDebug() << "Created context for format" << format << "with config:"; | ||
89 | - q_printEglConfig(m_eglDisplay, m_eglConfig); | ||
90 | - } | ||
91 | - | ||
92 | updateFormatFromGL(); | ||
93 | } | ||
94 | |||
95 | -- | ||
96 | 2.3.1 | ||
97 | |||
diff --git a/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch b/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch deleted file mode 100644 index 84e5dbac..00000000 --- a/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From f2092e73beaffe163a5c7f66f73956477f0d97a1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Wed, 19 Mar 2014 18:32:28 +0100 | ||
4 | Subject: [PATCH 06/13] qeglplatformintegration: Undefine CursorShape from X.h | ||
5 | |||
6 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
7 | --- | ||
8 | src/platformsupport/eglconvenience/qeglplatformintegration_p.h | 6 ++++++ | ||
9 | 1 file changed, 6 insertions(+) | ||
10 | |||
11 | diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
12 | index 4d7adce..c9b6873 100644 | ||
13 | --- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
14 | +++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
15 | @@ -50,6 +50,12 @@ | ||
16 | #include <QtCore/QVariant> | ||
17 | #include <EGL/egl.h> | ||
18 | |||
19 | +// Undefine CursorShape from X.h, which is causing breakage in Qt::CursorShape in platformsupport/eglconvenience/ | ||
20 | +// /usr/include/X11/X.h:#define CursorShape 0 /* largest size that can be displayed */ | ||
21 | +#ifdef CursorShape | ||
22 | +#undef CursorShape | ||
23 | +#endif | ||
24 | + | ||
25 | QT_BEGIN_NAMESPACE | ||
26 | |||
27 | class QEGLPlatformScreen; | ||
28 | -- | ||
29 | 2.3.1 | ||
30 | |||
diff --git a/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch b/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch deleted file mode 100644 index 1bbda758..00000000 --- a/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | From 24e36583f44a17ce6d21e4392dd4f6a83ea9846a Mon Sep 17 00:00:00 2001 | ||
2 | From: Denys Dmytriyenko <denys@ti.com> | ||
3 | Date: Mon, 11 Nov 2013 20:27:30 -0500 | ||
4 | Subject: [PATCH 07/13] configure: bump path length from 256 to 512 characters | ||
5 | |||
6 | Increase the path length that gets hardcoded into generated config.cpp file | ||
7 | from 256 to 512 characters, as nativesdk path can be quite long. | ||
8 | |||
9 | Signed-off-by: Denys Dmytriyenko <denys@ti.com> | ||
10 | --- | ||
11 | configure | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/configure b/configure | ||
15 | index 996ce50..a40d471 100755 | ||
16 | --- a/configure | ||
17 | +++ b/configure | ||
18 | @@ -3622,7 +3622,7 @@ static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$ | ||
19 | static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`"; | ||
20 | |||
21 | /* Installation Info */ | ||
22 | -static const char qt_configure_prefix_path_strs[][256 + 12] = { | ||
23 | +static const char qt_configure_prefix_path_strs[][512 + 12] = { | ||
24 | #ifndef QT_BUILD_QMAKE | ||
25 | "qt_prfxpath=$QT_SYSROOT_PREFIX", | ||
26 | "qt_docspath=$QT_SYSROOT_DOCS", | ||
27 | -- | ||
28 | 2.3.1 | ||
29 | |||
diff --git a/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch b/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch deleted file mode 100644 index f908e780..00000000 --- a/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | From 7886d849487f0c0bbfa54f9ef9708fdc9cc84c04 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Wed, 5 Feb 2014 18:35:08 +0100 | ||
4 | Subject: [PATCH 08/13] eglfs: fix egl error for platforms only supporting one | ||
5 | window/surface | ||
6 | MIME-Version: 1.0 | ||
7 | Content-Type: text/plain; charset=UTF-8 | ||
8 | Content-Transfer-Encoding: 8bit | ||
9 | |||
10 | running qmlscene -platform eglfs <filename>.qml | ||
11 | |||
12 | caused | ||
13 | |||
14 | EGL Error : Could not create the egl surface: error = 0x3003 | ||
15 | |||
16 | Rebased version of [1-2] | ||
17 | |||
18 | Upstream-Status: unknown | ||
19 | |||
20 | [1] http://repository.timesys.com/buildsources/q/qt-everywhere-opensource/qt-everywhere-opensource-5.1.1/qt-everywhere-opensource-5.1.1-qeglfswindow.cpp.patch | ||
21 | [2] https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/qeglfswindow.cpp.patch | ||
22 | |||
23 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
24 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
25 | --- | ||
26 | src/plugins/platforms/eglfs/qeglfswindow.cpp | 16 +++++++++++++++- | ||
27 | 1 file changed, 15 insertions(+), 1 deletion(-) | ||
28 | |||
29 | diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
30 | index f5839e0..5ebde6d 100644 | ||
31 | --- a/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
32 | +++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
33 | @@ -66,6 +66,15 @@ void QEglFSWindow::create() | ||
34 | |||
35 | m_flags = Created; | ||
36 | |||
37 | + static EGLSurface __singleWindowSurface; | ||
38 | + if(QEglFSHooks::hooks() && ! QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows) && (__singleWindowSurface)) { | ||
39 | + m_surface = __singleWindowSurface; | ||
40 | +#ifdef QEGL_EXTRA_DEBUG | ||
41 | + qWarning("Surface recreate request, re-using %x\n", m_surface); | ||
42 | +#endif | ||
43 | + return; | ||
44 | + } | ||
45 | + | ||
46 | if (window()->type() == Qt::Desktop) | ||
47 | return; | ||
48 | |||
49 | @@ -79,7 +88,7 @@ void QEglFSWindow::create() | ||
50 | return; | ||
51 | } | ||
52 | |||
53 | -#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK) | ||
54 | +#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK) || defined(EGL_API_FB) | ||
55 | // We can have either a single OpenGL window or multiple raster windows. | ||
56 | // Other combinations cannot work. | ||
57 | qFatal("EGLFS: OpenGL windows cannot be mixed with others."); | ||
58 | @@ -99,6 +108,11 @@ void QEglFSWindow::create() | ||
59 | |||
60 | resetSurface(); | ||
61 | |||
62 | + if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows)) | ||
63 | + { | ||
64 | + __singleWindowSurface = m_surface; | ||
65 | + } | ||
66 | + | ||
67 | screen->setPrimarySurface(m_surface); | ||
68 | |||
69 | if (isRaster()) { | ||
70 | -- | ||
71 | 2.3.1 | ||
72 | |||
diff --git a/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch deleted file mode 100644 index f7062ffe..00000000 --- a/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch +++ /dev/null | |||
@@ -1,157 +0,0 @@ | |||
1 | From 47ee1da94f74c46fd692bcd55c2770f6c3be92f3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jani Hautakangas <jani.hautakangas@ixonos.com> | ||
3 | Date: Thu, 16 May 2013 09:52:07 +0300 | ||
4 | Subject: [PATCH 09/13] QOpenGLPaintDevice sub-area support | ||
5 | |||
6 | Allows creating QOpenGLPaintDevice targetting sub-area | ||
7 | of binded framebuffer. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80 | ||
12 | |||
13 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
14 | --- | ||
15 | src/gui/opengl/qopenglpaintdevice.cpp | 11 +++++++++++ | ||
16 | src/gui/opengl/qopenglpaintdevice.h | 2 ++ | ||
17 | src/gui/opengl/qopenglpaintdevice_p.h | 1 + | ||
18 | src/gui/opengl/qopenglpaintengine.cpp | 9 +++++++-- | ||
19 | src/gui/opengl/qopenglpaintengine_p.h | 1 + | ||
20 | src/gui/opengl/qopengltextureglyphcache.cpp | 2 +- | ||
21 | 6 files changed, 23 insertions(+), 3 deletions(-) | ||
22 | |||
23 | diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp | ||
24 | index a08d26f..cff3155 100644 | ||
25 | --- a/src/gui/opengl/qopenglpaintdevice.cpp | ||
26 | +++ b/src/gui/opengl/qopenglpaintdevice.cpp | ||
27 | @@ -135,6 +135,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height) | ||
28 | { | ||
29 | } | ||
30 | |||
31 | +QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height) | ||
32 | + : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height))) | ||
33 | +{ | ||
34 | + d_ptr->offset = QPoint(x,y); | ||
35 | +} | ||
36 | + | ||
37 | /*! | ||
38 | \internal | ||
39 | */ | ||
40 | @@ -212,6 +218,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const | ||
41 | return d_ptr->ctx; | ||
42 | } | ||
43 | |||
44 | +QPoint QOpenGLPaintDevice::offset() const | ||
45 | +{ | ||
46 | + return d_ptr->offset; | ||
47 | +} | ||
48 | + | ||
49 | /*! | ||
50 | Returns the pixel size of the paint device. | ||
51 | |||
52 | diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h | ||
53 | index 10cee84..a6683c5 100644 | ||
54 | --- a/src/gui/opengl/qopenglpaintdevice.h | ||
55 | +++ b/src/gui/opengl/qopenglpaintdevice.h | ||
56 | @@ -53,12 +53,14 @@ public: | ||
57 | QOpenGLPaintDevice(); | ||
58 | explicit QOpenGLPaintDevice(const QSize &size); | ||
59 | QOpenGLPaintDevice(int width, int height); | ||
60 | + QOpenGLPaintDevice(int x, int y, int width, int height); | ||
61 | virtual ~QOpenGLPaintDevice(); | ||
62 | |||
63 | int devType() const { return QInternal::OpenGL; } | ||
64 | QPaintEngine *paintEngine() const; | ||
65 | |||
66 | QOpenGLContext *context() const; | ||
67 | + QPoint offset() const; | ||
68 | QSize size() const; | ||
69 | void setSize(const QSize &size); | ||
70 | void setDevicePixelRatio(qreal devicePixelRatio); | ||
71 | diff --git a/src/gui/opengl/qopenglpaintdevice_p.h b/src/gui/opengl/qopenglpaintdevice_p.h | ||
72 | index 0b01129..211f2f3 100644 | ||
73 | --- a/src/gui/opengl/qopenglpaintdevice_p.h | ||
74 | +++ b/src/gui/opengl/qopenglpaintdevice_p.h | ||
75 | @@ -65,6 +65,7 @@ public: | ||
76 | |||
77 | public: | ||
78 | QSize size; | ||
79 | + QPoint offset; | ||
80 | QOpenGLContext *ctx; | ||
81 | |||
82 | qreal dpmx; | ||
83 | diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp | ||
84 | index 8eeaa31..e17520e 100644 | ||
85 | --- a/src/gui/opengl/qopenglpaintengine.cpp | ||
86 | +++ b/src/gui/opengl/qopenglpaintengine.cpp | ||
87 | @@ -2080,7 +2080,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev) | ||
88 | for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i) | ||
89 | d->vertexAttributeArraysEnabledState[i] = false; | ||
90 | |||
91 | + const QPoint offset = d->device->offset(); | ||
92 | const QSize sz = d->device->size(); | ||
93 | + d->x = offset.x(); | ||
94 | + d->y = offset.y(); | ||
95 | d->width = sz.width(); | ||
96 | d->height = sz.height(); | ||
97 | d->mode = BrushDrawingMode; | ||
98 | @@ -2167,7 +2170,7 @@ void QOpenGL2PaintEngineEx::ensureActive() | ||
99 | d->device->ensureActiveTarget(); | ||
100 | |||
101 | d->transferMode(BrushDrawingMode); | ||
102 | - d->funcs.glViewport(0, 0, d->width, d->height); | ||
103 | + d->funcs.glViewport(d->x, d->y, d->width, d->height); | ||
104 | d->needsSync = false; | ||
105 | d->shaderManager->setDirty(); | ||
106 | d->syncGlState(); | ||
107 | @@ -2209,6 +2212,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest() | ||
108 | if (bounds == QRect(0, 0, width, height)) { | ||
109 | funcs.glDisable(GL_SCISSOR_TEST); | ||
110 | } else { | ||
111 | + bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height()); | ||
112 | funcs.glEnable(GL_SCISSOR_TEST); | ||
113 | setScissor(bounds); | ||
114 | } | ||
115 | @@ -2217,12 +2221,13 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest() | ||
116 | |||
117 | void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect) | ||
118 | { | ||
119 | - const int left = rect.left(); | ||
120 | + const int left = rect.left() + x; | ||
121 | const int width = rect.width(); | ||
122 | int bottom = height - (rect.top() + rect.height()); | ||
123 | if (device->paintFlipped()) { | ||
124 | bottom = rect.top(); | ||
125 | } | ||
126 | + bottom += y; | ||
127 | const int height = rect.height(); | ||
128 | |||
129 | funcs.glScissor(left, bottom, width, height); | ||
130 | diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h | ||
131 | index 9722ea3..07e3163 100644 | ||
132 | --- a/src/gui/opengl/qopenglpaintengine_p.h | ||
133 | +++ b/src/gui/opengl/qopenglpaintengine_p.h | ||
134 | @@ -264,6 +264,7 @@ public: | ||
135 | QOpenGL2PaintEngineEx* q; | ||
136 | QOpenGLEngineShaderManager* shaderManager; | ||
137 | QOpenGLPaintDevice* device; | ||
138 | + int x, y; | ||
139 | int width, height; | ||
140 | QOpenGLContext *ctx; | ||
141 | EngineMode mode; | ||
142 | diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp | ||
143 | index cd268cd..997bc35 100644 | ||
144 | --- a/src/gui/opengl/qopengltextureglyphcache.cpp | ||
145 | +++ b/src/gui/opengl/qopengltextureglyphcache.cpp | ||
146 | @@ -310,7 +310,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height) | ||
147 | funcs->glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo); | ||
148 | |||
149 | if (pex != 0) { | ||
150 | - funcs->glViewport(0, 0, pex->width, pex->height); | ||
151 | + funcs->glViewport(pex->x, pex->y, pex->width, pex->height); | ||
152 | pex->updateClipScissorTest(); | ||
153 | } else { | ||
154 | if (m_vao.isCreated()) { | ||
155 | -- | ||
156 | 2.3.1 | ||
157 | |||
diff --git a/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch b/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch deleted file mode 100644 index 188ae157..00000000 --- a/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | From d6158c2cb6ce64af531246636c3b2adb35afeb72 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Thu, 18 Dec 2014 13:41:09 +0100 | ||
4 | Subject: [PATCH 10/13] Make Qt5GuiConfigExtras.cmake find gl(es) include dir | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | In configure QMAKE_INCDIR_OPENGL is set with pkg-config. Without | ||
10 | PKG_CONFIG_ALLOW_SYSTEM_CFLAGS set, pkg-config returns paths outside | ||
11 | /usr/include only (in my case /usr/include/libdrm). With NO_DEFAULT_PATH set | ||
12 | gl(es) include directories cannot be found. Cmake builds depending on | ||
13 | Qt5Gui error out with | ||
14 | |||
15 | | Failed to find "GLES2/gl2.h" in "/usr/include/libdrm" | ||
16 | |||
17 | Upstream-Status: submitted [1] | ||
18 | |||
19 | [1] https://bugreports.qt-project.org/browse/QTBUG-43445 | ||
20 | |||
21 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
22 | --- | ||
23 | src/gui/Qt5GuiConfigExtras.cmake.in | 3 --- | ||
24 | 1 file changed, 3 deletions(-) | ||
25 | |||
26 | diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in | ||
27 | index 9a846d4..07869ef 100644 | ||
28 | --- a/src/gui/Qt5GuiConfigExtras.cmake.in | ||
29 | +++ b/src/gui/Qt5GuiConfigExtras.cmake.in | ||
30 | @@ -57,9 +57,6 @@ set(Qt5Gui_OPENGL_LIBRARIES Qt5::Gui_GLESv2) | ||
31 | set(_GL_INCDIRS $$CMAKE_GL_INCDIRS) | ||
32 | find_path(_qt5gui_OPENGL_INCLUDE_DIR $$CMAKE_GL_HEADER_NAME | ||
33 | PATHS ${_GL_INCDIRS} | ||
34 | -!!IF !mac | ||
35 | - NO_DEFAULT_PATH | ||
36 | -!!ENDIF | ||
37 | ) | ||
38 | if (NOT _qt5gui_OPENGL_INCLUDE_DIR) | ||
39 | message(FATAL_ERROR \"Failed to find \\\"$$CMAKE_GL_HEADER_NAME\\\" in \\\"${_GL_INCDIRS}\\\".\") | ||
40 | -- | ||
41 | 2.3.1 | ||
42 | |||
diff --git a/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch b/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch deleted file mode 100644 index b0870c85..00000000 --- a/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From fa0cf613bc9ef4de65de12791eedc337de85d911 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 16 Nov 2013 00:32:30 +0100 | ||
4 | Subject: [PATCH 11/13] Always build uic | ||
5 | |||
6 | Even if we are not building gui or widgets. This tool is needed later | ||
7 | as a native tool when compiling the target. | ||
8 | |||
9 | Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6 | ||
10 | Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com> | ||
11 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
12 | --- | ||
13 | src/src.pro | 2 +- | ||
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/src/src.pro b/src/src.pro | ||
17 | index 83f7587..9dbcf70 100644 | ||
18 | --- a/src/src.pro | ||
19 | +++ b/src/src.pro | ||
20 | @@ -163,7 +163,7 @@ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent | ||
21 | } | ||
22 | } | ||
23 | } | ||
24 | -SUBDIRS += src_plugins src_tools_qdoc | ||
25 | +SUBDIRS += src_plugins src_tools_qdoc src_tools_uic | ||
26 | |||
27 | nacl: SUBDIRS -= src_network src_testlib | ||
28 | |||
29 | -- | ||
30 | 2.3.1 | ||
31 | |||
diff --git a/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch b/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch deleted file mode 100644 index 874bc697..00000000 --- a/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | From 7943ec2256163f6049d442ff00f579a5cbff5acc Mon Sep 17 00:00:00 2001 | ||
2 | From: Michael Krelin <hacker@klever.net> | ||
3 | Date: Mon, 29 Oct 2012 20:07:49 -0700 | ||
4 | Subject: [PATCH 11/13] qmake: don't build it in configure, but allow to build | ||
5 | it separately | ||
6 | |||
7 | * it is already built in qtbase-native, so we don't need it in configure | ||
8 | * allow building a separate qmake for the target | ||
9 | |||
10 | Upstream-Status: Inappropriate [configuration] | ||
11 | OE specific for native/target builds | ||
12 | |||
13 | Signed-off-by: Yu Ke <ke.yu@intel.com> | ||
14 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
15 | Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com> | ||
16 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
17 | configure | 2 +- | ||
18 | qmake/qmake.pri | 3 ++- | ||
19 | qmake/qmake.pro | 2 ++ | ||
20 | 3 files changed, 5 insertions(+), 2 deletions(-) | ||
21 | --- | ||
22 | configure | 2 +- | ||
23 | qmake/qmake.pri | 3 ++- | ||
24 | qmake/qmake.pro | 1 + | ||
25 | 3 files changed, 4 insertions(+), 2 deletions(-) | ||
26 | |||
27 | diff --git a/configure b/configure | ||
28 | index a40d471..8d15f59 100755 | ||
29 | --- a/configure | ||
30 | +++ b/configure | ||
31 | @@ -3724,7 +3724,7 @@ setBootstrapEvalVariable() | ||
32 | |||
33 | |||
34 | # build qmake | ||
35 | -if true; then ###[ '!' -f "$outpath/bin/qmake" ]; | ||
36 | +if false; then ###[ '!' -f "$outpath/bin/qmake" ]; | ||
37 | echo "Creating qmake..." | ||
38 | |||
39 | mkdir -p "$outpath/qmake" || exit | ||
40 | diff --git a/qmake/qmake.pri b/qmake/qmake.pri | ||
41 | index 4de41d6..69982b7 100644 | ||
42 | --- a/qmake/qmake.pri | ||
43 | +++ b/qmake/qmake.pri | ||
44 | @@ -82,7 +82,8 @@ bootstrap { #Qt code | ||
45 | qjsonparser.cpp \ | ||
46 | qjsonarray.cpp \ | ||
47 | qjsonobject.cpp \ | ||
48 | - qjsonvalue.cpp | ||
49 | + qjsonvalue.cpp \ | ||
50 | + qdebug.cpp | ||
51 | |||
52 | HEADERS+= \ | ||
53 | qbitarray.h \ | ||
54 | diff --git a/qmake/qmake.pro b/qmake/qmake.pro | ||
55 | index 89d6ea5..0ff4a96 100644 | ||
56 | --- a/qmake/qmake.pro | ||
57 | +++ b/qmake/qmake.pro | ||
58 | @@ -8,6 +8,7 @@ CONFIG -= qt | ||
59 | DEFINES += \ | ||
60 | QT_BUILD_QMAKE \ | ||
61 | PROEVALUATOR_FULL | ||
62 | +TARGET = qmake | ||
63 | |||
64 | VPATH += \ | ||
65 | ../src/corelib/global \ | ||
66 | -- | ||
67 | 2.3.1 | ||
68 | |||
diff --git a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch b/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch deleted file mode 100644 index 06476cb8..00000000 --- a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch +++ /dev/null | |||
@@ -1,108 +0,0 @@ | |||
1 | From 932cb18540fc4634e02d048cf9ab9e519ce0811d Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 | ||
4 | Subject: [PATCH 12/13] Add -external-hostbindir option for native(sdk) | ||
5 | |||
6 | * when cross-compiling it's sometimes useful to use existing tools from machine | ||
7 | (or in OpenEmbedded built with separate native recipe) when building for target | ||
8 | |||
9 | * this way we can skip bootstraping tools we already have | ||
10 | |||
11 | * qt_functions: temporary remove isEmpty check | ||
12 | * now we assume that every build will provide QT_EXTERNAL_HOST_BINS value | ||
13 | * isEmpty works correctly only with qmake variables (e.g. $$FOO - | ||
14 | isEmpty(FOO)), but doesn't work with system properties like $$[FOO]. | ||
15 | |||
16 | * cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries | ||
17 | |||
18 | Upstream-Status: Pending | ||
19 | is a lot better for upstreaming (and it was already sort of approved by | ||
20 | Oswald) but in 5.2.0 I've noticed that he added something similar for | ||
21 | android builds | ||
22 | |||
23 | Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37 | ||
24 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
25 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
26 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
27 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
28 | --- | ||
29 | qmake/property.cpp | 1 + | ||
30 | src/corelib/global/qlibraryinfo.cpp | 3 ++- | ||
31 | src/corelib/global/qlibraryinfo.h | 1 + | ||
32 | tools/configure/configureapp.cpp | 8 ++++++++ | ||
33 | 4 files changed, 12 insertions(+), 1 deletion(-) | ||
34 | |||
35 | diff --git a/qmake/property.cpp b/qmake/property.cpp | ||
36 | index 051e056..50da6ed 100644 | ||
37 | --- a/qmake/property.cpp | ||
38 | +++ b/qmake/property.cpp | ||
39 | @@ -67,6 +67,7 @@ static const struct { | ||
40 | { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true }, | ||
41 | { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true }, | ||
42 | { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true }, | ||
43 | + { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true }, | ||
44 | { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true }, | ||
45 | { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true }, | ||
46 | }; | ||
47 | diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp | ||
48 | index c418c5e..c8c4188 100644 | ||
49 | --- a/src/corelib/global/qlibraryinfo.cpp | ||
50 | +++ b/src/corelib/global/qlibraryinfo.cpp | ||
51 | @@ -348,7 +348,7 @@ QLibraryInfo::isDebugBuild() | ||
52 | */ | ||
53 | |||
54 | static const struct { | ||
55 | - char key[19], value[13]; | ||
56 | + char key[21], value[13]; | ||
57 | } qtConfEntries[] = { | ||
58 | { "Prefix", "." }, | ||
59 | { "Documentation", "doc" }, // should be ${Data}/doc | ||
60 | @@ -374,6 +374,7 @@ static const struct { | ||
61 | { "HostBinaries", "bin" }, | ||
62 | { "HostLibraries", "lib" }, | ||
63 | { "HostData", "." }, | ||
64 | + { "ExternalHostBinaries", "" }, | ||
65 | { "TargetSpec", "" }, | ||
66 | { "HostSpec", "" }, | ||
67 | #endif | ||
68 | diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h | ||
69 | index 543c4b3..a02e03a 100644 | ||
70 | --- a/src/corelib/global/qlibraryinfo.h | ||
71 | +++ b/src/corelib/global/qlibraryinfo.h | ||
72 | @@ -80,6 +80,7 @@ public: | ||
73 | HostBinariesPath, | ||
74 | HostLibrariesPath, | ||
75 | HostDataPath, | ||
76 | + ExternalHostBinariesPath, | ||
77 | TargetSpecPath, | ||
78 | HostSpecPath, | ||
79 | LastHostPath = HostSpecPath, | ||
80 | diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp | ||
81 | index 6e9d4aa..0ca4daf 100644 | ||
82 | --- a/tools/configure/configureapp.cpp | ||
83 | +++ b/tools/configure/configureapp.cpp | ||
84 | @@ -1191,6 +1191,13 @@ void Configure::parseCmdLine() | ||
85 | dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i); | ||
86 | } | ||
87 | |||
88 | + else if (configCmdLine.at(i) == "-external-hostbindir") { | ||
89 | + ++i; | ||
90 | + if (i == argCount) | ||
91 | + break; | ||
92 | + dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i); | ||
93 | + } | ||
94 | + | ||
95 | else if (configCmdLine.at(i) == "-make-tool") { | ||
96 | ++i; | ||
97 | if (i == argCount) | ||
98 | @@ -4004,6 +4011,7 @@ void Configure::generateQConfigCpp() | ||
99 | << " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl | ||
100 | << " \"qt_hlibpath=" << formatPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl | ||
101 | << " \"qt_hdatpath=" << formatPath(dictionary["QT_HOST_DATA"]) << "\"," << endl | ||
102 | + << " \"qt_ebinpath=" << formatPath(dictionary["QT_EXTERNAL_HOST_BINS"]) << "\"," << endl | ||
103 | << " \"qt_targspec=" << targSpec << "\"," << endl | ||
104 | << " \"qt_hostspec=" << hostSpec << "\"," << endl | ||
105 | << "#endif" << endl | ||
106 | -- | ||
107 | 2.3.1 | ||
108 | |||
diff --git a/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch b/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch deleted file mode 100644 index 671c6365..00000000 --- a/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | From 62ec5bc2946911b2cd2f577d58f07f566d84c88d Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Thu, 22 Jan 2015 16:09:35 +0100 | ||
4 | Subject: [PATCH 12/13] Set paths for target properly | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Upstream-Status: Inappropriate [OE specific] | ||
10 | |||
11 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
12 | --- | ||
13 | configure | 43 +++++++++++++++++++++---------------------- | ||
14 | 1 file changed, 21 insertions(+), 22 deletions(-) | ||
15 | |||
16 | diff --git a/configure b/configure | ||
17 | index 8d15f59..bf2bac0 100755 | ||
18 | --- a/configure | ||
19 | +++ b/configure | ||
20 | @@ -3639,28 +3639,27 @@ static const char qt_configure_prefix_path_strs[][512 + 12] = { | ||
21 | "qt_xmplpath=$QT_SYSROOT_EXAMPLES", | ||
22 | "qt_tstspath=$QT_SYSROOT_TESTS", | ||
23 | #else | ||
24 | - "qt_prfxpath=$QT_INSTALL_PREFIX", | ||
25 | - "qt_docspath=$QT_INSTALL_DOCS", | ||
26 | - "qt_hdrspath=$QT_INSTALL_HEADERS", | ||
27 | - "qt_libspath=$QT_INSTALL_LIBS", | ||
28 | - "qt_lbexpath=$QT_INSTALL_LIBEXECS", | ||
29 | - "qt_binspath=$QT_INSTALL_BINS", | ||
30 | - "qt_plugpath=$QT_INSTALL_PLUGINS", | ||
31 | - "qt_impspath=$QT_INSTALL_IMPORTS", | ||
32 | - "qt_qml2path=$QT_INSTALL_QML", | ||
33 | - "qt_adatpath=$QT_INSTALL_ARCHDATA", | ||
34 | - "qt_datapath=$QT_INSTALL_DATA", | ||
35 | - "qt_trnspath=$QT_INSTALL_TRANSLATIONS", | ||
36 | - "qt_xmplpath=$QT_INSTALL_EXAMPLES", | ||
37 | - "qt_tstspath=$QT_INSTALL_TESTS", | ||
38 | - "qt_ssrtpath=$CFG_SYSROOT", | ||
39 | - "qt_hpfxpath=$QT_HOST_PREFIX", | ||
40 | - "qt_hbinpath=$QT_HOST_BINS", | ||
41 | - "qt_hlibpath=$QT_HOST_LIBS", | ||
42 | - "qt_hdatpath=$QT_HOST_DATA", | ||
43 | - "qt_ebinpath=$QT_EXTERNAL_HOST_BINS", | ||
44 | - "qt_targspec=$shortxspec", | ||
45 | - "qt_hostspec=$shortspec", | ||
46 | + "qt_prfxpath=$QT_SYSROOT_PREFIX", | ||
47 | + "qt_docspath=$QT_SYSROOT_DOCS", | ||
48 | + "qt_hdrspath=$QT_SYSROOT_HEADERS", | ||
49 | + "qt_libspath=$QT_SYSROOT_LIBS", | ||
50 | + "qt_lbexpath=$QT_SYSROOT_LIBEXECS", | ||
51 | + "qt_binspath=$QT_SYSROOT_BINS", | ||
52 | + "qt_plugpath=$QT_SYSROOT_PLUGINS", | ||
53 | + "qt_impspath=$QT_SYSROOT_IMPORTS", | ||
54 | + "qt_qml2path=$QT_SYSROOT_QML", | ||
55 | + "qt_adatpath=$QT_SYSROOT_ARCHDATA", | ||
56 | + "qt_datapath=$QT_SYSROOT_DATA", | ||
57 | + "qt_trnspath=$QT_SYSROOT_TRANSLATIONS", | ||
58 | + "qt_xmplpath=$QT_SYSROOT_EXAMPLES", | ||
59 | + "qt_tstspath=$QT_SYSROOT_TESTS", | ||
60 | + "qt_ssrtpath=", | ||
61 | + "qt_hpfxpath=$QT_SYSROOT_PREFIX", | ||
62 | + "qt_hbinpath=$QT_SYSROOT_BINS", | ||
63 | + "qt_hlibpath=$QT_SYSROOT_LIBS", | ||
64 | + "qt_hdatpath=$QT_SYSROOT_LIBS/qt5", | ||
65 | + "qt_targspec=linux-g++", | ||
66 | + "qt_hostspec=linux-g++", | ||
67 | #endif | ||
68 | }; | ||
69 | static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS"; | ||
70 | -- | ||
71 | 2.3.1 | ||
72 | |||
diff --git a/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch b/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch deleted file mode 100644 index 1fa4aca4..00000000 --- a/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch +++ /dev/null | |||
@@ -1,196 +0,0 @@ | |||
1 | From 2cece4539990f9e7b0239681bd2fc2808aeb8dbc Mon Sep 17 00:00:00 2001 | ||
2 | From: Stephan Binner <stephan.binner@basyskom.com> | ||
3 | Date: Mon, 2 Feb 2015 13:10:50 +0100 | ||
4 | Subject: [PATCH 13/13] Fix build of egl integration | ||
5 | |||
6 | Add missing includes and reorder includes to avoid X defines breakage | ||
7 | |||
8 | Upstream-Status: Backport from 5.4 branch https://codereview.qt-project.org/#/c/105116/ | ||
9 | |||
10 | Change-Id: Iaf95ae2488df3d3301436262ed79f7091b4be0a9 | ||
11 | Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> | ||
12 | Signed-off-by: Stephan Binner <stephan.binner@basyskom.com> | ||
13 | --- | ||
14 | .../eglconvenience/qeglplatformcontext_p.h | 1 + | ||
15 | .../eglconvenience/qeglplatformintegration_p.h | 2 +- | ||
16 | src/plugins/platforms/eglfs/qeglfscontext.cpp | 13 +++++++------ | ||
17 | src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | 2 +- | ||
18 | src/plugins/platforms/eglfs/qeglfsintegration.cpp | 20 ++++++++++---------- | ||
19 | src/plugins/platforms/eglfs/qeglfsscreen.cpp | 4 +++- | ||
20 | src/plugins/platforms/eglfs/qeglfswindow.cpp | 6 ++++-- | ||
21 | .../platforms/minimalegl/qminimaleglwindow.cpp | 4 ++-- | ||
22 | 8 files changed, 29 insertions(+), 23 deletions(-) | ||
23 | |||
24 | diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h | ||
25 | index 7825c7b..0c10710 100644 | ||
26 | --- a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h | ||
27 | +++ b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h | ||
28 | @@ -45,6 +45,7 @@ | ||
29 | // We mean it. | ||
30 | // | ||
31 | |||
32 | +#include <QtCore/qtextstream.h> | ||
33 | #include <qpa/qplatformwindow.h> | ||
34 | #include <qpa/qplatformopenglcontext.h> | ||
35 | #include <QtCore/QVariant> | ||
36 | diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
37 | index c9b6873..a0aab03 100644 | ||
38 | --- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
39 | +++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
40 | @@ -45,9 +45,9 @@ | ||
41 | // We mean it. | ||
42 | // | ||
43 | |||
44 | +#include <QtCore/QVariant> | ||
45 | #include <qpa/qplatformintegration.h> | ||
46 | #include <qpa/qplatformnativeinterface.h> | ||
47 | -#include <QtCore/QVariant> | ||
48 | #include <EGL/egl.h> | ||
49 | |||
50 | // Undefine CursorShape from X.h, which is causing breakage in Qt::CursorShape in platformsupport/eglconvenience/ | ||
51 | diff --git a/src/plugins/platforms/eglfs/qeglfscontext.cpp b/src/plugins/platforms/eglfs/qeglfscontext.cpp | ||
52 | index 6216fa8..6470280 100644 | ||
53 | --- a/src/plugins/platforms/eglfs/qeglfscontext.cpp | ||
54 | +++ b/src/plugins/platforms/eglfs/qeglfscontext.cpp | ||
55 | @@ -31,15 +31,16 @@ | ||
56 | ** | ||
57 | ****************************************************************************/ | ||
58 | |||
59 | -#include "qeglfscontext.h" | ||
60 | -#include "qeglfswindow.h" | ||
61 | -#include "qeglfshooks.h" | ||
62 | +#include <QtGui/QSurface> | ||
63 | +#include <QtDebug> | ||
64 | |||
65 | +#include <QtPlatformSupport/private/qeglplatformcursor_p.h> | ||
66 | #include <QtPlatformSupport/private/qeglconvenience_p.h> | ||
67 | #include <QtPlatformSupport/private/qeglpbuffer_p.h> | ||
68 | -#include <QtPlatformSupport/private/qeglplatformcursor_p.h> | ||
69 | -#include <QtGui/QSurface> | ||
70 | -#include <QtDebug> | ||
71 | + | ||
72 | +#include "qeglfswindow.h" | ||
73 | +#include "qeglfshooks.h" | ||
74 | +#include "qeglfscontext.h" | ||
75 | |||
76 | QT_BEGIN_NAMESPACE | ||
77 | |||
78 | diff --git a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | ||
79 | index 26d77a2..120c603 100644 | ||
80 | --- a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | ||
81 | +++ b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | ||
82 | @@ -31,10 +31,10 @@ | ||
83 | ** | ||
84 | ****************************************************************************/ | ||
85 | |||
86 | -#include "qeglfshooks.h" | ||
87 | #include <QtPlatformSupport/private/qeglplatformcursor_p.h> | ||
88 | #include <QtPlatformSupport/private/qeglconvenience_p.h> | ||
89 | #include <QtCore/QRegularExpression> | ||
90 | +#include "qeglfshooks.h" | ||
91 | |||
92 | #if defined(Q_OS_LINUX) | ||
93 | #include <fcntl.h> | ||
94 | diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/qeglfsintegration.cpp | ||
95 | index 2a4eae3..fbdd1d4 100644 | ||
96 | --- a/src/plugins/platforms/eglfs/qeglfsintegration.cpp | ||
97 | +++ b/src/plugins/platforms/eglfs/qeglfsintegration.cpp | ||
98 | @@ -31,26 +31,26 @@ | ||
99 | ** | ||
100 | ****************************************************************************/ | ||
101 | |||
102 | -#include "qeglfsintegration.h" | ||
103 | +#include <QtCore/qtextstream.h> | ||
104 | +#include <QtGui/private/qguiapplication_p.h> | ||
105 | + | ||
106 | +#include <qpa/qplatformwindow.h> | ||
107 | +#include <QtGui/QSurfaceFormat> | ||
108 | +#include <QtGui/QOpenGLContext> | ||
109 | +#include <QtGui/QScreen> | ||
110 | +#include <QtGui/QOffscreenSurface> | ||
111 | +#include <qpa/qplatformcursor.h> | ||
112 | |||
113 | +#include "qeglfsintegration.h" | ||
114 | #include "qeglfswindow.h" | ||
115 | #include "qeglfshooks.h" | ||
116 | #include "qeglfscontext.h" | ||
117 | |||
118 | -#include <QtGui/private/qguiapplication_p.h> | ||
119 | - | ||
120 | #include <QtPlatformSupport/private/qeglconvenience_p.h> | ||
121 | #include <QtPlatformSupport/private/qeglplatformcontext_p.h> | ||
122 | #include <QtPlatformSupport/private/qeglpbuffer_p.h> | ||
123 | #include <QtPlatformHeaders/QEGLNativeContext> | ||
124 | |||
125 | -#include <qpa/qplatformwindow.h> | ||
126 | -#include <QtGui/QSurfaceFormat> | ||
127 | -#include <QtGui/QOpenGLContext> | ||
128 | -#include <QtGui/QScreen> | ||
129 | -#include <QtGui/QOffscreenSurface> | ||
130 | -#include <qpa/qplatformcursor.h> | ||
131 | - | ||
132 | #include <EGL/egl.h> | ||
133 | |||
134 | static void initResources() | ||
135 | diff --git a/src/plugins/platforms/eglfs/qeglfsscreen.cpp b/src/plugins/platforms/eglfs/qeglfsscreen.cpp | ||
136 | index cd68540..bc93fe2 100644 | ||
137 | --- a/src/plugins/platforms/eglfs/qeglfsscreen.cpp | ||
138 | +++ b/src/plugins/platforms/eglfs/qeglfsscreen.cpp | ||
139 | @@ -31,10 +31,12 @@ | ||
140 | ** | ||
141 | ****************************************************************************/ | ||
142 | |||
143 | +#include <QtCore/qtextstream.h> | ||
144 | +#include <QtPlatformSupport/private/qeglplatformcursor_p.h> | ||
145 | + | ||
146 | #include "qeglfsscreen.h" | ||
147 | #include "qeglfswindow.h" | ||
148 | #include "qeglfshooks.h" | ||
149 | -#include <QtPlatformSupport/private/qeglplatformcursor_p.h> | ||
150 | |||
151 | QT_BEGIN_NAMESPACE | ||
152 | |||
153 | diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
154 | index 5ebde6d..2c05979 100644 | ||
155 | --- a/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
156 | +++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
157 | @@ -31,8 +31,7 @@ | ||
158 | ** | ||
159 | ****************************************************************************/ | ||
160 | |||
161 | -#include "qeglfswindow.h" | ||
162 | -#include "qeglfshooks.h" | ||
163 | +#include <QtCore/qtextstream.h> | ||
164 | #include <qpa/qwindowsysteminterface.h> | ||
165 | #include <qpa/qplatformintegration.h> | ||
166 | #include <private/qguiapplication_p.h> | ||
167 | @@ -40,6 +39,9 @@ | ||
168 | #include <QtPlatformSupport/private/qeglplatformcursor_p.h> | ||
169 | #include <QtPlatformSupport/private/qeglconvenience_p.h> | ||
170 | |||
171 | +#include "qeglfswindow.h" | ||
172 | +#include "qeglfshooks.h" | ||
173 | + | ||
174 | #include <QtDebug> | ||
175 | |||
176 | QT_BEGIN_NAMESPACE | ||
177 | diff --git a/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp b/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp | ||
178 | index 906a130..d4bee2c 100644 | ||
179 | --- a/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp | ||
180 | +++ b/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp | ||
181 | @@ -31,10 +31,10 @@ | ||
182 | ** | ||
183 | ****************************************************************************/ | ||
184 | |||
185 | -#include "qminimaleglwindow.h" | ||
186 | - | ||
187 | #include <qpa/qwindowsysteminterface.h> | ||
188 | |||
189 | +#include "qminimaleglwindow.h" | ||
190 | + | ||
191 | QT_BEGIN_NAMESPACE | ||
192 | |||
193 | QMinimalEglWindow::QMinimalEglWindow(QWindow *w) | ||
194 | -- | ||
195 | 2.3.1 | ||
196 | |||
diff --git a/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch b/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch deleted file mode 100644 index fb897c90..00000000 --- a/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From 137890aa64442866a861f0a9f028ee632f19cae4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Denys Dmytriyenko <denys@ti.com> | ||
3 | Date: Mon, 11 Nov 2013 20:22:34 -0500 | ||
4 | Subject: [PATCH 13/13] configure: preserve built qmake and swap with native | ||
5 | one | ||
6 | |||
7 | Let configure script build the real qmake, but right after it's built, swap | ||
8 | it with a native qmake for further internal use, preserving the real one. | ||
9 | |||
10 | Signed-off-by: Denys Dmytriyenko <denys@ti.com> | ||
11 | --- | ||
12 | configure | 2 ++ | ||
13 | 1 file changed, 2 insertions(+) | ||
14 | |||
15 | diff --git a/configure b/configure | ||
16 | index a40d471..c007427 100755 | ||
17 | --- a/configure | ||
18 | +++ b/configure | ||
19 | @@ -3874,6 +3874,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; | ||
20 | |||
21 | (cd "$outpath/qmake"; "$MAKE") || exit 2 | ||
22 | fi # Build qmake | ||
23 | +mv "$outpath/bin/qmake" "$outpath/bin/qmake-real" | ||
24 | +mv "$outpath/bin/qmake-native" "$outpath/bin/qmake" | ||
25 | |||
26 | echo "Running configuration tests..." | ||
27 | |||
28 | -- | ||
29 | 2.3.1 | ||
30 | |||
diff --git a/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch b/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch deleted file mode 100644 index 42159ef4..00000000 --- a/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | From a343de8e9b85b98f18446d045afbf6f1d3f6c5b4 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Richard J. Moore" <rich@kde.org> | ||
3 | Date: Sat, 21 Feb 2015 17:43:21 +0000 | ||
4 | Subject: [PATCH 14/14] Fix a division by zero when processing malformed BMP | ||
5 | files. | ||
6 | |||
7 | This fixes a division by 0 when processing a maliciously crafted BMP | ||
8 | file. No impact beyond DoS. | ||
9 | |||
10 | Upstream-Status: Backport from 5.4 branch | ||
11 | |||
12 | Task-number: QTBUG-44547 | ||
13 | Change-Id: Ifcded2c0aa712e90d23e6b3969af0ec3add53973 | ||
14 | Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> | ||
15 | Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | ||
16 | --- | ||
17 | src/gui/image/qbmphandler.cpp | 8 ++++++++ | ||
18 | 1 file changed, 8 insertions(+) | ||
19 | |||
20 | diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp | ||
21 | index 21c1a2f..df66499 100644 | ||
22 | --- a/src/gui/image/qbmphandler.cpp | ||
23 | +++ b/src/gui/image/qbmphandler.cpp | ||
24 | @@ -314,12 +314,20 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int | ||
25 | } | ||
26 | } else if (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32)) { | ||
27 | red_shift = calc_shift(red_mask); | ||
28 | + if (((red_mask >> red_shift) + 1) == 0) | ||
29 | + return false; | ||
30 | red_scale = 256 / ((red_mask >> red_shift) + 1); | ||
31 | green_shift = calc_shift(green_mask); | ||
32 | + if (((green_mask >> green_shift) + 1) == 0) | ||
33 | + return false; | ||
34 | green_scale = 256 / ((green_mask >> green_shift) + 1); | ||
35 | blue_shift = calc_shift(blue_mask); | ||
36 | + if (((blue_mask >> blue_shift) + 1) == 0) | ||
37 | + return false; | ||
38 | blue_scale = 256 / ((blue_mask >> blue_shift) + 1); | ||
39 | alpha_shift = calc_shift(alpha_mask); | ||
40 | + if (((alpha_mask >> alpha_shift) + 1) == 0) | ||
41 | + return false; | ||
42 | alpha_scale = 256 / ((alpha_mask >> alpha_shift) + 1); | ||
43 | } else if (comp == BMP_RGB && (nbits == 24 || nbits == 32)) { | ||
44 | blue_mask = 0x000000ff; | ||
45 | -- | ||
46 | 2.3.1 | ||
47 | |||
diff --git a/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake b/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake deleted file mode 100644 index 6f0042b2..00000000 --- a/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | set( OE_QMAKE_PATH_EXTERNAL_HOST_BINS $ENV{OE_QMAKE_PATH_HOST_BINS} ) | ||
diff --git a/recipes-qt/qt5/qtbase_5.4.1.bb b/recipes-qt/qt5/qtbase_5.4.1.bb deleted file mode 100644 index 0ff611f1..00000000 --- a/recipes-qt/qt5/qtbase_5.4.1.bb +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | # This patch is in 5.4 branch but didn't make it into 5.4.1 release | ||
5 | SRC_URI += "\ | ||
6 | file://0013-Fix-build-of-egl-integration.patch \ | ||
7 | file://0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch \ | ||
8 | " | ||
9 | |||
10 | SRC_URI[md5sum] = "9507825e558c980fed602de1f16ec7ae" | ||
11 | SRC_URI[sha256sum] = "8574a593830959c0f7e5430fe77a43832ea7f5299e14a397a74576b3df7fb1b7" | ||
diff --git a/recipes-qt/qt5/qtconnectivity_5.4.1.bb b/recipes-qt/qt5/qtconnectivity_5.4.1.bb deleted file mode 100644 index 0c6348a9..00000000 --- a/recipes-qt/qt5/qtconnectivity_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "056c7eba6a396bbd82d265feca1fe47b" | ||
5 | SRC_URI[sha256sum] = "82c4ffb590f6716672da271ad41c51499b888b46140f40b06367b9eace7b2360" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch b/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch deleted file mode 100644 index 478862cc..00000000 --- a/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | From ccfd4907a2683fb0840fa4fd6a9d979395f4331c Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com> | ||
3 | Date: Sun, 26 May 2013 14:26:19 +0200 | ||
4 | Subject: [PATCH] qmltestexample: fix link | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | else we get : | ||
10 | ld: warning: libQt5Quick.so.5, needed by libQt5QuickTest.so, not found | ||
11 | |||
12 | Upstream-Status: Inappropriate | ||
13 | |||
14 | Change-Id: I63088ff73bec6a8559dfae132f8bd40b62487450 | ||
15 | Signed-off-by: Eric Bénard <eric@eukrea.com> | ||
16 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
17 | --- | ||
18 | examples/qmltest/qmltest/qmltest.pro | 2 +- | ||
19 | tests/auto/qml/qjsengine/qjsengine.pro | 2 +- | ||
20 | tests/auto/qml/qtqmlmodules/qtqmlmodules.pro | 2 +- | ||
21 | tests/auto/qmltest/qmltest.pro | 1 + | ||
22 | tools/qmltestrunner/qmltestrunner.pro | 2 +- | ||
23 | 5 files changed, 5 insertions(+), 4 deletions(-) | ||
24 | |||
25 | diff --git a/examples/qmltest/qmltest/qmltest.pro b/examples/qmltest/qmltest/qmltest.pro | ||
26 | index b5893c5..1b00e6c 100644 | ||
27 | --- a/examples/qmltest/qmltest/qmltest.pro | ||
28 | +++ b/examples/qmltest/qmltest/qmltest.pro | ||
29 | @@ -14,7 +14,7 @@ TESTDATA += tst_basic.qml tst_item.qml | ||
30 | # This code exists solely for the purpose of building this example | ||
31 | # inside the examples/ hierarchy. | ||
32 | |||
33 | -QT += qml qmltest | ||
34 | +QT += qml qmltest quick | ||
35 | |||
36 | macx: CONFIG -= app_bundle | ||
37 | |||
38 | diff --git a/tests/auto/qml/qjsengine/qjsengine.pro b/tests/auto/qml/qjsengine/qjsengine.pro | ||
39 | index fc2452c..919710f 100644 | ||
40 | --- a/tests/auto/qml/qjsengine/qjsengine.pro | ||
41 | +++ b/tests/auto/qml/qjsengine/qjsengine.pro | ||
42 | @@ -1,7 +1,7 @@ | ||
43 | CONFIG += testcase | ||
44 | CONFIG += parallel_test | ||
45 | TARGET = tst_qjsengine | ||
46 | -QT += qml qml-private widgets testlib gui-private | ||
47 | +QT += qml qml-private widgets testlib gui-private quick | ||
48 | macx:CONFIG -= app_bundle | ||
49 | SOURCES += tst_qjsengine.cpp | ||
50 | RESOURCES += qjsengine.qrc | ||
51 | diff --git a/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro | ||
52 | index c6d442e..3181dcd 100644 | ||
53 | --- a/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro | ||
54 | +++ b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro | ||
55 | @@ -8,5 +8,5 @@ macx:CONFIG -= app_bundle | ||
56 | |||
57 | TESTDATA = data/* | ||
58 | |||
59 | -QT += core-private qml-private testlib gui gui-private | ||
60 | +QT += core-private qml-private testlib gui gui-private quick | ||
61 | DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 | ||
62 | diff --git a/tests/auto/qmltest/qmltest.pro b/tests/auto/qmltest/qmltest.pro | ||
63 | index 7662cb1..a8f8ae2 100644 | ||
64 | --- a/tests/auto/qmltest/qmltest.pro | ||
65 | +++ b/tests/auto/qmltest/qmltest.pro | ||
66 | @@ -4,6 +4,7 @@ CONFIG += qmltestcase | ||
67 | CONFIG += console | ||
68 | SOURCES += tst_qmltest.cpp | ||
69 | |||
70 | +QT += quick | ||
71 | |||
72 | importFiles.files = borderimage buttonclick createbenchmark events qqmlbinding selftests | ||
73 | |||
74 | diff --git a/tools/qmltestrunner/qmltestrunner.pro b/tools/qmltestrunner/qmltestrunner.pro | ||
75 | index 1bb913e..56f2dd5 100644 | ||
76 | --- a/tools/qmltestrunner/qmltestrunner.pro | ||
77 | +++ b/tools/qmltestrunner/qmltestrunner.pro | ||
78 | @@ -1,6 +1,6 @@ | ||
79 | SOURCES += main.cpp | ||
80 | |||
81 | -QT += qml qmltest | ||
82 | +QT += qml qmltest quick | ||
83 | CONFIG += no_import_scan | ||
84 | |||
85 | load(qt_tool) | ||
86 | -- | ||
87 | 2.3.1 | ||
88 | |||
diff --git a/recipes-qt/qt5/qtdeclarative_5.4.1.bb b/recipes-qt/qt5/qtdeclarative_5.4.1.bb deleted file mode 100644 index eef88418..00000000 --- a/recipes-qt/qt5/qtdeclarative_5.4.1.bb +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "86dfe5c41e14a142c72fdaa6a64f933c" | ||
5 | SRC_URI[sha256sum] = "15124e242a8a4a8fc5bedd32910b3b0b372b6c2b63f99572c4a2427e668d4417" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
diff --git a/recipes-qt/qt5/qtenginio_5.4.1.bb b/recipes-qt/qt5/qtenginio_5.4.1.bb deleted file mode 100644 index de6ab0d8..00000000 --- a/recipes-qt/qt5/qtenginio_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "c80b967b159c513350fcfca223f435d4" | ||
5 | SRC_URI[sha256sum] = "aedb131c29180c7dbc41f888d6a078378a2dd3337766461734cc1b8f07e9577a" | ||
diff --git a/recipes-qt/qt5/qtgraphicaleffects_5.4.1.bb b/recipes-qt/qt5/qtgraphicaleffects_5.4.1.bb deleted file mode 100644 index 05e00f2c..00000000 --- a/recipes-qt/qt5/qtgraphicaleffects_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "02bec01c2af9a7d08582fbffbfa4976a" | ||
5 | SRC_URI[sha256sum] = "bae2f0e8120f0b4e6e1b56a486713821615d0af7c69fb4ecdcbabc22b8f8351c" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtimageformats_5.4.1.bb b/recipes-qt/qt5/qtimageformats_5.4.1.bb deleted file mode 100644 index 8a2933af..00000000 --- a/recipes-qt/qt5/qtimageformats_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "1436680e00ea3e211fd0abdb7c18014a" | ||
5 | SRC_URI[sha256sum] = "3f6c5bb568ebbee24700c439a60b2e512026dfee5be896c846e4f289cc5b846f" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtlocation_5.4.1.bb b/recipes-qt/qt5/qtlocation_5.4.1.bb deleted file mode 100644 index b0a51397..00000000 --- a/recipes-qt/qt5/qtlocation_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "f7d693d3f3634da063b61928b502b79d" | ||
5 | SRC_URI[sha256sum] = "889f0c832159a804be6a730366dd76db53f32333efc1cc88f5c7253206e97984" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch b/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch deleted file mode 100644 index f66e864f..00000000 --- a/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch +++ /dev/null | |||
@@ -1,2368 +0,0 @@ | |||
1 | From 6a570205a17663e6adce9e5613eb7694fe2874dc Mon Sep 17 00:00:00 2001 | ||
2 | From: Yoann Lopes <yoann.lopes@digia.com> | ||
3 | Date: Thu, 31 Oct 2013 15:06:30 +0100 | ||
4 | Subject: [PATCH] Initial porting effort to GStreamer 1.0. | ||
5 | |||
6 | Imported from git@github.com:jhodapp/qtmultimedia.git | ||
7 | |||
8 | Contributions from: | ||
9 | Ilya Smelykh <ilya@videoexpertsgroup.com> | ||
10 | Jim Hodapp <jim.hodapp@canonical.com> | ||
11 | Sergio Schvezov <sergio.schvezov@canonical.com> | ||
12 | |||
13 | Change-Id: I10fa5e5078efa4564ce833befd417008e26a90a9 | ||
14 | Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> | ||
15 | (cherry picked from commit d91dac090d92fdbc3a3425e8d969c62e5c79eff9) | ||
16 | |||
17 | Conflicts: | ||
18 | src/gsttools/qgstreamervideorenderer.cpp | ||
19 | src/gsttools/qgstreamervideowidget.cpp | ||
20 | src/gsttools/qgstreamervideowindow.cpp | ||
21 | src/plugins/gstreamer/camerabin/camerabinsession.cpp | ||
22 | src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp | ||
23 | src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp | ||
24 | --- | ||
25 | config.tests/gstreamer/gstreamer.pro | 11 +- | ||
26 | config.tests/gstreamer_appsrc/gstreamer_appsrc.pro | 13 +- | ||
27 | .../gstreamer_encodingprofiles.pro | 13 +- | ||
28 | .../gstreamer_photography.pro | 15 +- | ||
29 | qtmultimedia.pro | 25 ++- | ||
30 | src/gsttools/gsttools.pro | 22 +-- | ||
31 | src/gsttools/gstvideoconnector.c | 199 +++++++++++++++++++-- | ||
32 | src/gsttools/qgstappsrc.cpp | 29 ++- | ||
33 | src/gsttools/qgstreameraudioprobecontrol.cpp | 19 +- | ||
34 | src/gsttools/qgstreamerbushelper.cpp | 8 + | ||
35 | src/gsttools/qgstreamervideoprobecontrol.cpp | 9 + | ||
36 | src/gsttools/qgstreamervideorenderer.cpp | 3 +- | ||
37 | src/gsttools/qgstreamervideowidget.cpp | 29 ++- | ||
38 | src/gsttools/qgstreamervideowindow.cpp | 79 +++++++- | ||
39 | src/gsttools/qgstutils.cpp | 27 ++- | ||
40 | src/gsttools/qgstvideobuffer.cpp | 18 +- | ||
41 | src/gsttools/qvideosurfacegstsink.cpp | 136 +++++++++++++- | ||
42 | src/multimedia/gsttools_headers/qgstappsrc_p.h | 3 + | ||
43 | .../qgstreameraudioprobecontrol_p.h | 5 +- | ||
44 | .../qgstreamervideoprobecontrol_p.h | 4 + | ||
45 | .../gsttools_headers/qgstreamervideowindow_p.h | 4 + | ||
46 | src/multimedia/gsttools_headers/qgstutils_p.h | 4 + | ||
47 | .../gsttools_headers/qgstvideobuffer_p.h | 3 + | ||
48 | .../gsttools_headers/qvideosurfacegstsink_p.h | 6 +- | ||
49 | .../qgstreameraudiodecoderserviceplugin.cpp | 27 ++- | ||
50 | .../audiodecoder/qgstreameraudiodecodersession.cpp | 33 +++- | ||
51 | .../gstreamer/camerabin/camerabinsession.cpp | 25 +++ | ||
52 | src/plugins/gstreamer/common.pri | 21 ++- | ||
53 | src/plugins/gstreamer/gstreamer.pro | 3 +- | ||
54 | .../mediacapture/qgstreamercapturesession.cpp | 5 + | ||
55 | src/plugins/gstreamer/mediaplayer/mediaplayer.pro | 1 - | ||
56 | .../mediaplayer/qgstreamerplayercontrol.cpp | 2 + | ||
57 | .../mediaplayer/qgstreamerplayerservice.cpp | 9 +- | ||
58 | .../mediaplayer/qgstreamerplayerserviceplugin.cpp | 27 ++- | ||
59 | .../mediaplayer/qgstreamerplayersession.cpp | 154 ++++++++++++++-- | ||
60 | .../mediaplayer/qgstreamerplayersession.h | 9 + | ||
61 | 36 files changed, 871 insertions(+), 129 deletions(-) | ||
62 | |||
63 | diff --git a/config.tests/gstreamer/gstreamer.pro b/config.tests/gstreamer/gstreamer.pro | ||
64 | index 02a7e34..6b9843a 100644 | ||
65 | --- a/config.tests/gstreamer/gstreamer.pro | ||
66 | +++ b/config.tests/gstreamer/gstreamer.pro | ||
67 | @@ -3,11 +3,10 @@ SOURCES += main.cpp | ||
68 | CONFIG += link_pkgconfig | ||
69 | |||
70 | PKGCONFIG += \ | ||
71 | - gstreamer-0.10 \ | ||
72 | - gstreamer-base-0.10 \ | ||
73 | - gstreamer-interfaces-0.10 \ | ||
74 | - gstreamer-audio-0.10 \ | ||
75 | - gstreamer-video-0.10 \ | ||
76 | - gstreamer-pbutils-0.10 | ||
77 | + gstreamer-$$GST_VERSION \ | ||
78 | + gstreamer-base-$$GST_VERSION \ | ||
79 | + gstreamer-audio-$$GST_VERSION \ | ||
80 | + gstreamer-video-$$GST_VERSION \ | ||
81 | + gstreamer-pbutils-$$GST_VERSION | ||
82 | |||
83 | |||
84 | diff --git a/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro b/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro | ||
85 | index 9f61703..0f3ca2b 100644 | ||
86 | --- a/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro | ||
87 | +++ b/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro | ||
88 | @@ -3,11 +3,8 @@ SOURCES += main.cpp | ||
89 | CONFIG += link_pkgconfig | ||
90 | |||
91 | PKGCONFIG += \ | ||
92 | - gstreamer-0.10 \ | ||
93 | - gstreamer-base-0.10 \ | ||
94 | - gstreamer-interfaces-0.10 \ | ||
95 | - gstreamer-audio-0.10 \ | ||
96 | - gstreamer-video-0.10 \ | ||
97 | - gstreamer-app-0.10 | ||
98 | - | ||
99 | - | ||
100 | + gstreamer-$$GST_VERSION \ | ||
101 | + gstreamer-base-$$GST_VERSION \ | ||
102 | + gstreamer-audio-$$GST_VERSION \ | ||
103 | + gstreamer-video-$$GST_VERSION \ | ||
104 | + gstreamer-pbutils-$$GST_VERSION | ||
105 | diff --git a/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro b/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro | ||
106 | index 7e8a9e7..fad40b0 100644 | ||
107 | --- a/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro | ||
108 | +++ b/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro | ||
109 | @@ -2,11 +2,10 @@ SOURCES += main.cpp | ||
110 | |||
111 | CONFIG += link_pkgconfig | ||
112 | |||
113 | -PKGCONFIG += \ | ||
114 | - gstreamer-0.10 \ | ||
115 | - gstreamer-base-0.10 \ | ||
116 | - gstreamer-interfaces-0.10 \ | ||
117 | - gstreamer-audio-0.10 \ | ||
118 | - gstreamer-video-0.10 \ | ||
119 | - gstreamer-pbutils-0.10 | ||
120 | |||
121 | +PKGCONFIG += \ | ||
122 | + gstreamer-$$GST_VERSION \ | ||
123 | + gstreamer-base-$$GST_VERSION \ | ||
124 | + gstreamer-audio-$$GST_VERSION \ | ||
125 | + gstreamer-video-$$GST_VERSION \ | ||
126 | + gstreamer-pbutils-$$GST_VERSION | ||
127 | diff --git a/config.tests/gstreamer_photography/gstreamer_photography.pro b/config.tests/gstreamer_photography/gstreamer_photography.pro | ||
128 | index 6b530cb..975991f 100644 | ||
129 | --- a/config.tests/gstreamer_photography/gstreamer_photography.pro | ||
130 | +++ b/config.tests/gstreamer_photography/gstreamer_photography.pro | ||
131 | @@ -3,12 +3,11 @@ SOURCES += main.cpp | ||
132 | CONFIG += link_pkgconfig | ||
133 | |||
134 | PKGCONFIG += \ | ||
135 | - gstreamer-0.10 \ | ||
136 | - gstreamer-base-0.10 \ | ||
137 | - gstreamer-interfaces-0.10 \ | ||
138 | - gstreamer-audio-0.10 \ | ||
139 | - gstreamer-video-0.10 \ | ||
140 | - gstreamer-pbutils-0.10 | ||
141 | - | ||
142 | -LIBS += -lgstphotography-0.10 | ||
143 | + gstreamer-$$GST_VERSION \ | ||
144 | + gstreamer-base-$$GST_VERSION \ | ||
145 | + gstreamer-audio-$$GST_VERSION \ | ||
146 | + gstreamer-video-$$GST_VERSION \ | ||
147 | + gstreamer-pbutils-$$GST_VERSION | ||
148 | + | ||
149 | +LIBS += -lgstphotography-$$GST_VERSION | ||
150 | |||
151 | diff --git a/qtmultimedia.pro b/qtmultimedia.pro | ||
152 | index 3cec526..109dd81 100644 | ||
153 | --- a/qtmultimedia.pro | ||
154 | +++ b/qtmultimedia.pro | ||
155 | @@ -17,11 +17,26 @@ win32 { | ||
156 | } else { | ||
157 | qtCompileTest(alsa) | ||
158 | qtCompileTest(pulseaudio) | ||
159 | - qtCompileTest(gstreamer) { | ||
160 | - qtCompileTest(gstreamer_photography) | ||
161 | - qtCompileTest(gstreamer_encodingprofiles) | ||
162 | - qtCompileTest(gstreamer_appsrc) | ||
163 | - qtCompileTest(linux_v4l) | ||
164 | + !done_config_gstreamer { | ||
165 | + gstver=1.0 | ||
166 | + cache(GST_VERSION, set, gstver); | ||
167 | + qtCompileTest(gstreamer) { | ||
168 | + qtCompileTest(gstreamer_photography) | ||
169 | + qtCompileTest(gstreamer_encodingprofiles) | ||
170 | + qtCompileTest(gstreamer_appsrc) | ||
171 | + qtCompileTest(linux_v4l) | ||
172 | + } else { | ||
173 | + gstver=0.10 | ||
174 | + cache(GST_VERSION, set, gstver); | ||
175 | + # Force a re-run of the test | ||
176 | + CONFIG -= done_config_gstreamer | ||
177 | + qtCompileTest(gstreamer) { | ||
178 | + qtCompileTest(gstreamer_photography) | ||
179 | + qtCompileTest(gstreamer_encodingprofiles) | ||
180 | + qtCompileTest(gstreamer_appsrc) | ||
181 | + qtCompileTest(linux_v4l) | ||
182 | + } | ||
183 | + } | ||
184 | } | ||
185 | qtCompileTest(resourcepolicy) | ||
186 | qtCompileTest(gpu_vivante) | ||
187 | diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro | ||
188 | index 7c809a7..6b9bf5d 100644 | ||
189 | --- a/src/gsttools/gsttools.pro | ||
190 | +++ b/src/gsttools/gsttools.pro | ||
191 | @@ -2,7 +2,7 @@ TEMPLATE = lib | ||
192 | |||
193 | TARGET = qgsttools_p | ||
194 | QPRO_PWD = $$PWD | ||
195 | -QT = core-private multimedia-private gui-private | ||
196 | +QT = core-private multimedia-private gui-private opengl | ||
197 | |||
198 | !static:DEFINES += QT_MAKEDLL | ||
199 | DEFINES += GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 | ||
200 | @@ -15,13 +15,14 @@ LIBS_PRIVATE += \ | ||
201 | |||
202 | CONFIG += link_pkgconfig | ||
203 | |||
204 | -PKGCONFIG_PRIVATE += \ | ||
205 | - gstreamer-0.10 \ | ||
206 | - gstreamer-base-0.10 \ | ||
207 | - gstreamer-interfaces-0.10 \ | ||
208 | - gstreamer-audio-0.10 \ | ||
209 | - gstreamer-video-0.10 \ | ||
210 | - gstreamer-pbutils-0.10 | ||
211 | +PKGCONFIG += \ | ||
212 | + gstreamer-$$GST_VERSION \ | ||
213 | + gstreamer-base-$$GST_VERSION \ | ||
214 | + gstreamer-audio-$$GST_VERSION \ | ||
215 | + gstreamer-video-$$GST_VERSION \ | ||
216 | + gstreamer-pbutils-$$GST_VERSION | ||
217 | + | ||
218 | +equals(GST_VERSION,"0.10"): PKGCONFIG_PRIVATE += gstreamer-interfaces-$$GST_VERSION | ||
219 | |||
220 | maemo*: PKGCONFIG_PRIVATE +=gstreamer-plugins-bad-0.10 | ||
221 | |||
222 | @@ -33,6 +34,7 @@ config_resourcepolicy { | ||
223 | # Header files must go inside source directory of a module | ||
224 | # to be installed by syncqt. | ||
225 | INCLUDEPATH += ../multimedia/gsttools_headers/ | ||
226 | +INCLUDEPATH += ../plugins/gstreamer/mediaplayer/ | ||
227 | VPATH += ../multimedia/gsttools_headers/ | ||
228 | |||
229 | PRIVATE_HEADERS += \ | ||
230 | @@ -91,13 +93,13 @@ maemo6 { | ||
231 | } | ||
232 | |||
233 | config_gstreamer_appsrc { | ||
234 | - PKGCONFIG_PRIVATE += gstreamer-app-0.10 | ||
235 | + PKGCONFIG_PRIVATE += gstreamer-app-$$GST_VERSION | ||
236 | PRIVATE_HEADERS += qgstappsrc_p.h | ||
237 | SOURCES += qgstappsrc.cpp | ||
238 | |||
239 | DEFINES += HAVE_GST_APPSRC | ||
240 | |||
241 | - LIBS_PRIVATE += -lgstapp-0.10 | ||
242 | + LIBS_PRIVATE += -lgstapp-$$GST_VERSION | ||
243 | } | ||
244 | |||
245 | config_linux_v4l: DEFINES += USE_V4L | ||
246 | diff --git a/src/gsttools/gstvideoconnector.c b/src/gsttools/gstvideoconnector.c | ||
247 | index 3ed539e..ed0ed3c 100644 | ||
248 | --- a/src/gsttools/gstvideoconnector.c | ||
249 | +++ b/src/gsttools/gstvideoconnector.c | ||
250 | @@ -59,26 +59,93 @@ GST_STATIC_PAD_TEMPLATE ("src", | ||
251 | GST_PAD_ALWAYS, | ||
252 | GST_STATIC_CAPS_ANY); | ||
253 | |||
254 | + | ||
255 | +#if GST_CHECK_VERSION(1,0,0) | ||
256 | + | ||
257 | +G_DEFINE_TYPE(GstVideoConnector, gst_video_connector, GST_TYPE_ELEMENT); | ||
258 | +#else | ||
259 | #define _do_init(bla) \ | ||
260 | GST_DEBUG_CATEGORY_INIT (video_connector_debug, \ | ||
261 | "video-connector", 0, "An identity like element for reconnecting video stream"); | ||
262 | |||
263 | GST_BOILERPLATE_FULL (GstVideoConnector, gst_video_connector, GstElement, | ||
264 | GST_TYPE_ELEMENT, _do_init); | ||
265 | +#endif | ||
266 | |||
267 | static void gst_video_connector_dispose (GObject * object); | ||
268 | + | ||
269 | +#if GST_CHECK_VERSION(1,0,0) | ||
270 | +static GstFlowReturn gst_video_connector_chain (GstPad * pad, GstObject* parent, GstBuffer * buf); | ||
271 | +#else | ||
272 | static GstFlowReturn gst_video_connector_chain (GstPad * pad, GstBuffer * buf); | ||
273 | static GstFlowReturn gst_video_connector_buffer_alloc (GstPad * pad, | ||
274 | guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf); | ||
275 | +#endif | ||
276 | + | ||
277 | static GstStateChangeReturn gst_video_connector_change_state (GstElement * | ||
278 | element, GstStateChange transition); | ||
279 | + | ||
280 | +#if GST_CHECK_VERSION(1,0,0) | ||
281 | +static gboolean gst_video_connector_handle_sink_event (GstPad * pad, GstObject* parent, | ||
282 | + GstEvent * event); | ||
283 | +#else | ||
284 | static gboolean gst_video_connector_handle_sink_event (GstPad * pad, | ||
285 | GstEvent * event); | ||
286 | +#endif | ||
287 | + | ||
288 | +#if GST_CHECK_VERSION(1,0,0) | ||
289 | +static GstPadProbeReturn gst_video_connector_new_buffer_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object); | ||
290 | +static GstPadProbeReturn gst_video_connector_new_event_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object); | ||
291 | +static GstPadProbeReturn gst_video_connector_new_query_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object); | ||
292 | +#else | ||
293 | static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer *buffer, guint * object); | ||
294 | -static void gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal); | ||
295 | static gboolean gst_video_connector_setcaps (GstPad *pad, GstCaps *caps); | ||
296 | static GstCaps *gst_video_connector_getcaps (GstPad * pad); | ||
297 | static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps); | ||
298 | +#endif | ||
299 | + | ||
300 | +static void gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal); | ||
301 | + | ||
302 | +#if GST_CHECK_VERSION(1,0,0) | ||
303 | +static void | ||
304 | +gst_video_connector_class_init (GstVideoConnectorClass * klass) | ||
305 | +{ | ||
306 | + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); | ||
307 | + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); | ||
308 | + | ||
309 | + gst_element_class_set_details_simple (gstelement_class, "Video Connector", | ||
310 | + "Generic", | ||
311 | + "An identity like element used for reconnecting video stream", | ||
312 | + "Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>"); | ||
313 | + gst_element_class_add_pad_template (gstelement_class, | ||
314 | + gst_static_pad_template_get (&gst_video_connector_sink_factory)); | ||
315 | + gst_element_class_add_pad_template (gstelement_class, | ||
316 | + gst_static_pad_template_get (&gst_video_connector_src_factory)); | ||
317 | + | ||
318 | + gst_video_connector_parent_class = g_type_class_peek_parent (klass); | ||
319 | + | ||
320 | + gobject_class->dispose = gst_video_connector_dispose; | ||
321 | + gstelement_class->change_state = gst_video_connector_change_state; | ||
322 | + klass->resend_new_segment = gst_video_connector_resend_new_segment; | ||
323 | + | ||
324 | + gst_video_connector_signals[SIGNAL_RESEND_NEW_SEGMENT] = | ||
325 | + g_signal_new ("resend-new-segment", G_TYPE_FROM_CLASS (klass), | ||
326 | + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, | ||
327 | + G_STRUCT_OFFSET (GstVideoConnectorClass, resend_new_segment), NULL, NULL, | ||
328 | + g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); | ||
329 | + | ||
330 | + gst_video_connector_signals[SIGNAL_CONNECTION_FAILED] = | ||
331 | + g_signal_new ("connection-failed", G_TYPE_FROM_CLASS (klass), | ||
332 | + G_SIGNAL_RUN_LAST, | ||
333 | + 0, NULL, NULL, | ||
334 | + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); | ||
335 | + | ||
336 | + GST_DEBUG_CATEGORY_INIT(video_connector_debug, "video-connector", 0, | ||
337 | + "An identity like element for reconnecting video stream"); | ||
338 | + | ||
339 | +} | ||
340 | + | ||
341 | +#else | ||
342 | |||
343 | static void | ||
344 | gst_video_connector_base_init (gpointer g_class) | ||
345 | @@ -120,18 +187,33 @@ gst_video_connector_class_init (GstVideoConnectorClass * klass) | ||
346 | g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); | ||
347 | } | ||
348 | |||
349 | +#endif | ||
350 | + | ||
351 | static void | ||
352 | -gst_video_connector_init (GstVideoConnector *element, | ||
353 | - GstVideoConnectorClass *g_class) | ||
354 | +gst_video_connector_init (GstVideoConnector *element | ||
355 | +#if GST_CHECK_VERSION(1,0,0) | ||
356 | +#else | ||
357 | + ,GstVideoConnectorClass *g_class | ||
358 | +#endif | ||
359 | + ) | ||
360 | { | ||
361 | +#if GST_CHECK_VERSION(1,0,0) | ||
362 | +#else | ||
363 | (void) g_class; | ||
364 | +#endif | ||
365 | element->sinkpad = | ||
366 | gst_pad_new_from_static_template (&gst_video_connector_sink_factory, | ||
367 | "sink"); | ||
368 | gst_pad_set_chain_function(element->sinkpad, | ||
369 | GST_DEBUG_FUNCPTR (gst_video_connector_chain)); | ||
370 | +#if GST_CHECK_VERSION(1,0,0) | ||
371 | + /* gstreamer 1.x uses QUERIES and EVENTS for allocation and caps handiling purposes */ | ||
372 | + GST_OBJECT_FLAG_SET (element->sinkpad, GST_PAD_FLAG_PROXY_CAPS); | ||
373 | + GST_OBJECT_FLAG_SET (element->sinkpad, GST_PAD_FLAG_PROXY_ALLOCATION); | ||
374 | +#else | ||
375 | gst_pad_set_event_function(element->sinkpad, | ||
376 | GST_DEBUG_FUNCPTR (gst_video_connector_handle_sink_event)); | ||
377 | + | ||
378 | gst_pad_set_bufferalloc_function(element->sinkpad, | ||
379 | GST_DEBUG_FUNCPTR (gst_video_connector_buffer_alloc)); | ||
380 | gst_pad_set_setcaps_function(element->sinkpad, | ||
381 | @@ -140,14 +222,23 @@ gst_video_connector_init (GstVideoConnector *element, | ||
382 | GST_DEBUG_FUNCPTR(gst_video_connector_getcaps)); | ||
383 | gst_pad_set_acceptcaps_function(element->sinkpad, | ||
384 | GST_DEBUG_FUNCPTR(gst_video_connector_acceptcaps)); | ||
385 | - | ||
386 | +#endif | ||
387 | gst_element_add_pad (GST_ELEMENT (element), element->sinkpad); | ||
388 | |||
389 | element->srcpad = | ||
390 | gst_pad_new_from_static_template (&gst_video_connector_src_factory, | ||
391 | "src"); | ||
392 | +#if GST_CHECK_VERSION(1,0,0) | ||
393 | + gst_pad_add_probe(element->srcpad, GST_PAD_PROBE_TYPE_BUFFER, | ||
394 | + gst_video_connector_new_buffer_probe, element, NULL); | ||
395 | + gst_pad_add_probe(element->srcpad, GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM, | ||
396 | + gst_video_connector_new_query_probe, element, NULL); | ||
397 | + gst_pad_add_probe(element->sinkpad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, | ||
398 | + gst_video_connector_new_event_probe, element, NULL); | ||
399 | +#else | ||
400 | gst_pad_add_buffer_probe(element->srcpad, | ||
401 | G_CALLBACK(gst_video_connector_new_buffer_probe), element); | ||
402 | +#endif | ||
403 | gst_element_add_pad (GST_ELEMENT (element), element->srcpad); | ||
404 | |||
405 | element->relinked = FALSE; | ||
406 | @@ -175,9 +266,16 @@ gst_video_connector_dispose (GObject * object) | ||
407 | |||
408 | gst_video_connector_reset (element); | ||
409 | |||
410 | +#if GST_CHECK_VERSION(1,0,0) | ||
411 | + G_OBJECT_CLASS (gst_video_connector_parent_class)->dispose (object); | ||
412 | +#else | ||
413 | G_OBJECT_CLASS (parent_class)->dispose (object); | ||
414 | +#endif | ||
415 | } | ||
416 | |||
417 | +#if GST_CHECK_VERSION(1,0,0) | ||
418 | +/* For gstreamer 1.x we handle it in ALLOCATION Query */ | ||
419 | +#else | ||
420 | // "When this function returns anything else than GST_FLOW_OK, | ||
421 | // the buffer allocation failed and buf does not contain valid data." | ||
422 | static GstFlowReturn | ||
423 | @@ -221,6 +319,7 @@ gst_video_connector_buffer_alloc (GstPad * pad, guint64 offset, guint size, | ||
424 | if (state == GST_STATE_NULL) { | ||
425 | GST_DEBUG_OBJECT (element, "Downstream element is in NULL state"); | ||
426 | // Downstream filter seems to be in the wrong state | ||
427 | + | ||
428 | return GST_FLOW_UNEXPECTED; | ||
429 | } | ||
430 | } | ||
431 | @@ -293,6 +392,7 @@ static GstCaps *gst_video_connector_getcaps (GstPad * pad) | ||
432 | return caps; | ||
433 | } | ||
434 | |||
435 | + | ||
436 | static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps) | ||
437 | { | ||
438 | GstVideoConnector *element; | ||
439 | @@ -300,6 +400,7 @@ static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps) | ||
440 | |||
441 | return gst_pad_peer_accept_caps(element->srcpad, caps); | ||
442 | } | ||
443 | +#endif | ||
444 | |||
445 | static void | ||
446 | gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal) | ||
447 | @@ -311,11 +412,39 @@ gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailed | ||
448 | connector->failedSignalEmited = FALSE; | ||
449 | } | ||
450 | |||
451 | +#if GST_CHECK_VERSION(1,0,0) | ||
452 | +static GstPadProbeReturn gst_video_connector_new_event_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object) | ||
453 | +{ | ||
454 | + GstVideoConnector *connector = GST_VIDEO_CONNECTOR (object); | ||
455 | + GstEvent *event = gst_pad_probe_info_get_event(info); | ||
456 | + | ||
457 | + GST_DEBUG_OBJECT(connector, "Event %"GST_PTR_FORMAT" received\n", event); | ||
458 | + | ||
459 | + return GST_PAD_PROBE_OK; | ||
460 | +} | ||
461 | + | ||
462 | +static GstPadProbeReturn gst_video_connector_new_query_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object) | ||
463 | +{ | ||
464 | + GstVideoConnector *connector = GST_VIDEO_CONNECTOR (object); | ||
465 | + GstQuery *query = gst_pad_probe_info_get_query(info); | ||
466 | + | ||
467 | + GST_DEBUG_OBJECT(connector, "Query %"GST_PTR_FORMAT" received\n", query); | ||
468 | + | ||
469 | + return GST_PAD_PROBE_OK; | ||
470 | +} | ||
471 | +#endif | ||
472 | |||
473 | +#if GST_CHECK_VERSION(1,0,0) | ||
474 | +static GstPadProbeReturn gst_video_connector_new_buffer_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object) | ||
475 | +{ | ||
476 | + (void) info; | ||
477 | +#else | ||
478 | static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer *buffer, guint * object) | ||
479 | { | ||
480 | - (void) pad; | ||
481 | (void) buffer; | ||
482 | +#endif | ||
483 | + (void) pad; | ||
484 | + | ||
485 | |||
486 | GstVideoConnector *element = GST_VIDEO_CONNECTOR (object); | ||
487 | |||
488 | @@ -327,16 +456,23 @@ static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer * | ||
489 | if (element->relinked) | ||
490 | GST_LOG_OBJECT(element, "rejected buffer because of new segment request"); | ||
491 | |||
492 | - return !element->relinked; | ||
493 | + return element->relinked ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_OK; | ||
494 | } | ||
495 | |||
496 | - | ||
497 | static GstFlowReturn | ||
498 | +#if GST_CHECK_VERSION(1,0,0) | ||
499 | +gst_video_connector_chain (GstPad * pad, GstObject* parent, GstBuffer * buf) | ||
500 | +#else | ||
501 | gst_video_connector_chain (GstPad * pad, GstBuffer * buf) | ||
502 | +#endif | ||
503 | { | ||
504 | GstFlowReturn res; | ||
505 | GstVideoConnector *element; | ||
506 | |||
507 | +#if GST_CHECK_VERSION(1,0,0) | ||
508 | + (void)parent; | ||
509 | +#endif | ||
510 | + | ||
511 | element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad)); | ||
512 | |||
513 | do { | ||
514 | @@ -348,20 +484,29 @@ gst_video_connector_chain (GstPad * pad, GstBuffer * buf) | ||
515 | */ | ||
516 | while (element->relinked) { | ||
517 | element->relinked = FALSE; | ||
518 | - | ||
519 | +#if GST_CHECK_VERSION(1,0,0) | ||
520 | + if (element->latest_buffer && GST_BUFFER_TIMESTAMP_IS_VALID(element->latest_buffer)) { | ||
521 | + element->segment.position = GST_BUFFER_TIMESTAMP (element->latest_buffer); | ||
522 | + } | ||
523 | +#else | ||
524 | gint64 pos = element->segment.last_stop; | ||
525 | - | ||
526 | if (element->latest_buffer && GST_BUFFER_TIMESTAMP_IS_VALID(element->latest_buffer)) { | ||
527 | pos = GST_BUFFER_TIMESTAMP (element->latest_buffer); | ||
528 | } | ||
529 | +#endif | ||
530 | |||
531 | //push a new segment and last buffer | ||
532 | +#if GST_CHECK_VERSION(1,0,0) | ||
533 | + GstEvent *ev = gst_event_new_segment (&element->segment); | ||
534 | + | ||
535 | +#else | ||
536 | GstEvent *ev = gst_event_new_new_segment (TRUE, | ||
537 | element->segment.rate, | ||
538 | element->segment.format, | ||
539 | pos, //start | ||
540 | element->segment.stop, | ||
541 | pos); | ||
542 | +#endif | ||
543 | |||
544 | GST_DEBUG_OBJECT (element, "Pushing new segment event"); | ||
545 | if (!gst_pad_push_event (element->srcpad, ev)) { | ||
546 | @@ -424,8 +569,11 @@ gst_video_connector_change_state (GstElement * element, | ||
547 | GstStateChangeReturn result; | ||
548 | |||
549 | connector = GST_VIDEO_CONNECTOR(element); | ||
550 | +#if GST_CHECK_VERSION(1,0,0) | ||
551 | + result = GST_ELEMENT_CLASS (gst_video_connector_parent_class)->change_state(element, transition); | ||
552 | +#else | ||
553 | result = GST_ELEMENT_CLASS (parent_class)->change_state(element, transition); | ||
554 | - | ||
555 | +#endif | ||
556 | switch (transition) { | ||
557 | case GST_STATE_CHANGE_PAUSED_TO_READY: | ||
558 | gst_video_connector_reset (connector); | ||
559 | @@ -440,9 +588,32 @@ gst_video_connector_change_state (GstElement * element, | ||
560 | return result; | ||
561 | } | ||
562 | |||
563 | -static gboolean | ||
564 | -gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event) | ||
565 | +#if GST_CHECK_VERSION(1,0,0) | ||
566 | +static gboolean gst_video_connector_handle_sink_event (GstPad * pad, GstObject* parent, | ||
567 | + GstEvent * event) | ||
568 | +{ | ||
569 | + GstVideoConnector *element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad)); | ||
570 | + | ||
571 | + switch (GST_EVENT_TYPE (event)) { | ||
572 | + case GST_EVENT_SEGMENT: | ||
573 | + break; | ||
574 | + case GST_EVENT_CAPS: | ||
575 | + break; | ||
576 | + default: | ||
577 | + break; | ||
578 | + } | ||
579 | + | ||
580 | + gst_object_unref (element); | ||
581 | + return gst_pad_event_default (pad, parent, event); | ||
582 | +} | ||
583 | + | ||
584 | +#else | ||
585 | + | ||
586 | +static gboolean gst_video_connector_handle_sink_event (GstPad * pad, | ||
587 | + GstEvent * event) | ||
588 | { | ||
589 | + (void)parent; | ||
590 | + | ||
591 | if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) { | ||
592 | GstVideoConnector *element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad)); | ||
593 | |||
594 | @@ -453,7 +624,6 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event) | ||
595 | |||
596 | gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, | ||
597 | &start, &stop, &time); | ||
598 | - | ||
599 | GST_LOG_OBJECT (element, | ||
600 | "NEWSEGMENT update %d, rate %lf, applied rate %lf, " | ||
601 | "format %d, " "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %" | ||
602 | @@ -461,9 +631,10 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event) | ||
603 | |||
604 | gst_segment_set_newsegment_full (&element->segment, update, | ||
605 | rate, arate, format, start, stop, time); | ||
606 | - | ||
607 | gst_object_unref (element); | ||
608 | } | ||
609 | |||
610 | return gst_pad_event_default (pad, event); | ||
611 | } | ||
612 | + | ||
613 | +#endif | ||
614 | diff --git a/src/gsttools/qgstappsrc.cpp b/src/gsttools/qgstappsrc.cpp | ||
615 | index 561a96f..d5e106f 100644 | ||
616 | --- a/src/gsttools/qgstappsrc.cpp | ||
617 | +++ b/src/gsttools/qgstappsrc.cpp | ||
618 | @@ -147,23 +147,44 @@ void QGstAppSrc::pushDataToAppSrc() | ||
619 | size = qMin(m_stream->bytesAvailable(), (qint64)m_dataRequestSize); | ||
620 | |||
621 | if (size) { | ||
622 | - void *data = g_malloc(size); | ||
623 | - GstBuffer* buffer = gst_app_buffer_new(data, size, g_free, data); | ||
624 | + GstBuffer* buffer = gst_buffer_new_and_alloc(size); | ||
625 | + | ||
626 | +#if GST_CHECK_VERSION(1,0,0) | ||
627 | + GstMapInfo mapInfo; | ||
628 | + gst_buffer_map(buffer, &mapInfo, GST_MAP_WRITE); | ||
629 | + void* bufferData = mapInfo.data; | ||
630 | +#else | ||
631 | + void* bufferData = GST_BUFFER_DATA(buffer); | ||
632 | +#endif | ||
633 | + | ||
634 | buffer->offset = m_stream->pos(); | ||
635 | - qint64 bytesRead = m_stream->read((char*)GST_BUFFER_DATA(buffer), size); | ||
636 | + qint64 bytesRead = m_stream->read((char*)bufferData, size); | ||
637 | buffer->offset_end = buffer->offset + bytesRead - 1; | ||
638 | |||
639 | +#if GST_CHECK_VERSION(1,0,0) | ||
640 | + gst_buffer_unmap(buffer, &mapInfo); | ||
641 | +#endif | ||
642 | + | ||
643 | if (bytesRead > 0) { | ||
644 | m_dataRequested = false; | ||
645 | m_enoughData = false; | ||
646 | GstFlowReturn ret = gst_app_src_push_buffer (GST_APP_SRC (element()), buffer); | ||
647 | if (ret == GST_FLOW_ERROR) { | ||
648 | qWarning()<<"appsrc: push buffer error"; | ||
649 | +#if GST_CHECK_VERSION(1,0,0) | ||
650 | + } else if (ret == GST_FLOW_FLUSHING) { | ||
651 | + qWarning()<<"appsrc: push buffer wrong state"; | ||
652 | + } | ||
653 | +#else | ||
654 | } else if (ret == GST_FLOW_WRONG_STATE) { | ||
655 | qWarning()<<"appsrc: push buffer wrong state"; | ||
656 | - } else if (ret == GST_FLOW_RESEND) { | ||
657 | + } | ||
658 | +#endif | ||
659 | +#if GST_VERSION_MAJOR < 1 | ||
660 | + else if (ret == GST_FLOW_RESEND) { | ||
661 | qWarning()<<"appsrc: push buffer resend"; | ||
662 | } | ||
663 | +#endif | ||
664 | } | ||
665 | } else { | ||
666 | sendEOS(); | ||
667 | diff --git a/src/gsttools/qgstreameraudioprobecontrol.cpp b/src/gsttools/qgstreameraudioprobecontrol.cpp | ||
668 | index 3baca53..be3de3f 100644 | ||
669 | --- a/src/gsttools/qgstreameraudioprobecontrol.cpp | ||
670 | +++ b/src/gsttools/qgstreameraudioprobecontrol.cpp | ||
671 | @@ -45,9 +45,14 @@ QGstreamerAudioProbeControl::~QGstreamerAudioProbeControl() | ||
672 | |||
673 | } | ||
674 | |||
675 | +#if GST_CHECK_VERSION(1,0,0) | ||
676 | +void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer, GstCaps* caps) | ||
677 | +{ | ||
678 | +#else | ||
679 | void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer) | ||
680 | { | ||
681 | - GstCaps* caps = gst_buffer_get_caps(buffer); | ||
682 | + gst_buffer_get_caps(buffer); | ||
683 | +#endif | ||
684 | if (!caps) | ||
685 | return; | ||
686 | |||
687 | @@ -56,8 +61,20 @@ void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer) | ||
688 | if (!format.isValid()) | ||
689 | return; | ||
690 | |||
691 | + #if GST_CHECK_VERSION(1,0,0) | ||
692 | + | ||
693 | + GstMapInfo info; | ||
694 | + | ||
695 | + gst_buffer_map (buffer, &info, GST_MAP_READ); | ||
696 | + QAudioBuffer audioBuffer = QAudioBuffer(QByteArray((const char*)info.data, info.size), format); | ||
697 | + gst_buffer_unmap(buffer, &info); | ||
698 | + | ||
699 | + #else | ||
700 | + | ||
701 | QAudioBuffer audioBuffer = QAudioBuffer(QByteArray((const char*)buffer->data, buffer->size), format); | ||
702 | |||
703 | + #endif | ||
704 | + | ||
705 | { | ||
706 | QMutexLocker locker(&m_bufferMutex); | ||
707 | m_pendingBuffer = audioBuffer; | ||
708 | diff --git a/src/gsttools/qgstreamerbushelper.cpp b/src/gsttools/qgstreamerbushelper.cpp | ||
709 | index 84eda46..eb1fc36 100644 | ||
710 | --- a/src/gsttools/qgstreamerbushelper.cpp | ||
711 | +++ b/src/gsttools/qgstreamerbushelper.cpp | ||
712 | @@ -154,13 +154,21 @@ QGstreamerBusHelper::QGstreamerBusHelper(GstBus* bus, QObject* parent): | ||
713 | QObject(parent) | ||
714 | { | ||
715 | d = new QGstreamerBusHelperPrivate(this, bus); | ||
716 | +#if GST_CHECK_VERSION(1,0,0) | ||
717 | + gst_bus_set_sync_handler(bus, (GstBusSyncHandler)syncGstBusFilter, d, 0); | ||
718 | +#else | ||
719 | gst_bus_set_sync_handler(bus, (GstBusSyncHandler)syncGstBusFilter, d); | ||
720 | +#endif | ||
721 | gst_object_ref(GST_OBJECT(bus)); | ||
722 | } | ||
723 | |||
724 | QGstreamerBusHelper::~QGstreamerBusHelper() | ||
725 | { | ||
726 | +#if GST_CHECK_VERSION(1,0,0) | ||
727 | + gst_bus_set_sync_handler(d->bus(), 0, 0, 0); | ||
728 | +#else | ||
729 | gst_bus_set_sync_handler(d->bus(),0,0); | ||
730 | +#endif | ||
731 | gst_object_unref(GST_OBJECT(d->bus())); | ||
732 | } | ||
733 | |||
734 | diff --git a/src/gsttools/qgstreamervideoprobecontrol.cpp b/src/gsttools/qgstreamervideoprobecontrol.cpp | ||
735 | index a78a9da..9c31140 100644 | ||
736 | --- a/src/gsttools/qgstreamervideoprobecontrol.cpp | ||
737 | +++ b/src/gsttools/qgstreamervideoprobecontrol.cpp | ||
738 | @@ -67,12 +67,21 @@ void QGstreamerVideoProbeControl::stopFlushing() | ||
739 | m_flushing = false; | ||
740 | } | ||
741 | |||
742 | +#if GST_CHECK_VERSION(1,0,0) | ||
743 | +void QGstreamerVideoProbeControl::bufferProbed(GstBuffer* buffer, GstCaps* caps) | ||
744 | +#else | ||
745 | void QGstreamerVideoProbeControl::bufferProbed(GstBuffer* buffer) | ||
746 | +#endif | ||
747 | { | ||
748 | if (m_flushing) | ||
749 | return; | ||
750 | |||
751 | +#if GST_CHECK_VERSION(1,0,0) | ||
752 | + // FIXME: | ||
753 | + // GstCaps* caps = NULL;//gst_buffer_get_caps(buffer); | ||
754 | +#else | ||
755 | GstCaps* caps = gst_buffer_get_caps(buffer); | ||
756 | +#endif | ||
757 | if (!caps) | ||
758 | return; | ||
759 | |||
760 | diff --git a/src/gsttools/qgstreamervideorenderer.cpp b/src/gsttools/qgstreamervideorenderer.cpp | ||
761 | index 2b66f76..804dce9 100644 | ||
762 | --- a/src/gsttools/qgstreamervideorenderer.cpp | ||
763 | +++ b/src/gsttools/qgstreamervideorenderer.cpp | ||
764 | @@ -35,8 +35,7 @@ | ||
765 | #include <private/qvideosurfacegstsink_p.h> | ||
766 | #include <private/qgstutils_p.h> | ||
767 | #include <qabstractvideosurface.h> | ||
768 | - | ||
769 | -#include <QDebug> | ||
770 | +#include <QtCore/qdebug.h> | ||
771 | |||
772 | #include <gst/gst.h> | ||
773 | |||
774 | diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp | ||
775 | index aa2e2a3..14c1f04 100644 | ||
776 | --- a/src/gsttools/qgstreamervideowidget.cpp | ||
777 | +++ b/src/gsttools/qgstreamervideowidget.cpp | ||
778 | @@ -40,8 +40,13 @@ | ||
779 | #include <QtGui/qpainter.h> | ||
780 | |||
781 | #include <gst/gst.h> | ||
782 | + | ||
783 | +#if !GST_CHECK_VERSION(1,0,0) | ||
784 | #include <gst/interfaces/xoverlay.h> | ||
785 | #include <gst/interfaces/propertyprobe.h> | ||
786 | +#else | ||
787 | +#include <gst/video/videooverlay.h> | ||
788 | +#endif | ||
789 | |||
790 | QT_BEGIN_NAMESPACE | ||
791 | |||
792 | @@ -169,9 +174,13 @@ bool QGstreamerVideoWidgetControl::processSyncMessage(const QGstreamerMessage &m | ||
793 | { | ||
794 | GstMessage* gm = message.rawMessage(); | ||
795 | |||
796 | +#if !GST_CHECK_VERSION(1,0,0) | ||
797 | if (gm && (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) && | ||
798 | gst_structure_has_name(gm->structure, "prepare-xwindow-id")) { | ||
799 | - | ||
800 | +#else | ||
801 | + if (gm && (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) && | ||
802 | + gst_structure_has_name(gst_message_get_structure(gm), "prepare-window-handle")) { | ||
803 | +#endif | ||
804 | setOverlay(); | ||
805 | QMetaObject::invokeMethod(this, "updateNativeVideoSize", Qt::QueuedConnection); | ||
806 | return true; | ||
807 | @@ -199,18 +208,29 @@ bool QGstreamerVideoWidgetControl::processBusMessage(const QGstreamerMessage &me | ||
808 | |||
809 | void QGstreamerVideoWidgetControl::setOverlay() | ||
810 | { | ||
811 | +#if !GST_CHECK_VERSION(1,0,0) | ||
812 | if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { | ||
813 | gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(m_videoSink), m_windowId); | ||
814 | } | ||
815 | +#else | ||
816 | + if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) { | ||
817 | + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(m_videoSink), m_windowId); | ||
818 | + } | ||
819 | +#endif | ||
820 | } | ||
821 | |||
822 | void QGstreamerVideoWidgetControl::updateNativeVideoSize() | ||
823 | { | ||
824 | if (m_videoSink) { | ||
825 | //find video native size to update video widget size hint | ||
826 | - GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink"); | ||
827 | + GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink"); | ||
828 | +#if !GST_CHECK_VERSION(1,0,0) | ||
829 | GstCaps *caps = gst_pad_get_negotiated_caps(pad); | ||
830 | gst_object_unref(GST_OBJECT(pad)); | ||
831 | +#else | ||
832 | + GstCaps *caps = gst_pad_get_current_caps(pad); | ||
833 | + gst_object_unref(GST_OBJECT(pad)); | ||
834 | +#endif | ||
835 | |||
836 | if (caps) { | ||
837 | m_widget->setNativeSize(QGstUtils::capsCorrectedResolution(caps)); | ||
838 | @@ -225,8 +245,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize() | ||
839 | |||
840 | void QGstreamerVideoWidgetControl::windowExposed() | ||
841 | { | ||
842 | +#if !GST_CHECK_VERSION(1,0,0) | ||
843 | if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) | ||
844 | gst_x_overlay_expose(GST_X_OVERLAY(m_videoSink)); | ||
845 | +#else | ||
846 | + if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) | ||
847 | + gst_video_overlay_expose(GST_VIDEO_OVERLAY(m_videoSink)); | ||
848 | +#endif | ||
849 | } | ||
850 | |||
851 | QWidget *QGstreamerVideoWidgetControl::videoWidget() | ||
852 | diff --git a/src/gsttools/qgstreamervideowindow.cpp b/src/gsttools/qgstreamervideowindow.cpp | ||
853 | index a373dcc..587b010 100644 | ||
854 | --- a/src/gsttools/qgstreamervideowindow.cpp | ||
855 | +++ b/src/gsttools/qgstreamervideowindow.cpp | ||
856 | @@ -37,8 +37,12 @@ | ||
857 | #include <QtCore/qdebug.h> | ||
858 | |||
859 | #include <gst/gst.h> | ||
860 | +#include <gst/video/videooverlay.h> | ||
861 | + | ||
862 | +#if !GST_CHECK_VERSION(1,0,0) | ||
863 | #include <gst/interfaces/xoverlay.h> | ||
864 | #include <gst/interfaces/propertyprobe.h> | ||
865 | +#endif | ||
866 | |||
867 | |||
868 | QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elementName) | ||
869 | @@ -49,18 +53,25 @@ QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elemen | ||
870 | , m_fullScreen(false) | ||
871 | , m_colorKey(QColor::Invalid) | ||
872 | { | ||
873 | - if (elementName) | ||
874 | + if (elementName) { | ||
875 | m_videoSink = gst_element_factory_make(elementName, NULL); | ||
876 | - else | ||
877 | + } else { | ||
878 | m_videoSink = gst_element_factory_make("xvimagesink", NULL); | ||
879 | + } | ||
880 | |||
881 | if (m_videoSink) { | ||
882 | qt_gst_object_ref_sink(GST_OBJECT(m_videoSink)); //Take ownership | ||
883 | |||
884 | GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink"); | ||
885 | +#if GST_CHECK_VERSION(1,0,0) | ||
886 | + m_bufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padBufferProbe, this, NULL); | ||
887 | +#else | ||
888 | m_bufferProbeId = gst_pad_add_buffer_probe(pad, G_CALLBACK(padBufferProbe), this); | ||
889 | +#endif | ||
890 | gst_object_unref(GST_OBJECT(pad)); | ||
891 | } | ||
892 | + else | ||
893 | + qDebug() << "No m_videoSink available!"; | ||
894 | } | ||
895 | |||
896 | QGstreamerVideoWindow::~QGstreamerVideoWindow() | ||
897 | @@ -82,11 +93,15 @@ void QGstreamerVideoWindow::setWinId(WId id) | ||
898 | WId oldId = m_windowId; | ||
899 | |||
900 | m_windowId = id; | ||
901 | - | ||
902 | +#if GST_CHECK_VERSION(1,0,0) | ||
903 | + if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) { | ||
904 | + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(m_videoSink), m_windowId); | ||
905 | + } | ||
906 | +#else | ||
907 | if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { | ||
908 | gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(m_videoSink), m_windowId); | ||
909 | } | ||
910 | - | ||
911 | +#endif | ||
912 | if (!oldId) | ||
913 | emit readyChanged(true); | ||
914 | |||
915 | @@ -97,7 +112,20 @@ void QGstreamerVideoWindow::setWinId(WId id) | ||
916 | bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message) | ||
917 | { | ||
918 | GstMessage* gm = message.rawMessage(); | ||
919 | +#if GST_CHECK_VERSION(1,0,0) | ||
920 | + const GstStructure *s = gst_message_get_structure(gm); | ||
921 | + if ((GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) && | ||
922 | + gst_structure_has_name(s, "prepare-window-handle") && | ||
923 | + m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) { | ||
924 | + | ||
925 | + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(m_videoSink), m_windowId); | ||
926 | |||
927 | + GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink"); | ||
928 | + m_bufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padBufferProbe, this, NULL); | ||
929 | + | ||
930 | + return true; | ||
931 | + } | ||
932 | +#else | ||
933 | if ((GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) && | ||
934 | gst_structure_has_name(gm->structure, "prepare-xwindow-id") && | ||
935 | m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { | ||
936 | @@ -110,7 +138,7 @@ bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message) | ||
937 | |||
938 | return true; | ||
939 | } | ||
940 | - | ||
941 | +#endif | ||
942 | return false; | ||
943 | } | ||
944 | |||
945 | @@ -122,7 +150,19 @@ QRect QGstreamerVideoWindow::displayRect() const | ||
946 | void QGstreamerVideoWindow::setDisplayRect(const QRect &rect) | ||
947 | { | ||
948 | m_displayRect = rect; | ||
949 | - | ||
950 | +#if GST_CHECK_VERSION(1,0,0) | ||
951 | + if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) { | ||
952 | + if (m_displayRect.isEmpty()) | ||
953 | + gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(m_videoSink), -1, -1, -1, -1); | ||
954 | + else | ||
955 | + gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(m_videoSink), | ||
956 | + m_displayRect.x(), | ||
957 | + m_displayRect.y(), | ||
958 | + m_displayRect.width(), | ||
959 | + m_displayRect.height()); | ||
960 | + repaint(); | ||
961 | + } | ||
962 | +#else | ||
963 | if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { | ||
964 | #if GST_VERSION_MICRO >= 29 | ||
965 | if (m_displayRect.isEmpty()) | ||
966 | @@ -136,6 +176,7 @@ void QGstreamerVideoWindow::setDisplayRect(const QRect &rect) | ||
967 | repaint(); | ||
968 | #endif | ||
969 | } | ||
970 | +#endif | ||
971 | } | ||
972 | |||
973 | Qt::AspectRatioMode QGstreamerVideoWindow::aspectRatioMode() const | ||
974 | @@ -157,6 +198,16 @@ void QGstreamerVideoWindow::setAspectRatioMode(Qt::AspectRatioMode mode) | ||
975 | |||
976 | void QGstreamerVideoWindow::repaint() | ||
977 | { | ||
978 | +#if GST_CHECK_VERSION(1,0,0) | ||
979 | + if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) { | ||
980 | + //don't call gst_x_overlay_expose if the sink is in null state | ||
981 | + GstState state = GST_STATE_NULL; | ||
982 | + GstStateChangeReturn res = gst_element_get_state(m_videoSink, &state, NULL, 1000000); | ||
983 | + if (res != GST_STATE_CHANGE_FAILURE && state != GST_STATE_NULL) { | ||
984 | + gst_video_overlay_expose(GST_VIDEO_OVERLAY(m_videoSink)); | ||
985 | + } | ||
986 | + } | ||
987 | +#else | ||
988 | if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { | ||
989 | //don't call gst_x_overlay_expose if the sink is in null state | ||
990 | GstState state = GST_STATE_NULL; | ||
991 | @@ -165,6 +216,7 @@ void QGstreamerVideoWindow::repaint() | ||
992 | gst_x_overlay_expose(GST_X_OVERLAY(m_videoSink)); | ||
993 | } | ||
994 | } | ||
995 | +#endif | ||
996 | } | ||
997 | |||
998 | QColor QGstreamerVideoWindow::colorKey() const | ||
999 | @@ -296,11 +348,22 @@ QSize QGstreamerVideoWindow::nativeSize() const | ||
1000 | return m_nativeSize; | ||
1001 | } | ||
1002 | |||
1003 | +#if GST_CHECK_VERSION(1,0,0) | ||
1004 | +GstPadProbeReturn QGstreamerVideoWindow::padBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) | ||
1005 | +#else | ||
1006 | void QGstreamerVideoWindow::padBufferProbe(GstPad *pad, GstBuffer * /* buffer */, gpointer user_data) | ||
1007 | +#endif | ||
1008 | { | ||
1009 | QGstreamerVideoWindow *control = reinterpret_cast<QGstreamerVideoWindow*>(user_data); | ||
1010 | QMetaObject::invokeMethod(control, "updateNativeVideoSize", Qt::QueuedConnection); | ||
1011 | + | ||
1012 | +#if GST_CHECK_VERSION(1,0,0) | ||
1013 | + Q_UNUSED(pad); | ||
1014 | + Q_UNUSED(info); | ||
1015 | + return GST_PAD_PROBE_REMOVE; | ||
1016 | +#else | ||
1017 | gst_pad_remove_buffer_probe(pad, control->m_bufferProbeId); | ||
1018 | +#endif | ||
1019 | } | ||
1020 | |||
1021 | void QGstreamerVideoWindow::updateNativeVideoSize() | ||
1022 | @@ -311,7 +374,11 @@ void QGstreamerVideoWindow::updateNativeVideoSize() | ||
1023 | if (m_videoSink) { | ||
1024 | //find video native size to update video widget size hint | ||
1025 | GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink"); | ||
1026 | +#if GST_CHECK_VERSION(1,0,0) | ||
1027 | + GstCaps *caps = gst_pad_get_current_caps(pad); | ||
1028 | +#else | ||
1029 | GstCaps *caps = gst_pad_get_negotiated_caps(pad); | ||
1030 | +#endif | ||
1031 | gst_object_unref(GST_OBJECT(pad)); | ||
1032 | |||
1033 | if (caps) { | ||
1034 | diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp | ||
1035 | index 1281d3f..fe3fba0 100644 | ||
1036 | --- a/src/gsttools/qgstutils.cpp | ||
1037 | +++ b/src/gsttools/qgstutils.cpp | ||
1038 | @@ -89,8 +89,13 @@ static void addTagToMap(const GstTagList *list, | ||
1039 | break; | ||
1040 | default: | ||
1041 | // GST_TYPE_DATE is a function, not a constant, so pull it out of the switch | ||
1042 | +#if GST_CHECK_VERSION(1,0,0) | ||
1043 | + if (G_VALUE_TYPE(&val) == G_TYPE_DATE) { | ||
1044 | + const GDate *date = (const GDate *)g_value_get_boxed(&val); | ||
1045 | +#else | ||
1046 | if (G_VALUE_TYPE(&val) == GST_TYPE_DATE) { | ||
1047 | const GDate *date = gst_value_get_date(&val); | ||
1048 | +#endif | ||
1049 | if (g_date_valid(date)) { | ||
1050 | int year = g_date_get_year(date); | ||
1051 | int month = g_date_get_month(date); | ||
1052 | @@ -254,6 +259,24 @@ QAudioFormat QGstUtils::audioFormatForCaps(const GstCaps *caps) | ||
1053 | } | ||
1054 | |||
1055 | |||
1056 | + | ||
1057 | +#if GST_CHECK_VERSION(1,0,0) | ||
1058 | +/*! | ||
1059 | + Returns audio format for a buffer. | ||
1060 | + If the buffer doesn't have a valid audio format, an empty QAudioFormat is returned. | ||
1061 | +*/ | ||
1062 | + | ||
1063 | +QAudioFormat QGstUtils::audioFormatForSample(GstSample *sample) | ||
1064 | +{ | ||
1065 | + GstCaps* caps = gst_sample_get_caps(sample); | ||
1066 | + if (!caps) | ||
1067 | + return QAudioFormat(); | ||
1068 | + | ||
1069 | + QAudioFormat format = QGstUtils::audioFormatForCaps(caps); | ||
1070 | + gst_caps_unref(caps); | ||
1071 | + return format; | ||
1072 | +} | ||
1073 | +#else | ||
1074 | /*! | ||
1075 | Returns audio format for a buffer. | ||
1076 | If the buffer doesn't have a valid audio format, an empty QAudioFormat is returned. | ||
1077 | @@ -269,7 +292,7 @@ QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer) | ||
1078 | gst_caps_unref(caps); | ||
1079 | return format; | ||
1080 | } | ||
1081 | - | ||
1082 | +#endif | ||
1083 | |||
1084 | /*! | ||
1085 | Builds GstCaps for an audio format. | ||
1086 | @@ -581,7 +604,7 @@ QByteArray QGstUtils::cameraDriver(const QString &device, GstElementFactory *fac | ||
1087 | |||
1088 | void qt_gst_object_ref_sink(gpointer object) | ||
1089 | { | ||
1090 | -#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 24) | ||
1091 | +#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 24) || GST_CHECK_VERSION(1,0,0) | ||
1092 | gst_object_ref_sink(object); | ||
1093 | #else | ||
1094 | g_return_if_fail (GST_IS_OBJECT(object)); | ||
1095 | diff --git a/src/gsttools/qgstvideobuffer.cpp b/src/gsttools/qgstvideobuffer.cpp | ||
1096 | index 18702ec..93f22f5 100644 | ||
1097 | --- a/src/gsttools/qgstvideobuffer.cpp | ||
1098 | +++ b/src/gsttools/qgstvideobuffer.cpp | ||
1099 | @@ -70,21 +70,33 @@ QAbstractVideoBuffer::MapMode QGstVideoBuffer::mapMode() const | ||
1100 | uchar *QGstVideoBuffer::map(MapMode mode, int *numBytes, int *bytesPerLine) | ||
1101 | { | ||
1102 | if (mode != NotMapped && m_mode == NotMapped) { | ||
1103 | - if (numBytes) | ||
1104 | - *numBytes = m_buffer->size; | ||
1105 | + m_mode = mode; | ||
1106 | |||
1107 | if (bytesPerLine) | ||
1108 | *bytesPerLine = m_bytesPerLine; | ||
1109 | |||
1110 | - m_mode = mode; | ||
1111 | +#if GST_CHECK_VERSION(1,0,0) | ||
1112 | + gst_buffer_map(m_buffer, &m_mapInfo, GST_MAP_READ); | ||
1113 | + if (numBytes) | ||
1114 | + *numBytes = m_mapInfo.size; | ||
1115 | + | ||
1116 | + return m_mapInfo.data; | ||
1117 | +#else | ||
1118 | + if (numBytes) | ||
1119 | + *numBytes = m_buffer->size; | ||
1120 | |||
1121 | return m_buffer->data; | ||
1122 | +#endif | ||
1123 | } else { | ||
1124 | return 0; | ||
1125 | } | ||
1126 | } | ||
1127 | void QGstVideoBuffer::unmap() | ||
1128 | { | ||
1129 | +#if GST_CHECK_VERSION(1,0,0) | ||
1130 | + if (m_mode != NotMapped) | ||
1131 | + gst_buffer_unmap(m_buffer, &m_mapInfo); | ||
1132 | +#endif | ||
1133 | m_mode = NotMapped; | ||
1134 | } | ||
1135 | |||
1136 | diff --git a/src/gsttools/qvideosurfacegstsink.cpp b/src/gsttools/qvideosurfacegstsink.cpp | ||
1137 | index f3e2d88..94aaee7 100644 | ||
1138 | --- a/src/gsttools/qvideosurfacegstsink.cpp | ||
1139 | +++ b/src/gsttools/qvideosurfacegstsink.cpp | ||
1140 | @@ -43,7 +43,11 @@ | ||
1141 | |||
1142 | #include "qvideosurfacegstsink_p.h" | ||
1143 | |||
1144 | -//#define DEBUG_VIDEO_SURFACE_SINK | ||
1145 | +#if GST_VERSION_MAJOR >=1 | ||
1146 | +#include <gst/video/video.h> | ||
1147 | +#endif | ||
1148 | + | ||
1149 | +#define DEBUG_VIDEO_SURFACE_SINK | ||
1150 | |||
1151 | QT_BEGIN_NAMESPACE | ||
1152 | |||
1153 | @@ -62,10 +66,12 @@ QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate( | ||
1154 | if (m_surface) { | ||
1155 | foreach (QObject *instance, bufferPoolLoader()->instances(QGstBufferPoolPluginKey)) { | ||
1156 | QGstBufferPoolInterface* plugin = qobject_cast<QGstBufferPoolInterface*>(instance); | ||
1157 | + | ||
1158 | if (plugin) { | ||
1159 | m_pools.append(plugin); | ||
1160 | } | ||
1161 | } | ||
1162 | + | ||
1163 | updateSupportedFormats(); | ||
1164 | connect(m_surface, SIGNAL(supportedFormatsChanged()), this, SLOT(updateSupportedFormats())); | ||
1165 | } | ||
1166 | @@ -198,6 +204,8 @@ GstFlowReturn QVideoSurfaceGstDelegate::render(GstBuffer *buffer) | ||
1167 | if (QThread::currentThread() == thread()) { | ||
1168 | if (!m_surface.isNull()) | ||
1169 | m_surface->present(m_frame); | ||
1170 | + else | ||
1171 | + qWarning() << "m_surface.isNull()."; | ||
1172 | } else { | ||
1173 | QMetaObject::invokeMethod(this, "queuedRender", Qt::QueuedConnection); | ||
1174 | m_renderCondition.wait(&m_mutex, 300); | ||
1175 | @@ -283,6 +291,27 @@ void QVideoSurfaceGstDelegate::updateSupportedFormats() | ||
1176 | } | ||
1177 | } | ||
1178 | |||
1179 | +#if GST_CHECK_VERSION(1,0,0) | ||
1180 | +struct YuvFormat | ||
1181 | +{ | ||
1182 | + QVideoFrame::PixelFormat pixelFormat; | ||
1183 | + GstVideoFormat vfmt; | ||
1184 | + guint32 fourcc; | ||
1185 | + int bitsPerPixel; | ||
1186 | +}; | ||
1187 | + | ||
1188 | +static const YuvFormat qt_yuvColorLookup[] = | ||
1189 | +{ | ||
1190 | + { QVideoFrame::Format_YUV420P, GST_VIDEO_FORMAT_I420, GST_MAKE_FOURCC('I','4','2','0'), 8 }, | ||
1191 | + { QVideoFrame::Format_YV12, GST_VIDEO_FORMAT_YV12, GST_MAKE_FOURCC('Y','V','1','2'), 8 }, | ||
1192 | + { QVideoFrame::Format_UYVY, GST_VIDEO_FORMAT_UYVY, GST_MAKE_FOURCC('U','Y','V','Y'), 16 }, | ||
1193 | + { QVideoFrame::Format_YUYV, GST_VIDEO_FORMAT_YUY2, GST_MAKE_FOURCC('Y','U','Y','2'), 16 }, | ||
1194 | + { QVideoFrame::Format_NV12, GST_VIDEO_FORMAT_NV12, GST_MAKE_FOURCC('N','V','1','2'), 8 }, | ||
1195 | + { QVideoFrame::Format_NV21, GST_VIDEO_FORMAT_NV21, GST_MAKE_FOURCC('N','V','2','1'), 8 }, | ||
1196 | + { QVideoFrame::Format_AYUV444, GST_VIDEO_FORMAT_AYUV, GST_MAKE_FOURCC('A','Y','U','V'), 32 }, | ||
1197 | +}; | ||
1198 | + | ||
1199 | +#else | ||
1200 | struct YuvFormat | ||
1201 | { | ||
1202 | QVideoFrame::PixelFormat pixelFormat; | ||
1203 | @@ -300,6 +329,7 @@ static const YuvFormat qt_yuvColorLookup[] = | ||
1204 | { QVideoFrame::Format_NV21, GST_MAKE_FOURCC('N','V','2','1'), 8 }, | ||
1205 | { QVideoFrame::Format_AYUV444, GST_MAKE_FOURCC('A','Y','U','V'), 32 } | ||
1206 | }; | ||
1207 | +#endif | ||
1208 | |||
1209 | static int indexOfYuvColor(QVideoFrame::PixelFormat format) | ||
1210 | { | ||
1211 | @@ -312,12 +342,20 @@ static int indexOfYuvColor(QVideoFrame::PixelFormat format) | ||
1212 | return -1; | ||
1213 | } | ||
1214 | |||
1215 | +#if GST_VERSION_MAJOR >=1 | ||
1216 | +static int indexOfYuvColor(GstVideoFormat vfmt) | ||
1217 | +#else | ||
1218 | static int indexOfYuvColor(guint32 fourcc) | ||
1219 | +#endif | ||
1220 | { | ||
1221 | const int count = sizeof(qt_yuvColorLookup) / sizeof(YuvFormat); | ||
1222 | |||
1223 | for (int i = 0; i < count; ++i) | ||
1224 | +#if GST_VERSION_MAJOR >=1 | ||
1225 | + if (qt_yuvColorLookup[i].vfmt == vfmt) | ||
1226 | +#else | ||
1227 | if (qt_yuvColorLookup[i].fourcc == fourcc) | ||
1228 | +#endif | ||
1229 | return i; | ||
1230 | |||
1231 | return -1; | ||
1232 | @@ -388,13 +426,13 @@ GType QVideoSurfaceGstSink::get_type() | ||
1233 | if (type == 0) { | ||
1234 | static const GTypeInfo info = | ||
1235 | { | ||
1236 | - sizeof(QVideoSurfaceGstSinkClass), // class_size | ||
1237 | + sizeof(QVideoSurfaceGstSinkClass), // class_size | ||
1238 | base_init, // base_init | ||
1239 | NULL, // base_finalize | ||
1240 | class_init, // class_init | ||
1241 | NULL, // class_finalize | ||
1242 | NULL, // class_data | ||
1243 | - sizeof(QVideoSurfaceGstSink), // instance_size | ||
1244 | + sizeof(QVideoSurfaceGstSink), // instance_size | ||
1245 | 0, // n_preallocs | ||
1246 | instance_init, // instance_init | ||
1247 | 0 // value_table | ||
1248 | @@ -419,7 +457,11 @@ void QVideoSurfaceGstSink::class_init(gpointer g_class, gpointer class_data) | ||
1249 | GstBaseSinkClass *base_sink_class = reinterpret_cast<GstBaseSinkClass *>(g_class); | ||
1250 | base_sink_class->get_caps = QVideoSurfaceGstSink::get_caps; | ||
1251 | base_sink_class->set_caps = QVideoSurfaceGstSink::set_caps; | ||
1252 | +// FIXME: | ||
1253 | +#if GST_CHECK_VERSION(1,0,0) | ||
1254 | +#else | ||
1255 | base_sink_class->buffer_alloc = QVideoSurfaceGstSink::buffer_alloc; | ||
1256 | +#endif | ||
1257 | base_sink_class->start = QVideoSurfaceGstSink::start; | ||
1258 | base_sink_class->stop = QVideoSurfaceGstSink::stop; | ||
1259 | |||
1260 | @@ -434,6 +476,18 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class) | ||
1261 | { | ||
1262 | static GstStaticPadTemplate sink_pad_template = GST_STATIC_PAD_TEMPLATE( | ||
1263 | "sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS( | ||
1264 | +#if GST_CHECK_VERSION(1,0,0) | ||
1265 | + "video/x-raw, " | ||
1266 | + "format = (string) RGBA," | ||
1267 | + "framerate = (fraction) [ 0, MAX ], " | ||
1268 | + "width = (int) [ 1, MAX ], " | ||
1269 | + "height = (int) [ 1, MAX ]; " | ||
1270 | + "video/x-raw, " | ||
1271 | + "format = (string) I420," | ||
1272 | + "framerate = (fraction) [ 0, MAX ], " | ||
1273 | + "width = (int) [ 1, MAX ], " | ||
1274 | + "height = (int) [ 1, MAX ]")); | ||
1275 | +#else | ||
1276 | "video/x-raw-rgb, " | ||
1277 | "framerate = (fraction) [ 0, MAX ], " | ||
1278 | "width = (int) [ 1, MAX ], " | ||
1279 | @@ -442,6 +496,7 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class) | ||
1280 | "framerate = (fraction) [ 0, MAX ], " | ||
1281 | "width = (int) [ 1, MAX ], " | ||
1282 | "height = (int) [ 1, MAX ]")); | ||
1283 | +#endif | ||
1284 | |||
1285 | gst_element_class_add_pad_template( | ||
1286 | GST_ELEMENT_CLASS(g_class), gst_static_pad_template_get(&sink_pad_template)); | ||
1287 | @@ -490,7 +545,11 @@ GstStateChangeReturn QVideoSurfaceGstSink::change_state( | ||
1288 | element, transition); | ||
1289 | } | ||
1290 | |||
1291 | -GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) | ||
1292 | +GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base | ||
1293 | +#if GST_CHECK_VERSION(1,0,0) | ||
1294 | + , GstCaps* /*filterCaps*/ | ||
1295 | +#endif | ||
1296 | +) | ||
1297 | { | ||
1298 | VO_SINK(base); | ||
1299 | |||
1300 | @@ -503,6 +562,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) | ||
1301 | QList<QVideoFrame::PixelFormat> poolHandleFormats; | ||
1302 | sink->delegate->poolMutex()->lock(); | ||
1303 | QGstBufferPoolInterface *pool = sink->delegate->pool(); | ||
1304 | + | ||
1305 | if (pool) | ||
1306 | poolHandleFormats = sink->delegate->supportedPixelFormats(pool->handleType()); | ||
1307 | sink->delegate->poolMutex()->unlock(); | ||
1308 | @@ -518,11 +578,19 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) | ||
1309 | |||
1310 | if (index != -1) { | ||
1311 | gst_caps_append_structure(caps, gst_structure_new( | ||
1312 | +#if GST_CHECK_VERSION(1,0,0) | ||
1313 | + "video/x-raw", | ||
1314 | +#else | ||
1315 | "video/x-raw-yuv", | ||
1316 | +#endif | ||
1317 | "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, INT_MAX, 1, | ||
1318 | "width" , GST_TYPE_INT_RANGE, 1, INT_MAX, | ||
1319 | "height" , GST_TYPE_INT_RANGE, 1, INT_MAX, | ||
1320 | +#if GST_CHECK_VERSION(1,0,0) | ||
1321 | + "format" , G_TYPE_STRING, gst_video_format_to_string(qt_yuvColorLookup[index].vfmt), | ||
1322 | +#else | ||
1323 | "format" , GST_TYPE_FOURCC, qt_yuvColorLookup[index].fourcc, | ||
1324 | +#endif | ||
1325 | NULL)); | ||
1326 | continue; | ||
1327 | } | ||
1328 | @@ -532,7 +600,18 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) | ||
1329 | for (int i = 0; i < count; ++i) { | ||
1330 | if (qt_rgbColorLookup[i].pixelFormat == format) { | ||
1331 | GstStructure *structure = gst_structure_new( | ||
1332 | +#if GST_CHECK_VERSION(1,0,0) | ||
1333 | + "video/x-raw", | ||
1334 | + "format" , G_TYPE_STRING, gst_video_format_to_string(gst_video_format_from_masks(qt_rgbColorLookup[i].depth, | ||
1335 | + qt_rgbColorLookup[i].bitsPerPixel, | ||
1336 | + qt_rgbColorLookup[i].endianness, | ||
1337 | + qt_rgbColorLookup[i].red, | ||
1338 | + qt_rgbColorLookup[i].green, | ||
1339 | + qt_rgbColorLookup[i].blue, | ||
1340 | + qt_rgbColorLookup[i].alpha)), | ||
1341 | +#else | ||
1342 | "video/x-raw-rgb", | ||
1343 | +#endif | ||
1344 | "framerate" , GST_TYPE_FRACTION_RANGE, 0, 1, INT_MAX, 1, | ||
1345 | "width" , GST_TYPE_INT_RANGE, 1, INT_MAX, | ||
1346 | "height" , GST_TYPE_INT_RANGE, 1, INT_MAX, | ||
1347 | @@ -553,6 +632,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) | ||
1348 | } | ||
1349 | } | ||
1350 | |||
1351 | +// printf("get Caps %"GST_PTR_FORMAT"\n", caps); | ||
1352 | return caps; | ||
1353 | } | ||
1354 | |||
1355 | @@ -592,7 +672,7 @@ gboolean QVideoSurfaceGstSink::set_caps(GstBaseSink *base, GstCaps *caps) | ||
1356 | sink->lastRequestedCaps = 0; | ||
1357 | |||
1358 | #ifdef DEBUG_VIDEO_SURFACE_SINK | ||
1359 | - qDebug() << "Staring video surface, format:"; | ||
1360 | + qDebug() << "Starting video surface, format:"; | ||
1361 | qDebug() << format; | ||
1362 | qDebug() << "bytesPerLine:" << bytesPerLine; | ||
1363 | #endif | ||
1364 | @@ -617,11 +697,49 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte | ||
1365 | gst_structure_get_int(structure, "width", &size.rwidth()); | ||
1366 | gst_structure_get_int(structure, "height", &size.rheight()); | ||
1367 | |||
1368 | +#if GST_CHECK_VERSION(1, 0, 0) | ||
1369 | + GstVideoInfo info; | ||
1370 | + gst_video_info_from_caps(&info, caps); | ||
1371 | + | ||
1372 | + if (info.finfo->format == GST_VIDEO_FORMAT_I420) { | ||
1373 | + int index = indexOfYuvColor(GST_VIDEO_FORMAT_I420); | ||
1374 | + | ||
1375 | + if (index != -1) { | ||
1376 | + pixelFormat = qt_yuvColorLookup[index].pixelFormat; | ||
1377 | + bitsPerPixel = qt_yuvColorLookup[index].bitsPerPixel; | ||
1378 | + } | ||
1379 | + } else if (info.finfo->format == GST_VIDEO_FORMAT_RGBx) { | ||
1380 | + int depth = 0; | ||
1381 | + int endianness = 0; | ||
1382 | + int red = 0; | ||
1383 | + int green = 0; | ||
1384 | + int blue = 0; | ||
1385 | + int alpha = 0; | ||
1386 | + | ||
1387 | + gst_structure_get_int(structure, "bpp", &bitsPerPixel); | ||
1388 | + gst_structure_get_int(structure, "depth", &depth); | ||
1389 | + gst_structure_get_int(structure, "endianness", &endianness); | ||
1390 | + gst_structure_get_int(structure, "red_mask", &red); | ||
1391 | + gst_structure_get_int(structure, "green_mask", &green); | ||
1392 | + gst_structure_get_int(structure, "blue_mask", &blue); | ||
1393 | + gst_structure_get_int(structure, "alpha_mask", &alpha); | ||
1394 | + | ||
1395 | + int index = indexOfRgbColor(bitsPerPixel, depth, endianness, red, green, blue, alpha); | ||
1396 | + printf("INDEX %x\n", index); | ||
1397 | + if (index != -1) | ||
1398 | + pixelFormat = qt_rgbColorLookup[index].pixelFormat; | ||
1399 | + } | ||
1400 | +#else | ||
1401 | + | ||
1402 | if (qstrcmp(gst_structure_get_name(structure), "video/x-raw-yuv") == 0) { | ||
1403 | guint32 fourcc = 0; | ||
1404 | +#if GST_CHECK_VERSION(1, 0, 0) | ||
1405 | + int index = indexOfYuvColor(gst_video_format_from_string(gst_structure_get_string(structure, "format"))); | ||
1406 | +#else | ||
1407 | gst_structure_get_fourcc(structure, "format", &fourcc); | ||
1408 | |||
1409 | int index = indexOfYuvColor(fourcc); | ||
1410 | +#endif | ||
1411 | if (index != -1) { | ||
1412 | pixelFormat = qt_yuvColorLookup[index].pixelFormat; | ||
1413 | bitsPerPixel = qt_yuvColorLookup[index].bitsPerPixel; | ||
1414 | @@ -647,6 +765,7 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte | ||
1415 | if (index != -1) | ||
1416 | pixelFormat = qt_rgbColorLookup[index].pixelFormat; | ||
1417 | } | ||
1418 | +#endif | ||
1419 | |||
1420 | if (pixelFormat != QVideoFrame::Format_Invalid) { | ||
1421 | QVideoSurfaceFormat format(size, pixelFormat, handleType); | ||
1422 | @@ -722,7 +841,11 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc( | ||
1423 | |||
1424 | poolLock.unlock(); | ||
1425 | |||
1426 | +#if GST_CHECK_VERSION(1,0,0) | ||
1427 | + GstCaps *intersection = gst_caps_intersect(get_caps(GST_BASE_SINK(sink), NULL), caps); | ||
1428 | +#else | ||
1429 | GstCaps *intersection = gst_caps_intersect(get_caps(GST_BASE_SINK(sink)), caps); | ||
1430 | +#endif | ||
1431 | |||
1432 | if (gst_caps_is_empty (intersection)) { | ||
1433 | gst_caps_unref(intersection); | ||
1434 | @@ -763,7 +886,7 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc( | ||
1435 | QVideoSurfaceFormat surfaceFormat = sink->delegate->surfaceFormat(); | ||
1436 | |||
1437 | if (!pool->isFormatSupported(surfaceFormat)) { | ||
1438 | - //qDebug() << "sink doesn't support native pool format, skip custom buffers allocation"; | ||
1439 | + qDebug() << "sink doesn't support native pool format, skip custom buffers allocation"; | ||
1440 | return GST_FLOW_OK; | ||
1441 | } | ||
1442 | |||
1443 | @@ -787,7 +910,6 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc( | ||
1444 | gboolean QVideoSurfaceGstSink::start(GstBaseSink *base) | ||
1445 | { | ||
1446 | Q_UNUSED(base); | ||
1447 | - | ||
1448 | return TRUE; | ||
1449 | } | ||
1450 | |||
1451 | diff --git a/src/multimedia/gsttools_headers/qgstappsrc_p.h b/src/multimedia/gsttools_headers/qgstappsrc_p.h | ||
1452 | index 4af9252..0e0fc0a 100644 | ||
1453 | --- a/src/multimedia/gsttools_headers/qgstappsrc_p.h | ||
1454 | +++ b/src/multimedia/gsttools_headers/qgstappsrc_p.h | ||
1455 | @@ -39,7 +39,10 @@ | ||
1456 | |||
1457 | #include <gst/gst.h> | ||
1458 | #include <gst/app/gstappsrc.h> | ||
1459 | + | ||
1460 | +#if GST_VERSION_MAJOR < 1 | ||
1461 | #include <gst/app/gstappbuffer.h> | ||
1462 | +#endif | ||
1463 | |||
1464 | QT_BEGIN_NAMESPACE | ||
1465 | |||
1466 | diff --git a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h | ||
1467 | index 34669b8..0f3b165 100644 | ||
1468 | --- a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h | ||
1469 | +++ b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h | ||
1470 | @@ -47,8 +47,11 @@ class QGstreamerAudioProbeControl : public QMediaAudioProbeControl | ||
1471 | public: | ||
1472 | explicit QGstreamerAudioProbeControl(QObject *parent); | ||
1473 | virtual ~QGstreamerAudioProbeControl(); | ||
1474 | - | ||
1475 | +#if GST_CHECK_VERSION(1,0,0) | ||
1476 | + void bufferProbed(GstBuffer* buffer, GstCaps* caps); | ||
1477 | +#else | ||
1478 | void bufferProbed(GstBuffer* buffer); | ||
1479 | +#endif | ||
1480 | |||
1481 | private slots: | ||
1482 | void bufferProbed(); | ||
1483 | diff --git a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h | ||
1484 | index 49064f9..fce6309 100644 | ||
1485 | --- a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h | ||
1486 | +++ b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h | ||
1487 | @@ -48,7 +48,11 @@ public: | ||
1488 | explicit QGstreamerVideoProbeControl(QObject *parent); | ||
1489 | virtual ~QGstreamerVideoProbeControl(); | ||
1490 | |||
1491 | +#if GST_CHECK_VERSION(1,0,0) | ||
1492 | + void bufferProbed(GstBuffer* buffer, GstCaps*); | ||
1493 | +#else | ||
1494 | void bufferProbed(GstBuffer* buffer); | ||
1495 | +#endif | ||
1496 | void startFlushing(); | ||
1497 | void stopFlushing(); | ||
1498 | |||
1499 | diff --git a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h | ||
1500 | index 81e5764..c9fdb5c 100644 | ||
1501 | --- a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h | ||
1502 | +++ b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h | ||
1503 | @@ -104,7 +104,11 @@ private slots: | ||
1504 | void updateNativeVideoSize(); | ||
1505 | |||
1506 | private: | ||
1507 | +#if GST_CHECK_VERSION(1,0,0) | ||
1508 | + static GstPadProbeReturn padBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data); | ||
1509 | +#else | ||
1510 | static void padBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data); | ||
1511 | +#endif | ||
1512 | |||
1513 | GstElement *m_videoSink; | ||
1514 | WId m_windowId; | ||
1515 | diff --git a/src/multimedia/gsttools_headers/qgstutils_p.h b/src/multimedia/gsttools_headers/qgstutils_p.h | ||
1516 | index 65ff759..6015980 100644 | ||
1517 | --- a/src/multimedia/gsttools_headers/qgstutils_p.h | ||
1518 | +++ b/src/multimedia/gsttools_headers/qgstutils_p.h | ||
1519 | @@ -73,7 +73,11 @@ namespace QGstUtils { | ||
1520 | QSize capsResolution(const GstCaps *caps); | ||
1521 | QSize capsCorrectedResolution(const GstCaps *caps); | ||
1522 | QAudioFormat audioFormatForCaps(const GstCaps *caps); | ||
1523 | +#if GST_CHECK_VERSION(1,0,0) | ||
1524 | + QAudioFormat audioFormatForSample(GstSample *sample); | ||
1525 | +#else | ||
1526 | QAudioFormat audioFormatForBuffer(GstBuffer *buffer); | ||
1527 | +#endif | ||
1528 | GstCaps *capsForAudioFormat(QAudioFormat format); | ||
1529 | void initializeGst(); | ||
1530 | QMultimedia::SupportEstimate hasSupport(const QString &mimeType, | ||
1531 | diff --git a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h | ||
1532 | index 1e0fda8..be48820 100644 | ||
1533 | --- a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h | ||
1534 | +++ b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h | ||
1535 | @@ -71,6 +71,9 @@ private: | ||
1536 | int m_bytesPerLine; | ||
1537 | MapMode m_mode; | ||
1538 | QVariant m_handle; | ||
1539 | +#if GST_CHECK_VERSION(1,0,0) | ||
1540 | + GstMapInfo m_mapInfo; | ||
1541 | +#endif | ||
1542 | }; | ||
1543 | |||
1544 | QT_END_NAMESPACE | ||
1545 | diff --git a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h | ||
1546 | index 11b305d..01935f7 100644 | ||
1547 | --- a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h | ||
1548 | +++ b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h | ||
1549 | @@ -131,7 +131,11 @@ private: | ||
1550 | |||
1551 | static GstStateChangeReturn change_state(GstElement *element, GstStateChange transition); | ||
1552 | |||
1553 | - static GstCaps *get_caps(GstBaseSink *sink); | ||
1554 | + static GstCaps *get_caps(GstBaseSink *sink | ||
1555 | +#if GST_CHECK_VERSION(1,0,0) | ||
1556 | + , GstCaps* /*filterCaps*/ | ||
1557 | +#endif | ||
1558 | + ); | ||
1559 | static gboolean set_caps(GstBaseSink *sink, GstCaps *caps); | ||
1560 | |||
1561 | static GstFlowReturn buffer_alloc( | ||
1562 | diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp | ||
1563 | index 3098aab..9c54663 100644 | ||
1564 | --- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp | ||
1565 | +++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp | ||
1566 | @@ -74,29 +74,42 @@ void QGstreamerAudioDecoderServicePlugin::updateSupportedMimeTypes() const | ||
1567 | gst_init(NULL, NULL); | ||
1568 | |||
1569 | GList *plugins, *orig_plugins; | ||
1570 | +#if GST_CHECK_VERSION(1,0,0) | ||
1571 | + orig_plugins = plugins = gst_registry_get_plugin_list (gst_registry_get()); | ||
1572 | +#else | ||
1573 | orig_plugins = plugins = gst_default_registry_get_plugin_list (); | ||
1574 | - | ||
1575 | +#endif | ||
1576 | while (plugins) { | ||
1577 | GList *features, *orig_features; | ||
1578 | |||
1579 | GstPlugin *plugin = (GstPlugin *) (plugins->data); | ||
1580 | plugins = g_list_next (plugins); | ||
1581 | |||
1582 | +#if GST_CHECK_VERSION(1,0,0) | ||
1583 | + if (GST_OBJECT_FLAG_IS_SET(plugin, GST_PLUGIN_FLAG_BLACKLISTED)) | ||
1584 | + continue; | ||
1585 | +#else | ||
1586 | if (plugin->flags & (1<<1)) //GST_PLUGIN_FLAG_BLACKLISTED | ||
1587 | continue; | ||
1588 | - | ||
1589 | - orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get_default (), | ||
1590 | - plugin->desc.name); | ||
1591 | +#endif | ||
1592 | + orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get (), | ||
1593 | + gst_plugin_get_name(plugin)); | ||
1594 | while (features) { | ||
1595 | if (!G_UNLIKELY(features->data == NULL)) { | ||
1596 | GstPluginFeature *feature = GST_PLUGIN_FEATURE(features->data); | ||
1597 | if (GST_IS_ELEMENT_FACTORY (feature)) { | ||
1598 | GstElementFactory *factory = GST_ELEMENT_FACTORY(gst_plugin_feature_load(feature)); | ||
1599 | if (factory | ||
1600 | - && factory->numpadtemplates > 0 | ||
1601 | + && gst_element_factory_get_num_pad_templates(factory) > 0 | ||
1602 | +#if GST_CHECK_VERSION(1,0,0) | ||
1603 | + && (qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Decoder/Audio") == 0 | ||
1604 | + || qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Demux") == 0 ) | ||
1605 | +#else | ||
1606 | && (qstrcmp(factory->details.klass, "Codec/Decoder/Audio") == 0 | ||
1607 | - || qstrcmp(factory->details.klass, "Codec/Demux") == 0 )) { | ||
1608 | - const GList *pads = factory->staticpadtemplates; | ||
1609 | + || qstrcmp(factory->details.klass, "Codec/Demux") == 0 ) | ||
1610 | +#endif | ||
1611 | + ) { | ||
1612 | + const GList *pads = gst_element_factory_get_static_pad_templates(factory); | ||
1613 | while (pads) { | ||
1614 | GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data); | ||
1615 | pads = g_list_next (pads); | ||
1616 | diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp | ||
1617 | index f944a60..72d1cf1 100644 | ||
1618 | --- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp | ||
1619 | +++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp | ||
1620 | @@ -446,21 +446,40 @@ QAudioBuffer QGstreamerAudioDecoderSession::read() | ||
1621 | if (buffersAvailable == 1) | ||
1622 | emit bufferAvailableChanged(false); | ||
1623 | |||
1624 | + const char* bufferData = 0; | ||
1625 | + int bufferSize = 0; | ||
1626 | + | ||
1627 | +#if GST_CHECK_VERSION(1,0,0) | ||
1628 | + GstSample *sample = gst_app_sink_pull_sample(m_appSink); | ||
1629 | + GstBuffer *buffer = gst_sample_get_buffer(sample); | ||
1630 | + GstMapInfo mapInfo; | ||
1631 | + gst_buffer_map(buffer, &mapInfo, GST_MAP_READ); | ||
1632 | + bufferData = (const char*)mapInfo.data; | ||
1633 | + bufferSize = mapInfo.size; | ||
1634 | + QAudioFormat format = QGstUtils::audioFormatForSample(sample); | ||
1635 | +#else | ||
1636 | GstBuffer *buffer = gst_app_sink_pull_buffer(m_appSink); | ||
1637 | - | ||
1638 | + bufferData = (const char*)buffer->data; | ||
1639 | + bufferSize = buffer->size; | ||
1640 | QAudioFormat format = QGstUtils::audioFormatForBuffer(buffer); | ||
1641 | +#endif | ||
1642 | + | ||
1643 | if (format.isValid()) { | ||
1644 | // XXX At the moment we have to copy data from GstBuffer into QAudioBuffer. | ||
1645 | // We could improve performance by implementing QAbstractAudioBuffer for GstBuffer. | ||
1646 | qint64 position = getPositionFromBuffer(buffer); | ||
1647 | - audioBuffer = QAudioBuffer(QByteArray((const char*)buffer->data, buffer->size), format, position); | ||
1648 | + audioBuffer = QAudioBuffer(QByteArray((const char*)bufferData, bufferSize), format, position); | ||
1649 | position /= 1000; // convert to milliseconds | ||
1650 | if (position != m_position) { | ||
1651 | m_position = position; | ||
1652 | emit positionChanged(m_position); | ||
1653 | } | ||
1654 | } | ||
1655 | +#if GST_CHECK_VERSION(1,0,0) | ||
1656 | + gst_sample_unref(sample); | ||
1657 | +#else | ||
1658 | gst_buffer_unref(buffer); | ||
1659 | +#endif | ||
1660 | } | ||
1661 | |||
1662 | return audioBuffer; | ||
1663 | @@ -531,7 +550,12 @@ void QGstreamerAudioDecoderSession::addAppSink() | ||
1664 | |||
1665 | GstAppSinkCallbacks callbacks; | ||
1666 | memset(&callbacks, 0, sizeof(callbacks)); | ||
1667 | +#if GST_CHECK_VERSION(1,0,0) | ||
1668 | + // ### Should perhaps also rename new_buffer to new_sample. | ||
1669 | + callbacks.new_sample = &new_buffer; | ||
1670 | +#else | ||
1671 | callbacks.new_buffer = &new_buffer; | ||
1672 | +#endif | ||
1673 | gst_app_sink_set_callbacks(m_appSink, &callbacks, this, NULL); | ||
1674 | gst_app_sink_set_max_buffers(m_appSink, MAX_BUFFERS_IN_QUEUE); | ||
1675 | gst_base_sink_set_sync(GST_BASE_SINK(m_appSink), FALSE); | ||
1676 | @@ -557,8 +581,13 @@ void QGstreamerAudioDecoderSession::updateDuration() | ||
1677 | gint64 gstDuration = 0; | ||
1678 | int duration = -1; | ||
1679 | |||
1680 | +#if GST_CHECK_VERSION(1,0,0) | ||
1681 | + if (m_playbin && gst_element_query_duration(m_playbin, format, &gstDuration)) | ||
1682 | + duration = gstDuration / 1000000; | ||
1683 | +#else | ||
1684 | if (m_playbin && gst_element_query_duration(m_playbin, &format, &gstDuration)) | ||
1685 | duration = gstDuration / 1000000; | ||
1686 | +#endif | ||
1687 | |||
1688 | if (m_duration != duration) { | ||
1689 | m_duration = duration; | ||
1690 | diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp | ||
1691 | index 1ed663b..e0c6b50 100644 | ||
1692 | --- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp | ||
1693 | +++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp | ||
1694 | @@ -796,7 +796,11 @@ qint64 CameraBinSession::duration() const | ||
1695 | if (fileSink) { | ||
1696 | GstFormat format = GST_FORMAT_TIME; | ||
1697 | gint64 duration = 0; | ||
1698 | +#if GST_CHECK_VERSION(1,0,0) | ||
1699 | + bool ret = gst_element_query_duration(fileSink, format, &duration); | ||
1700 | +#else | ||
1701 | bool ret = gst_element_query_position(fileSink, &format, &duration); | ||
1702 | +#endif | ||
1703 | gst_object_unref(GST_OBJECT(fileSink)); | ||
1704 | if (ret) | ||
1705 | return duration / 1000000; | ||
1706 | @@ -833,8 +837,13 @@ void CameraBinSession::setMetaData(const QMap<QByteArray, QVariant> &data) | ||
1707 | |||
1708 | if (m_camerabin) { | ||
1709 | GstIterator *elements = gst_bin_iterate_all_by_interface(GST_BIN(m_camerabin), GST_TYPE_TAG_SETTER); | ||
1710 | +#if GST_CHECK_VERSION(1,0,0) | ||
1711 | + GValue *element = 0; | ||
1712 | + while (gst_iterator_next(elements, element) == GST_ITERATOR_OK) { | ||
1713 | +#else | ||
1714 | GstElement *element = 0; | ||
1715 | while (gst_iterator_next(elements, (void**)&element) == GST_ITERATOR_OK) { | ||
1716 | +#endif | ||
1717 | gst_tag_setter_reset_tags(GST_TAG_SETTER(element)); | ||
1718 | |||
1719 | QMapIterator<QByteArray, QVariant> it(data); | ||
1720 | @@ -895,7 +904,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message) | ||
1721 | |||
1722 | if (gm && GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) { | ||
1723 | if (m_captureMode == QCamera::CaptureStillImage && | ||
1724 | +#if GST_CHECK_VERSION(1,0,0) | ||
1725 | + gst_message_has_name (gm, "preview-image")) { | ||
1726 | +#else | ||
1727 | gst_structure_has_name(gm->structure, "preview-image")) { | ||
1728 | +#endif | ||
1729 | st = gst_message_get_structure(gm); | ||
1730 | |||
1731 | if (gst_structure_has_field_typed(st, "buffer", GST_TYPE_BUFFER)) { | ||
1732 | @@ -905,7 +918,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message) | ||
1733 | |||
1734 | QImage img; | ||
1735 | |||
1736 | +#if GST_CHECK_VERSION(1,0,0) | ||
1737 | GstCaps *caps = gst_buffer_get_caps(buffer); | ||
1738 | +#else | ||
1739 | + GstCaps *caps = gst_buffer_get_caps(buffer); | ||
1740 | +#endif | ||
1741 | if (caps) { | ||
1742 | GstStructure *structure = gst_caps_get_structure(caps, 0); | ||
1743 | gint width = 0; | ||
1744 | @@ -1178,7 +1195,11 @@ QList< QPair<int,int> > CameraBinSession::supportedFrameRates(const QSize &frame | ||
1745 | gst_structure_remove_all_fields(structure); | ||
1746 | gst_structure_set_value(structure, "framerate", &rate); | ||
1747 | } | ||
1748 | +#if GST_CHECK_VERSION(1,0,0) | ||
1749 | + caps = gst_caps_simplify(caps); | ||
1750 | +#else | ||
1751 | gst_caps_do_simplify(caps); | ||
1752 | +#endif | ||
1753 | |||
1754 | |||
1755 | for (uint i=0; i<gst_caps_get_size(caps); i++) { | ||
1756 | @@ -1298,7 +1319,11 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate, | ||
1757 | gst_structure_set_value(structure, "width", &w); | ||
1758 | gst_structure_set_value(structure, "height", &h); | ||
1759 | } | ||
1760 | +#if GST_CHECK_VERSION(1,0,0) | ||
1761 | + caps = gst_caps_simplify(caps); | ||
1762 | +#else | ||
1763 | gst_caps_do_simplify(caps); | ||
1764 | +#endif | ||
1765 | |||
1766 | for (uint i=0; i<gst_caps_get_size(caps); i++) { | ||
1767 | GstStructure *structure = gst_caps_get_structure(caps, i); | ||
1768 | diff --git a/src/plugins/gstreamer/common.pri b/src/plugins/gstreamer/common.pri | ||
1769 | index 8b421b8..2e7f746 100644 | ||
1770 | --- a/src/plugins/gstreamer/common.pri | ||
1771 | +++ b/src/plugins/gstreamer/common.pri | ||
1772 | @@ -12,14 +12,17 @@ LIBS += -lqgsttools_p | ||
1773 | CONFIG += link_pkgconfig | ||
1774 | |||
1775 | PKGCONFIG += \ | ||
1776 | - gstreamer-0.10 \ | ||
1777 | - gstreamer-base-0.10 \ | ||
1778 | - gstreamer-interfaces-0.10 \ | ||
1779 | - gstreamer-audio-0.10 \ | ||
1780 | - gstreamer-video-0.10 \ | ||
1781 | - gstreamer-pbutils-0.10 | ||
1782 | + gstreamer-$$GST_VERSION \ | ||
1783 | + gstreamer-base-$$GST_VERSION \ | ||
1784 | + gstreamer-audio-$$GST_VERSION \ | ||
1785 | + gstreamer-video-$$GST_VERSION \ | ||
1786 | + gstreamer-pbutils-$$GST_VERSION | ||
1787 | |||
1788 | -maemo*:PKGCONFIG +=gstreamer-plugins-bad-0.10 | ||
1789 | +maemo*:PKGCONFIG +=gstreamer-plugins-bad-$$GST_VERSION | ||
1790 | + | ||
1791 | +mir: { | ||
1792 | + DEFINES += HAVE_MIR | ||
1793 | +} | ||
1794 | |||
1795 | config_resourcepolicy { | ||
1796 | DEFINES += HAVE_RESOURCE_POLICY | ||
1797 | @@ -27,8 +30,8 @@ config_resourcepolicy { | ||
1798 | } | ||
1799 | |||
1800 | config_gstreamer_appsrc { | ||
1801 | - PKGCONFIG += gstreamer-app-0.10 | ||
1802 | + PKGCONFIG += gstreamer-app-$$GST_VERSION | ||
1803 | DEFINES += HAVE_GST_APPSRC | ||
1804 | - LIBS += -lgstapp-0.10 | ||
1805 | + LIBS += -lgstapp-$$GST_VERSION | ||
1806 | } | ||
1807 | |||
1808 | diff --git a/src/plugins/gstreamer/gstreamer.pro b/src/plugins/gstreamer/gstreamer.pro | ||
1809 | index 7649010..fce55ac 100644 | ||
1810 | --- a/src/plugins/gstreamer/gstreamer.pro | ||
1811 | +++ b/src/plugins/gstreamer/gstreamer.pro | ||
1812 | @@ -2,11 +2,10 @@ TEMPLATE = subdirs | ||
1813 | |||
1814 | SUBDIRS += \ | ||
1815 | audiodecoder \ | ||
1816 | - mediacapture \ | ||
1817 | mediaplayer | ||
1818 | |||
1819 | config_gstreamer_encodingprofiles { | ||
1820 | - SUBDIRS += camerabin | ||
1821 | +# SUBDIRS += camerabin | ||
1822 | } | ||
1823 | |||
1824 | OTHER_FILES += \ | ||
1825 | diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp | ||
1826 | index a2bd80d..d12e9a5 100644 | ||
1827 | --- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp | ||
1828 | +++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp | ||
1829 | @@ -498,6 +498,11 @@ GstElement *QGstreamerCaptureSession::buildImageCapture() | ||
1830 | gst_pad_add_buffer_probe(pad, G_CALLBACK(passImageFilter), this); | ||
1831 | gst_object_unref(GST_OBJECT(pad)); | ||
1832 | |||
1833 | +#if GST_CHECK_VERSION(1,0,0) | ||
1834 | + gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, passImageFilter, this); | ||
1835 | +#else | ||
1836 | + gst_pad_add_buffer_probe(pad, G_CALLBACK(passImageFilter), this); | ||
1837 | +#endif | ||
1838 | g_object_set(G_OBJECT(sink), "signal-handoffs", TRUE, NULL); | ||
1839 | g_signal_connect(G_OBJECT(sink), "handoff", | ||
1840 | G_CALLBACK(saveImageFilter), this); | ||
1841 | diff --git a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro | ||
1842 | index 2ca9377..b986fc7 100644 | ||
1843 | --- a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro | ||
1844 | +++ b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro | ||
1845 | @@ -28,4 +28,3 @@ SOURCES += \ | ||
1846 | |||
1847 | OTHER_FILES += \ | ||
1848 | mediaplayer.json | ||
1849 | - | ||
1850 | diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp | ||
1851 | index fed756a..8239710 100644 | ||
1852 | --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp | ||
1853 | +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp | ||
1854 | @@ -537,6 +537,8 @@ void QGstreamerPlayerControl::processEOS() | ||
1855 | m_session->showPrerollFrames(false); // stop showing prerolled frames in stop state | ||
1856 | } | ||
1857 | |||
1858 | + qWarning() << "Processing EOS!"; | ||
1859 | + | ||
1860 | popAndNotifyState(); | ||
1861 | } | ||
1862 | |||
1863 | diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp | ||
1864 | index ce267d7..062de07 100644 | ||
1865 | --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp | ||
1866 | +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp | ||
1867 | @@ -51,7 +51,11 @@ | ||
1868 | #include <private/qgstreamervideorenderer_p.h> | ||
1869 | |||
1870 | #if defined(Q_WS_MAEMO_6) && defined(__arm__) | ||
1871 | -#include "qgstreamergltexturerenderer.h" | ||
1872 | +#include "private/qgstreamergltexturerenderer.h" | ||
1873 | +#endif | ||
1874 | + | ||
1875 | +#if defined(HAVE_MIR) && defined (__arm__) | ||
1876 | +#include "private/qgstreamermirtexturerenderer_p.h" | ||
1877 | #endif | ||
1878 | |||
1879 | #include "qgstreamerstreamscontrol.h" | ||
1880 | @@ -82,6 +86,9 @@ QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent): | ||
1881 | |||
1882 | #if defined(Q_WS_MAEMO_6) && defined(__arm__) | ||
1883 | m_videoRenderer = new QGstreamerGLTextureRenderer(this); | ||
1884 | +#elif defined(HAVE_MIR) && defined (__arm__) | ||
1885 | + //m_videoRenderer = new QGstreamerVideoRenderer(this); | ||
1886 | + m_videoRenderer = new QGstreamerMirTextureRenderer(this, m_session); | ||
1887 | #else | ||
1888 | m_videoRenderer = new QGstreamerVideoRenderer(this); | ||
1889 | #endif | ||
1890 | diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp | ||
1891 | index 7d20b6d..bf2f9f8 100644 | ||
1892 | --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp | ||
1893 | +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp | ||
1894 | @@ -87,7 +87,11 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const | ||
1895 | gst_init(NULL, NULL); | ||
1896 | |||
1897 | GList *plugins, *orig_plugins; | ||
1898 | +#if GST_CHECK_VERSION(1,0,0) | ||
1899 | + orig_plugins = plugins = gst_registry_get_plugin_list (gst_registry_get()); | ||
1900 | +#else | ||
1901 | orig_plugins = plugins = gst_default_registry_get_plugin_list (); | ||
1902 | +#endif | ||
1903 | |||
1904 | while (plugins) { | ||
1905 | GList *features, *orig_features; | ||
1906 | @@ -95,22 +99,33 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const | ||
1907 | GstPlugin *plugin = (GstPlugin *) (plugins->data); | ||
1908 | plugins = g_list_next (plugins); | ||
1909 | |||
1910 | +#if GST_CHECK_VERSION(1,0,0) | ||
1911 | + if (GST_OBJECT_FLAG_IS_SET(plugin, GST_PLUGIN_FLAG_BLACKLISTED)) | ||
1912 | + continue; | ||
1913 | +#else | ||
1914 | if (plugin->flags & (1<<1)) //GST_PLUGIN_FLAG_BLACKLISTED | ||
1915 | continue; | ||
1916 | +#endif | ||
1917 | |||
1918 | - orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get_default (), | ||
1919 | - plugin->desc.name); | ||
1920 | + orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get(), | ||
1921 | + gst_plugin_get_name(plugin)); | ||
1922 | while (features) { | ||
1923 | if (!G_UNLIKELY(features->data == NULL)) { | ||
1924 | GstPluginFeature *feature = GST_PLUGIN_FEATURE(features->data); | ||
1925 | if (GST_IS_ELEMENT_FACTORY (feature)) { | ||
1926 | GstElementFactory *factory = GST_ELEMENT_FACTORY(gst_plugin_feature_load(feature)); | ||
1927 | if (factory | ||
1928 | - && factory->numpadtemplates > 0 | ||
1929 | - && (qstrcmp(factory->details.klass, "Codec/Decoder/Audio") == 0 | ||
1930 | +#if GST_CHECK_VERSION(1,0,0) | ||
1931 | + && (qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Decoder/Audio") == 0 | ||
1932 | + || qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS),"Codec/Decoder/Video") == 0 | ||
1933 | + || qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Demux") == 0 ) | ||
1934 | +#else | ||
1935 | + && (qstrcmp(factory->details.klass, "Codec/Decoder/Audio") == 0 | ||
1936 | || qstrcmp(factory->details.klass, "Codec/Decoder/Video") == 0 | ||
1937 | - || qstrcmp(factory->details.klass, "Codec/Demux") == 0 )) { | ||
1938 | - const GList *pads = factory->staticpadtemplates; | ||
1939 | + || qstrcmp(factory->details.klass, "Codec/Demux") == 0 ) | ||
1940 | +#endif | ||
1941 | + ) { | ||
1942 | + const GList *pads = gst_element_factory_get_static_pad_templates(factory); | ||
1943 | while (pads) { | ||
1944 | GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data); | ||
1945 | pads = g_list_next (pads); | ||
1946 | diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp | ||
1947 | index 15924a6..8013d0d 100644 | ||
1948 | --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp | ||
1949 | +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp | ||
1950 | @@ -85,6 +85,16 @@ typedef enum { | ||
1951 | GST_PLAY_FLAG_BUFFERING = 0x000000100 | ||
1952 | } GstPlayFlags; | ||
1953 | |||
1954 | +#if GST_CHECK_VERSION(1,0,0) | ||
1955 | +#define DEFAULT_RAW_CAPS \ | ||
1956 | + "video/x-surface; " \ | ||
1957 | + "text/plain; " \ | ||
1958 | + "text/x-pango-markup; " \ | ||
1959 | + "video/x-dvd-subpicture; " \ | ||
1960 | + "subpicture/x-pgs" \ | ||
1961 | + "video/x-raw" \ | ||
1962 | + "audio/x-raw" | ||
1963 | +#else | ||
1964 | #define DEFAULT_RAW_CAPS \ | ||
1965 | "video/x-raw-yuv; " \ | ||
1966 | "video/x-raw-rgb; " \ | ||
1967 | @@ -97,6 +107,8 @@ typedef enum { | ||
1968 | "text/x-pango-markup; " \ | ||
1969 | "video/x-dvd-subpicture; " \ | ||
1970 | "subpicture/x-pgs" | ||
1971 | +#endif | ||
1972 | + | ||
1973 | static GstStaticCaps static_RawCaps = GST_STATIC_CAPS(DEFAULT_RAW_CAPS); | ||
1974 | |||
1975 | QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) | ||
1976 | @@ -137,8 +149,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) | ||
1977 | gboolean result = gst_type_find_register(0, "playlist", GST_RANK_MARGINAL, playlistTypeFindFunction, 0, 0, this, 0); | ||
1978 | Q_ASSERT(result == TRUE); | ||
1979 | Q_UNUSED(result); | ||
1980 | - | ||
1981 | +#if GST_CHECK_VERSION(1,0,0) | ||
1982 | + m_playbin = gst_element_factory_make("playbin", NULL); | ||
1983 | +#else | ||
1984 | m_playbin = gst_element_factory_make("playbin2", NULL); | ||
1985 | +#endif | ||
1986 | |||
1987 | if (m_playbin) { | ||
1988 | //GST_PLAY_FLAG_NATIVE_VIDEO omits configuration of ffmpegcolorspace and videoscale, | ||
1989 | @@ -188,7 +203,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) | ||
1990 | m_videoIdentity = GST_ELEMENT(g_object_new(gst_video_connector_get_type(), 0)); // floating ref | ||
1991 | g_signal_connect(G_OBJECT(m_videoIdentity), "connection-failed", G_CALLBACK(insertColorSpaceElement), (gpointer)this); | ||
1992 | |||
1993 | +#if GST_CHECK_VERSION(1,0,0) | ||
1994 | + m_colorSpace = gst_element_factory_make("videoconvert", "ffmpegcolorspace-vo"); | ||
1995 | +#else | ||
1996 | m_colorSpace = gst_element_factory_make("ffmpegcolorspace", "ffmpegcolorspace-vo"); | ||
1997 | +#endif | ||
1998 | // might not get a parent, take ownership to avoid leak | ||
1999 | qt_gst_object_ref_sink(GST_OBJECT(m_colorSpace)); | ||
2000 | |||
2001 | @@ -206,7 +225,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) | ||
2002 | |||
2003 | // add ghostpads | ||
2004 | GstPad *pad = gst_element_get_static_pad(m_videoIdentity,"sink"); | ||
2005 | - gst_element_add_pad(GST_ELEMENT(m_videoOutputBin), gst_ghost_pad_new("videosink", pad)); | ||
2006 | + gst_element_add_pad(GST_ELEMENT(m_videoOutputBin), gst_ghost_pad_new("sink", pad)); | ||
2007 | gst_object_unref(GST_OBJECT(pad)); | ||
2008 | |||
2009 | if (m_playbin != 0) { | ||
2010 | @@ -218,7 +237,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) | ||
2011 | g_object_set(G_OBJECT(m_playbin), "video-sink", m_videoOutputBin, NULL); | ||
2012 | |||
2013 | g_signal_connect(G_OBJECT(m_playbin), "notify::source", G_CALLBACK(playbinNotifySource), this); | ||
2014 | - g_signal_connect(G_OBJECT(m_playbin), "element-added", G_CALLBACK(handleElementAdded), this); | ||
2015 | + //g_signal_connect(G_OBJECT(m_playbin), "element-added", G_CALLBACK(handleElementAdded), this); | ||
2016 | |||
2017 | if (usePlaybinVolume()) { | ||
2018 | updateVolume(); | ||
2019 | @@ -342,9 +361,13 @@ qint64 QGstreamerPlayerSession::position() const | ||
2020 | GstFormat format = GST_FORMAT_TIME; | ||
2021 | gint64 position = 0; | ||
2022 | |||
2023 | +#if GST_CHECK_VERSION(1,0,0) | ||
2024 | + if ( m_playbin && gst_element_query_position(m_playbin, format, &position)) | ||
2025 | + m_lastPosition = position / 1000000; | ||
2026 | +#else | ||
2027 | if ( m_playbin && gst_element_query_position(m_playbin, &format, &position)) | ||
2028 | m_lastPosition = position / 1000000; | ||
2029 | - | ||
2030 | +#endif | ||
2031 | return m_lastPosition; | ||
2032 | } | ||
2033 | |||
2034 | @@ -474,9 +497,18 @@ bool QGstreamerPlayerSession::isAudioAvailable() const | ||
2035 | return m_audioAvailable; | ||
2036 | } | ||
2037 | |||
2038 | +#if GST_CHECK_VERSION(1,0,0) | ||
2039 | +static GstPadProbeReturn block_pad_cb(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) | ||
2040 | +#else | ||
2041 | static void block_pad_cb(GstPad *pad, gboolean blocked, gpointer user_data) | ||
2042 | +#endif | ||
2043 | { | ||
2044 | Q_UNUSED(pad); | ||
2045 | +#if GST_CHECK_VERSION(1,0,0) | ||
2046 | + Q_UNUSED(info); | ||
2047 | + Q_UNUSED(user_data); | ||
2048 | + return GST_PAD_PROBE_OK; | ||
2049 | +#else | ||
2050 | #ifdef DEBUG_PLAYBIN | ||
2051 | qDebug() << "block_pad_cb, blocked:" << blocked; | ||
2052 | #endif | ||
2053 | @@ -485,6 +517,7 @@ static void block_pad_cb(GstPad *pad, gboolean blocked, gpointer user_data) | ||
2054 | QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data); | ||
2055 | QMetaObject::invokeMethod(session, "finishVideoOutputChange", Qt::QueuedConnection); | ||
2056 | } | ||
2057 | +#endif | ||
2058 | } | ||
2059 | |||
2060 | void QGstreamerPlayerSession::updateVideoRenderer() | ||
2061 | @@ -529,7 +562,7 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput) | ||
2062 | m_renderer = renderer; | ||
2063 | |||
2064 | #ifdef DEBUG_VO_BIN_DUMP | ||
2065 | - _gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin), | ||
2066 | + gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin), | ||
2067 | GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/), | ||
2068 | "playbin_set"); | ||
2069 | #endif | ||
2070 | @@ -633,7 +666,11 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput) | ||
2071 | |||
2072 | //block pads, async to avoid locking in paused state | ||
2073 | GstPad *srcPad = gst_element_get_static_pad(m_videoIdentity, "src"); | ||
2074 | +#if GST_CHECK_VERSION(1,0,0) | ||
2075 | + this->pad_probe_id = gst_pad_add_probe(srcPad, (GstPadProbeType)(GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_BLOCK), block_pad_cb, this, NULL); | ||
2076 | +#else | ||
2077 | gst_pad_set_blocked_async(srcPad, true, &block_pad_cb, this); | ||
2078 | +#endif | ||
2079 | gst_object_unref(GST_OBJECT(srcPad)); | ||
2080 | |||
2081 | //Unpause the sink to avoid waiting until the buffer is processed | ||
2082 | @@ -674,7 +711,11 @@ void QGstreamerPlayerSession::finishVideoOutputChange() | ||
2083 | //video output was change back to the current one, | ||
2084 | //no need to torment the pipeline, just unblock the pad | ||
2085 | if (gst_pad_is_blocked(srcPad)) | ||
2086 | +#if GST_CHECK_VERSION(1,0,0) | ||
2087 | + gst_pad_remove_probe(srcPad, this->pad_probe_id); | ||
2088 | +#else | ||
2089 | gst_pad_set_blocked_async(srcPad, false, &block_pad_cb, 0); | ||
2090 | +#endif | ||
2091 | |||
2092 | m_pendingVideoSink = 0; | ||
2093 | gst_object_unref(GST_OBJECT(srcPad)); | ||
2094 | @@ -760,12 +801,17 @@ void QGstreamerPlayerSession::finishVideoOutputChange() | ||
2095 | |||
2096 | //don't have to wait here, it will unblock eventually | ||
2097 | if (gst_pad_is_blocked(srcPad)) | ||
2098 | - gst_pad_set_blocked_async(srcPad, false, &block_pad_cb, 0); | ||
2099 | +#if GST_CHECK_VERSION(1,0,0) | ||
2100 | + gst_pad_remove_probe(srcPad, this->pad_probe_id); | ||
2101 | +#else | ||
2102 | + gst_pad_set_blocked_async(srcPad, false, &block_pad_cb, 0); | ||
2103 | +#endif | ||
2104 | + | ||
2105 | gst_object_unref(GST_OBJECT(srcPad)); | ||
2106 | |||
2107 | #ifdef DEBUG_VO_BIN_DUMP | ||
2108 | - _gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin), | ||
2109 | - GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/), | ||
2110 | + gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin), | ||
2111 | + GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* | GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES */), | ||
2112 | "playbin_finish"); | ||
2113 | #endif | ||
2114 | } | ||
2115 | @@ -830,6 +876,7 @@ bool QGstreamerPlayerSession::play() | ||
2116 | #ifdef DEBUG_PLAYBIN | ||
2117 | qDebug() << Q_FUNC_INFO; | ||
2118 | #endif | ||
2119 | + | ||
2120 | m_everPlayed = false; | ||
2121 | if (m_playbin) { | ||
2122 | m_pendingState = QMediaPlayer::PlayingState; | ||
2123 | @@ -1327,8 +1374,11 @@ void QGstreamerPlayerSession::getStreamsInfo() | ||
2124 | default: | ||
2125 | break; | ||
2126 | } | ||
2127 | - | ||
2128 | +#if GST_CHECK_VERSION(1,0,0) | ||
2129 | + if (tags && GST_IS_TAG_LIST(tags)) { | ||
2130 | +#else | ||
2131 | if (tags && gst_is_tag_list(tags)) { | ||
2132 | +#endif | ||
2133 | gchar *languageCode = 0; | ||
2134 | if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &languageCode)) | ||
2135 | streamProperties[QMediaMetaData::Language] = QString::fromUtf8(languageCode); | ||
2136 | @@ -1367,7 +1417,11 @@ void QGstreamerPlayerSession::updateVideoResolutionTag() | ||
2137 | QSize aspectRatio; | ||
2138 | |||
2139 | GstPad *pad = gst_element_get_static_pad(m_videoIdentity, "src"); | ||
2140 | +#if GST_CHECK_VERSION(1,0,0) | ||
2141 | + GstCaps *caps = gst_pad_get_current_caps(pad); | ||
2142 | +#else | ||
2143 | GstCaps *caps = gst_pad_get_negotiated_caps(pad); | ||
2144 | +#endif | ||
2145 | |||
2146 | if (caps) { | ||
2147 | const GstStructure *structure = gst_caps_get_structure(caps, 0); | ||
2148 | @@ -1411,7 +1465,11 @@ void QGstreamerPlayerSession::updateDuration() | ||
2149 | gint64 gstDuration = 0; | ||
2150 | int duration = -1; | ||
2151 | |||
2152 | +#if GST_CHECK_VERSION(1,0,0) | ||
2153 | + if (m_playbin && gst_element_query_duration(m_playbin, format, &gstDuration)) | ||
2154 | +#else | ||
2155 | if (m_playbin && gst_element_query_duration(m_playbin, &format, &gstDuration)) | ||
2156 | +#endif | ||
2157 | duration = gstDuration / 1000000; | ||
2158 | |||
2159 | if (m_duration != duration) { | ||
2160 | @@ -1467,7 +1525,11 @@ void QGstreamerPlayerSession::playbinNotifySource(GObject *o, GParamSpec *p, gpo | ||
2161 | |||
2162 | // The rest | ||
2163 | if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0) { | ||
2164 | +#if GST_CHECK_VERSION(1,0,0) | ||
2165 | + GstStructure *extras = gst_structure_new_empty("extras"); | ||
2166 | +#else | ||
2167 | GstStructure *extras = gst_structure_empty_new("extras"); | ||
2168 | +#endif | ||
2169 | |||
2170 | foreach (const QByteArray &rawHeader, self->m_request.rawHeaderList()) { | ||
2171 | if (rawHeader == userAgentString) // Filter User-Agent | ||
2172 | @@ -1623,7 +1685,11 @@ GstAutoplugSelectResult QGstreamerPlayerSession::handleAutoplugSelect(GstBin *bi | ||
2173 | const gchar *factoryName = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory)); | ||
2174 | if (g_str_has_prefix(factoryName, "vaapi")) { | ||
2175 | GstPad *sinkPad = gst_element_get_static_pad(session->m_videoSink, "sink"); | ||
2176 | +#if GST_CHECK_VERSION(1,0,0) | ||
2177 | + GstCaps *sinkCaps = gst_pad_query_caps(sinkPad, NULL); | ||
2178 | +#else | ||
2179 | GstCaps *sinkCaps = gst_pad_get_caps(sinkPad); | ||
2180 | +#endif | ||
2181 | |||
2182 | #if (GST_VERSION_MAJOR == 0) && ((GST_VERSION_MINOR < 10) || (GST_VERSION_MICRO < 33)) | ||
2183 | if (!factory_can_src_any_caps(factory, sinkCaps)) | ||
2184 | @@ -1652,14 +1718,19 @@ void QGstreamerPlayerSession::handleElementAdded(GstBin *bin, GstElement *elemen | ||
2185 | // Disable on-disk buffering. | ||
2186 | g_object_set(G_OBJECT(element), "temp-template", NULL, NULL); | ||
2187 | } else if (g_str_has_prefix(elementName, "uridecodebin") || | ||
2188 | - g_str_has_prefix(elementName, "decodebin2")) { | ||
2189 | - | ||
2190 | +#if GST_CHECK_VERSION(1,0,0) | ||
2191 | + g_str_has_prefix(elementName, "decodebin")) { | ||
2192 | +#else | ||
2193 | + g_str_has_prefix(elementName, "decodebin2")) { | ||
2194 | +#endif | ||
2195 | if (g_str_has_prefix(elementName, "uridecodebin")) { | ||
2196 | // Add video/x-surface (VAAPI) to default raw formats | ||
2197 | g_object_set(G_OBJECT(element), "caps", gst_static_caps_get(&static_RawCaps), NULL); | ||
2198 | // listen for uridecodebin autoplug-select to skip VAAPI usage when the current | ||
2199 | // video sink doesn't support it | ||
2200 | +#if !(GST_CHECK_VERSION(1,0,0)) | ||
2201 | g_signal_connect(element, "autoplug-select", G_CALLBACK(handleAutoplugSelect), session); | ||
2202 | +#endif | ||
2203 | } | ||
2204 | |||
2205 | //listen for queue2 element added to uridecodebin/decodebin2 as well. | ||
2206 | @@ -1727,7 +1798,27 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerVideoProbeControl* probe) | ||
2207 | // Assume user releases any outstanding references to video frames. | ||
2208 | } | ||
2209 | |||
2210 | -gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data) | ||
2211 | +#if GST_CHECK_VERSION(1,0,0) | ||
2212 | +GstPadProbeReturn QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) | ||
2213 | +{ | ||
2214 | + Q_UNUSED(pad); | ||
2215 | + GstBuffer* buffer = GST_PAD_PROBE_INFO_BUFFER(info); | ||
2216 | + | ||
2217 | + QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data); | ||
2218 | + QMutexLocker locker(&session->m_videoProbeMutex); | ||
2219 | + | ||
2220 | + if (session->m_videoProbes.isEmpty()) | ||
2221 | + return GST_PAD_PROBE_OK; | ||
2222 | + | ||
2223 | + foreach (QGstreamerVideoProbeControl* probe, session->m_videoProbes) | ||
2224 | + probe->bufferProbed(buffer, gst_pad_get_current_caps(pad)); | ||
2225 | + | ||
2226 | + return GST_PAD_PROBE_OK; | ||
2227 | +} | ||
2228 | + | ||
2229 | +#else | ||
2230 | + | ||
2231 | +static gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data) | ||
2232 | { | ||
2233 | Q_UNUSED(pad); | ||
2234 | |||
2235 | @@ -1742,6 +1833,7 @@ gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *bu | ||
2236 | |||
2237 | return TRUE; | ||
2238 | } | ||
2239 | +#endif | ||
2240 | |||
2241 | void QGstreamerPlayerSession::addProbe(QGstreamerAudioProbeControl* probe) | ||
2242 | { | ||
2243 | @@ -1759,6 +1851,24 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerAudioProbeControl* probe) | ||
2244 | m_audioProbes.removeOne(probe); | ||
2245 | } | ||
2246 | |||
2247 | +#if GST_CHECK_VERSION(1,0,0) | ||
2248 | +GstPadProbeReturn QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstPadProbeInfo* info, gpointer user_data) | ||
2249 | +{ | ||
2250 | + Q_UNUSED(pad); | ||
2251 | + GstBuffer* buffer = GST_PAD_PROBE_INFO_BUFFER(info); | ||
2252 | + | ||
2253 | + QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data); | ||
2254 | + QMutexLocker locker(&session->m_audioProbeMutex); | ||
2255 | + | ||
2256 | + if (session->m_audioProbes.isEmpty()) | ||
2257 | + return GST_PAD_PROBE_OK; | ||
2258 | + | ||
2259 | + foreach (QGstreamerAudioProbeControl* probe, session->m_audioProbes) | ||
2260 | + probe->bufferProbed(buffer, gst_pad_get_current_caps(pad)); | ||
2261 | + | ||
2262 | + return GST_PAD_PROBE_OK; | ||
2263 | +} | ||
2264 | +#else | ||
2265 | gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data) | ||
2266 | { | ||
2267 | Q_UNUSED(pad); | ||
2268 | @@ -1774,7 +1884,7 @@ gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *bu | ||
2269 | |||
2270 | return TRUE; | ||
2271 | } | ||
2272 | - | ||
2273 | +#endif | ||
2274 | // This function is similar to stop(), | ||
2275 | // but does not set m_everPlayed, m_lastPosition, | ||
2276 | // and setSeekable() values. | ||
2277 | @@ -1807,7 +1917,11 @@ void QGstreamerPlayerSession::removeVideoBufferProbe() | ||
2278 | |||
2279 | GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink"); | ||
2280 | if (pad) { | ||
2281 | +#if GST_CHECK_VERSION(1,0,0) | ||
2282 | + gst_pad_remove_probe(pad, m_videoBufferProbeId); | ||
2283 | +#else | ||
2284 | gst_pad_remove_buffer_probe(pad, m_videoBufferProbeId); | ||
2285 | +#endif | ||
2286 | gst_object_unref(GST_OBJECT(pad)); | ||
2287 | } | ||
2288 | |||
2289 | @@ -1822,7 +1936,11 @@ void QGstreamerPlayerSession::addVideoBufferProbe() | ||
2290 | |||
2291 | GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink"); | ||
2292 | if (pad) { | ||
2293 | +#if GST_CHECK_VERSION(1,0,0) | ||
2294 | + m_videoBufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padVideoBufferProbe, this, NULL); | ||
2295 | +#else | ||
2296 | m_videoBufferProbeId = gst_pad_add_buffer_probe(pad, G_CALLBACK(padVideoBufferProbe), this); | ||
2297 | +#endif | ||
2298 | gst_object_unref(GST_OBJECT(pad)); | ||
2299 | } | ||
2300 | } | ||
2301 | @@ -1839,7 +1957,11 @@ void QGstreamerPlayerSession::removeAudioBufferProbe() | ||
2302 | |||
2303 | GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink"); | ||
2304 | if (pad) { | ||
2305 | +#if GST_CHECK_VERSION(1,0,0) | ||
2306 | + gst_pad_remove_probe(pad, m_audioBufferProbeId); | ||
2307 | +#else | ||
2308 | gst_pad_remove_buffer_probe(pad, m_audioBufferProbeId); | ||
2309 | +#endif | ||
2310 | gst_object_unref(GST_OBJECT(pad)); | ||
2311 | } | ||
2312 | |||
2313 | @@ -1854,7 +1976,11 @@ void QGstreamerPlayerSession::addAudioBufferProbe() | ||
2314 | |||
2315 | GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink"); | ||
2316 | if (pad) { | ||
2317 | +#if GST_CHECK_VERSION(1,0,0) | ||
2318 | + m_audioBufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padAudioBufferProbe, this, NULL); | ||
2319 | +#else | ||
2320 | m_audioBufferProbeId = gst_pad_add_buffer_probe(pad, G_CALLBACK(padAudioBufferProbe), this); | ||
2321 | +#endif | ||
2322 | gst_object_unref(GST_OBJECT(pad)); | ||
2323 | } | ||
2324 | } | ||
2325 | @@ -1887,7 +2013,7 @@ void QGstreamerPlayerSession::playlistTypeFindFunction(GstTypeFind *find, gpoint | ||
2326 | length = qMin(length, guint64(1024)); | ||
2327 | |||
2328 | while (length > 0) { | ||
2329 | - guint8 *data = gst_type_find_peek(find, 0, length); | ||
2330 | + const guint8 *data = gst_type_find_peek(find, 0, length); | ||
2331 | if (data) { | ||
2332 | session->m_isPlaylist = (QPlaylistFileParser::findPlaylistType(QString::fromUtf8(uri), 0, data, length) != QPlaylistFileParser::UNKNOWN); | ||
2333 | return; | ||
2334 | diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h | ||
2335 | index f2e760a..50bda3d 100644 | ||
2336 | --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h | ||
2337 | +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h | ||
2338 | @@ -119,11 +119,19 @@ public: | ||
2339 | |||
2340 | void addProbe(QGstreamerVideoProbeControl* probe); | ||
2341 | void removeProbe(QGstreamerVideoProbeControl* probe); | ||
2342 | +#if GST_CHECK_VERSION(1,0,0) | ||
2343 | + static GstPadProbeReturn padVideoBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data); | ||
2344 | +#else | ||
2345 | static gboolean padVideoBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data); | ||
2346 | +#endif | ||
2347 | |||
2348 | void addProbe(QGstreamerAudioProbeControl* probe); | ||
2349 | void removeProbe(QGstreamerAudioProbeControl* probe); | ||
2350 | +#if GST_CHECK_VERSION(1,0,0) | ||
2351 | + static GstPadProbeReturn padAudioBufferProbe(GstPad *pad, GstPadProbeInfo* info, gpointer user_data); | ||
2352 | +#else | ||
2353 | static gboolean padAudioBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data); | ||
2354 | +#endif | ||
2355 | |||
2356 | void endOfMediaReset(); | ||
2357 | |||
2358 | @@ -252,6 +260,7 @@ private: | ||
2359 | bool m_isLiveSource; | ||
2360 | |||
2361 | bool m_isPlaylist; | ||
2362 | + gulong pad_probe_id; | ||
2363 | }; | ||
2364 | |||
2365 | QT_END_NAMESPACE | ||
2366 | -- | ||
2367 | 2.3.1 | ||
2368 | |||
diff --git a/recipes-qt/qt5/qtmultimedia_5.4.1.bb b/recipes-qt/qt5/qtmultimedia_5.4.1.bb deleted file mode 100644 index c45ac009..00000000 --- a/recipes-qt/qt5/qtmultimedia_5.4.1.bb +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "7412a5c62da71b44b9f29e29fdc6af4d" | ||
5 | SRC_URI[sha256sum] = "3830dd4a11727cc4a3ab32dc10e4cd016739d0b1b0c59685512853e10f1e534e" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
diff --git a/recipes-qt/qt5/qtquick1_5.4.1.bb b/recipes-qt/qt5/qtquick1_5.4.1.bb deleted file mode 100644 index 6912ef7f..00000000 --- a/recipes-qt/qt5/qtquick1_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "16d711d20238e3220fc4030dab608f0b" | ||
5 | SRC_URI[sha256sum] = "eb5324c784eef15b3d0f7e2fc2265b0f2e823a31330e88e09379972313ca432d" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtquickcontrols_5.4.1.bb b/recipes-qt/qt5/qtquickcontrols_5.4.1.bb deleted file mode 100644 index a4ea78a1..00000000 --- a/recipes-qt/qt5/qtquickcontrols_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "2950c8df9da1e3d418a1e209d24f503a" | ||
5 | SRC_URI[sha256sum] = "fe0852c510b7ab9111310d6880d1b1f34908274099aefa5a14316173b25cfbc2" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtscript_5.4.1.bb b/recipes-qt/qt5/qtscript_5.4.1.bb deleted file mode 100644 index a0113080..00000000 --- a/recipes-qt/qt5/qtscript_5.4.1.bb +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "70165fd13fa0ba5b1f577f849f0c4f12" | ||
5 | SRC_URI[sha256sum] = "f432acc8376b86279faee273ff4e26226059d0cffbaced35e05a559d2efbcbaf" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
diff --git a/recipes-qt/qt5/qtsensors_5.4.1.bb b/recipes-qt/qt5/qtsensors_5.4.1.bb deleted file mode 100644 index 458b659e..00000000 --- a/recipes-qt/qt5/qtsensors_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "0787b72a67d1e38a3a47b54b84a6dc42" | ||
5 | SRC_URI[sha256sum] = "ac4b8e2ef7520e674eb53848ec3d459d8ae92735093106b93104dec7f65edbf8" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtserialport/0001-Unix-Clear-serial_struct-instances.patch b/recipes-qt/qt5/qtserialport/0001-Unix-Clear-serial_struct-instances.patch deleted file mode 100644 index b14cf013..00000000 --- a/recipes-qt/qt5/qtserialport/0001-Unix-Clear-serial_struct-instances.patch +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | From 53afe73154c7c00b54cd280fa3d6c9127a2bc84b Mon Sep 17 00:00:00 2001 | ||
2 | From: Jonathan Liu <net147@gmail.com> | ||
3 | Date: Mon, 9 Mar 2015 22:35:56 +1100 | ||
4 | Subject: [PATCH] Unix: Clear serial_struct instances | ||
5 | |||
6 | Silences the following Valgrind warning: | ||
7 | Conditional jump or move depends on uninitialised value(s) | ||
8 | |||
9 | Upstream-Status: Backport from 5.5 branch | ||
10 | |||
11 | Change-Id: I8fd8cfd6aa6f75ed515e6151cfc282faca508bdc | ||
12 | Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> | ||
13 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
14 | --- | ||
15 | src/serialport/qserialport_unix.cpp | 4 ++++ | ||
16 | 1 file changed, 4 insertions(+) | ||
17 | |||
18 | diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp | ||
19 | index 34ef41d..7cf356b 100644 | ||
20 | --- a/src/serialport/qserialport_unix.cpp | ||
21 | +++ b/src/serialport/qserialport_unix.cpp | ||
22 | @@ -439,6 +439,8 @@ QSerialPortPrivate::setStandardBaudRate(qint32 baudRate, QSerialPort::Directions | ||
23 | { | ||
24 | struct serial_struct currentSerialInfo; | ||
25 | |||
26 | + ::memset(¤tSerialInfo, 0, sizeof(currentSerialInfo)); | ||
27 | + | ||
28 | if ((::ioctl(descriptor, TIOCGSERIAL, ¤tSerialInfo) != -1) | ||
29 | && (currentSerialInfo.flags & ASYNC_SPD_CUST)) { | ||
30 | currentSerialInfo.flags &= ~ASYNC_SPD_CUST; | ||
31 | @@ -469,6 +471,8 @@ QSerialPortPrivate::setCustomBaudRate(qint32 baudRate, QSerialPort::Directions d | ||
32 | |||
33 | struct serial_struct currentSerialInfo; | ||
34 | |||
35 | + ::memset(¤tSerialInfo, 0, sizeof(currentSerialInfo)); | ||
36 | + | ||
37 | if (::ioctl(descriptor, TIOCGSERIAL, ¤tSerialInfo) == -1) | ||
38 | return decodeSystemError(); | ||
39 | |||
40 | -- | ||
41 | 2.3.2 | ||
42 | |||
diff --git a/recipes-qt/qt5/qtserialport_5.4.1.bb b/recipes-qt/qt5/qtserialport_5.4.1.bb deleted file mode 100644 index 2349ad3d..00000000 --- a/recipes-qt/qt5/qtserialport_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "2333d25916a74260ce39b8a77c7c4288" | ||
5 | SRC_URI[sha256sum] = "79d99e826bf49e469a651cdc2d499d8b54e52bb8aaa279719a3afa03eba5d0ff" | ||
diff --git a/recipes-qt/qt5/qtsvg_5.4.1.bb b/recipes-qt/qt5/qtsvg_5.4.1.bb deleted file mode 100644 index b7d1dc2e..00000000 --- a/recipes-qt/qt5/qtsvg_5.4.1.bb +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "b4a1e4f5dae26a7500f4f61a550f67eb" | ||
5 | SRC_URI[sha256sum] = "be8a90ccce2e873d3489a416d1748089f46e329519acb990cf851d6c9f9de12c" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
diff --git a/recipes-qt/qt5/qtsystems_5.4.1+git.bb b/recipes-qt/qt5/qtsystems_5.4.1+git.bb deleted file mode 100644 index 7d46d7df..00000000 --- a/recipes-qt/qt5/qtsystems_5.4.1+git.bb +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | require qt5-git.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | # this wasn't released, the PV is set just to signify that this SRCREV was tested together | ||
5 | # with 5.4.1 version of other modules | ||
6 | PV = "5.4.1" | ||
7 | DEFAULT_PREFERENCE = "1" | ||
8 | |||
9 | QT_MODULE_BRANCH = "dev" | ||
10 | |||
11 | # qtsystems wasn't released yet, last tag before this SRCREV is 5.0.0-beta1 | ||
12 | # qt5-git PV is only to indicate that this recipe is compatible with qt5 5.4.0 | ||
13 | |||
14 | SRCREV = "44f70d99a2ecd5f3f320650461f1d69142d11bcc" | ||
diff --git a/recipes-qt/qt5/qttools-native_5.4.1.bb b/recipes-qt/qt5/qttools-native_5.4.1.bb deleted file mode 100644 index d3d549ee..00000000 --- a/recipes-qt/qt5/qttools-native_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "5b2fd42304e9294bc0f77095fdb35ad6" | ||
5 | SRC_URI[sha256sum] = "11de0f8573843194b134e32af49594514498fadc4fc0b3b0333540fe1f671f72" | ||
diff --git a/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch b/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch deleted file mode 100644 index f2e5339b..00000000 --- a/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch +++ /dev/null | |||
@@ -1,155 +0,0 @@ | |||
1 | From 80d7d1844e6e088bde4c83881ea38a52a7e608c2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.jansa@gmail.com> | ||
3 | Date: Wed, 11 Sep 2013 18:30:08 +0200 | ||
4 | Subject: [PATCH 1/3] Allow to build only lrelease + lupdate + lconvert | ||
5 | |||
6 | This is useful e.g. when cross compiling with OpenEmbedded where qtbase-native | ||
7 | is built without GUI support (no-png is set) and we still want to build | ||
8 | native lrelease + lupdate + lconvert tools. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
13 | --- | ||
14 | examples/examples.pro | 3 ++- | ||
15 | src/designer/src/src.pro | 16 +++++++++------- | ||
16 | src/linguist/linguist.pro | 2 +- | ||
17 | src/src.pro | 14 ++++++++------ | ||
18 | tests/auto/auto.pro | 24 +++++++++++++----------- | ||
19 | 5 files changed, 33 insertions(+), 26 deletions(-) | ||
20 | |||
21 | diff --git a/examples/examples.pro b/examples/examples.pro | ||
22 | index 69365d1..da7b38b 100644 | ||
23 | --- a/examples/examples.pro | ||
24 | +++ b/examples/examples.pro | ||
25 | @@ -1,4 +1,5 @@ | ||
26 | TEMPLATE = subdirs | ||
27 | -qtHaveModule(widgets): SUBDIRS += help designer linguist uitools assistant | ||
28 | +!linguistonly:qtHaveModule(widgets): SUBDIRS += help designer assistant | ||
29 | +qtHaveModule(widgets): SUBDIRS += linguist uitools | ||
30 | |||
31 | winrt: SUBDIRS -= assistant designer | ||
32 | diff --git a/src/designer/src/src.pro b/src/designer/src/src.pro | ||
33 | index e02ca8e..49527c5 100644 | ||
34 | --- a/src/designer/src/src.pro | ||
35 | +++ b/src/designer/src/src.pro | ||
36 | @@ -1,18 +1,20 @@ | ||
37 | TEMPLATE = subdirs | ||
38 | |||
39 | -SUBDIRS = \ | ||
40 | - uitools \ | ||
41 | - lib \ | ||
42 | - components \ | ||
43 | - designer | ||
44 | +!linguistonly { | ||
45 | + SUBDIRS = \ | ||
46 | + lib \ | ||
47 | + components \ | ||
48 | + designer | ||
49 | +} | ||
50 | +SUBDIRS += uitools | ||
51 | |||
52 | -contains(QT_CONFIG, shared): SUBDIRS += plugins | ||
53 | +!linguistonly:contains(QT_CONFIG, shared): SUBDIRS += plugins | ||
54 | |||
55 | components.depends = lib | ||
56 | designer.depends = components | ||
57 | plugins.depends = lib | ||
58 | |||
59 | -qtNomakeTools( \ | ||
60 | +!linguistonly:qtNomakeTools( \ | ||
61 | lib \ | ||
62 | components \ | ||
63 | designer \ | ||
64 | diff --git a/src/linguist/linguist.pro b/src/linguist/linguist.pro | ||
65 | index 3a70580..a977878 100644 | ||
66 | --- a/src/linguist/linguist.pro | ||
67 | +++ b/src/linguist/linguist.pro | ||
68 | @@ -3,7 +3,7 @@ SUBDIRS = \ | ||
69 | lrelease \ | ||
70 | lupdate \ | ||
71 | lconvert | ||
72 | -!no-png:qtHaveModule(widgets): SUBDIRS += linguist | ||
73 | +!linguistonly:!no-png:qtHaveModule(widgets): SUBDIRS += linguist | ||
74 | |||
75 | qtNomakeTools( \ | ||
76 | linguist \ | ||
77 | diff --git a/src/src.pro b/src/src.pro | ||
78 | index 722b32e..9453152 100644 | ||
79 | --- a/src/src.pro | ||
80 | +++ b/src/src.pro | ||
81 | @@ -4,10 +4,12 @@ qtHaveModule(widgets) { | ||
82 | no-png { | ||
83 | message("Some graphics-related tools are unavailable without PNG support") | ||
84 | } else { | ||
85 | - SUBDIRS = assistant \ | ||
86 | + !linguistonly { | ||
87 | + SUBDIRS = assistant \ | ||
88 | pixeltool \ | ||
89 | - qtestlib \ | ||
90 | - designer | ||
91 | + qtestlib | ||
92 | + } | ||
93 | + SUBDIRS += designer | ||
94 | # unix:!mac:!embedded:!qpa:SUBDIRS += qtconfig | ||
95 | |||
96 | linguist.depends = designer | ||
97 | @@ -15,7 +17,7 @@ qtHaveModule(widgets) { | ||
98 | } | ||
99 | |||
100 | SUBDIRS += linguist | ||
101 | -if(!android|android_app):!ios: SUBDIRS += qtpaths | ||
102 | +if(!android|android_app):!linguistonly:!ios: SUBDIRS += qtpaths | ||
103 | |||
104 | mac { | ||
105 | SUBDIRS += macdeployqt | ||
106 | @@ -25,11 +27,11 @@ android { | ||
107 | SUBDIRS += androiddeployqt | ||
108 | } | ||
109 | |||
110 | -qtHaveModule(dbus): SUBDIRS += qdbus | ||
111 | +!linguistonly:qtHaveModule(dbus): SUBDIRS += qdbus | ||
112 | |||
113 | win32|winrt:SUBDIRS += windeployqt | ||
114 | winrt:SUBDIRS += winrtrunner | ||
115 | -qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag | ||
116 | +!linguistonly:qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag | ||
117 | |||
118 | qtNomakeTools( \ | ||
119 | pixeltool \ | ||
120 | diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro | ||
121 | index df240e3..27ee687 100644 | ||
122 | --- a/tests/auto/auto.pro | ||
123 | +++ b/tests/auto/auto.pro | ||
124 | @@ -1,15 +1,17 @@ | ||
125 | TEMPLATE=subdirs | ||
126 | -SUBDIRS=\ | ||
127 | - linguist \ | ||
128 | - host.pro \ | ||
129 | - qhelpcontentmodel \ | ||
130 | - qhelpenginecore \ | ||
131 | - qhelpgenerator \ | ||
132 | - qhelpindexmodel \ | ||
133 | - qhelpprojectdata \ | ||
134 | - cmake \ | ||
135 | - installed_cmake \ | ||
136 | - qtdiag | ||
137 | +!linguistonly { | ||
138 | + SUBDIRS=\ | ||
139 | + linguist \ | ||
140 | + host.pro \ | ||
141 | + qhelpcontentmodel \ | ||
142 | + qhelpenginecore \ | ||
143 | + qhelpgenerator \ | ||
144 | + qhelpindexmodel \ | ||
145 | + qhelpprojectdata \ | ||
146 | + cmake \ | ||
147 | + installed_cmake | ||
148 | + qtdiag | ||
149 | +} | ||
150 | |||
151 | installed_cmake.depends = cmake | ||
152 | |||
153 | -- | ||
154 | 2.3.1 | ||
155 | |||
diff --git a/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch b/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch deleted file mode 100644 index c6cf4a6d..00000000 --- a/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 21163294f5f1ae633db63c5d27b458ba189dcc16 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Fri, 17 Jan 2014 14:33:19 +0100 | ||
4 | Subject: [PATCH 2/3] assistant/help: fix linking of dependent libraries | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | else we get: | ||
10 | | ...ld: warning: libQt5CLucene.so.5, needed by ...libQt5Help.so, not found (try using -rpath or -rpath-link) | ||
11 | | ...undefined reference to `QCLucenePhraseQuery::getTerms() const' | ||
12 | |||
13 | Upstream-Status: Inappropriate [configuration] | ||
14 | |||
15 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
16 | --- | ||
17 | src/assistant/help/help.pro | 2 ++ | ||
18 | 1 file changed, 2 insertions(+) | ||
19 | |||
20 | diff --git a/src/assistant/help/help.pro b/src/assistant/help/help.pro | ||
21 | index 168d23d..a9c3b59 100644 | ||
22 | --- a/src/assistant/help/help.pro | ||
23 | +++ b/src/assistant/help/help.pro | ||
24 | @@ -59,3 +59,5 @@ HEADERS += qhelpenginecore.h \ | ||
25 | # access to clucene | ||
26 | HEADERS += qhelpsearchindexwriter_clucene_p.h \ | ||
27 | qhelpsearchindexreader_clucene_p.h | ||
28 | + | ||
29 | +LIBS += -lQt5CLucene | ||
30 | -- | ||
31 | 2.3.1 | ||
32 | |||
diff --git a/recipes-qt/qt5/qttools/0003-add-noqtwebkit-configuration.patch b/recipes-qt/qt5/qttools/0003-add-noqtwebkit-configuration.patch deleted file mode 100644 index 2e3349ba..00000000 --- a/recipes-qt/qt5/qttools/0003-add-noqtwebkit-configuration.patch +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | From e3aba30a9cece54dd6a7edfcb39cbb1805b3dcac Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Wed, 4 Jun 2014 11:28:16 +0200 | ||
4 | Subject: [PATCH 3/3] add noqtwebkit configuration | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Upstream-Status: Inappropiate [configuration] | ||
10 | |||
11 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
12 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
13 | --- | ||
14 | src/assistant/assistant/assistant.pro | 4 ++-- | ||
15 | src/designer/src/plugins/plugins.pro | 2 +- | ||
16 | 2 files changed, 3 insertions(+), 3 deletions(-) | ||
17 | |||
18 | diff --git a/src/assistant/assistant/assistant.pro b/src/assistant/assistant/assistant.pro | ||
19 | index 6e82b07..56df78c 100644 | ||
20 | --- a/src/assistant/assistant/assistant.pro | ||
21 | +++ b/src/assistant/assistant/assistant.pro | ||
22 | @@ -1,4 +1,4 @@ | ||
23 | -qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static) { | ||
24 | +qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static):!contains(CONFIG, noqtwebkit) { | ||
25 | QT += webkitwidgets | ||
26 | } else { | ||
27 | DEFINES += QT_NO_WEBKIT | ||
28 | @@ -71,7 +71,7 @@ SOURCES += aboutdialog.cpp \ | ||
29 | openpageswidget.cpp \ | ||
30 | openpagesmanager.cpp \ | ||
31 | openpagesswitcher.cpp | ||
32 | -qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static) { | ||
33 | +qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static):!contains(CONFIG, noqtwebkit) { | ||
34 | SOURCES += helpviewer_qwv.cpp | ||
35 | } else { | ||
36 | SOURCES += helpviewer_qtb.cpp | ||
37 | diff --git a/src/designer/src/plugins/plugins.pro b/src/designer/src/plugins/plugins.pro | ||
38 | index 500a153..b60fa2d 100644 | ||
39 | --- a/src/designer/src/plugins/plugins.pro | ||
40 | +++ b/src/designer/src/plugins/plugins.pro | ||
41 | @@ -1,6 +1,6 @@ | ||
42 | TEMPLATE = subdirs | ||
43 | |||
44 | # qtHaveModule(opengl): SUBDIRS += tools/view3d | ||
45 | -qtHaveModule(webkitwidgets): SUBDIRS += qwebview | ||
46 | +qtHaveModule(webkitwidgets):!contains(CONFIG, noqtwebkit): SUBDIRS += qwebview | ||
47 | win32: qtHaveModule(axcontainer): SUBDIRS += activeqt | ||
48 | qtHaveModule(quickwidgets): SUBDIRS += qquickwidget | ||
49 | -- | ||
50 | 2.3.1 | ||
51 | |||
diff --git a/recipes-qt/qt5/qttools_5.4.1.bb b/recipes-qt/qt5/qttools_5.4.1.bb deleted file mode 100644 index d3d549ee..00000000 --- a/recipes-qt/qt5/qttools_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "5b2fd42304e9294bc0f77095fdb35ad6" | ||
5 | SRC_URI[sha256sum] = "11de0f8573843194b134e32af49594514498fadc4fc0b3b0333540fe1f671f72" | ||
diff --git a/recipes-qt/qt5/qttranslations_5.4.1.bb b/recipes-qt/qt5/qttranslations_5.4.1.bb deleted file mode 100644 index d0afd037..00000000 --- a/recipes-qt/qt5/qttranslations_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "0bdd1b0a83b03a04a4ebeedfa3057d21" | ||
5 | SRC_URI[sha256sum] = "3c4d045f974bc9ee76bb85d319737cf182b8697c4ba72d2c075d3609cfaf9041" | ||
diff --git a/recipes-qt/qt5/qtwayland-native_5.4.1.bb b/recipes-qt/qt5/qtwayland-native_5.4.1.bb deleted file mode 100644 index 6e498852..00000000 --- a/recipes-qt/qt5/qtwayland-native_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "a132295b896062d21ded0937a56d22a3" | ||
5 | SRC_URI[sha256sum] = "653b5e600b1cbf3275d0858415570d2a2611823a4651ee911e684dcae870d792" | ||
diff --git a/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch b/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch deleted file mode 100644 index bcaf949e..00000000 --- a/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 9a9bc002354966b757bed13582f0bb927c3e7cc8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Simon Busch <morphis@gravedo.de> | ||
3 | Date: Fri, 19 Jul 2013 13:35:14 +0000 | ||
4 | Subject: [PATCH] Install the qtwaylandscanner tool to the native side | ||
5 | |||
6 | Upstream-Status: Inappropiate [configuration] | ||
7 | |||
8 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
9 | --- | ||
10 | src/qtwaylandscanner/qtwaylandscanner.pro | 8 ++++++-- | ||
11 | 1 file changed, 6 insertions(+), 2 deletions(-) | ||
12 | |||
13 | diff --git a/src/qtwaylandscanner/qtwaylandscanner.pro b/src/qtwaylandscanner/qtwaylandscanner.pro | ||
14 | index ac2d07b..7a46a24 100644 | ||
15 | --- a/src/qtwaylandscanner/qtwaylandscanner.pro | ||
16 | +++ b/src/qtwaylandscanner/qtwaylandscanner.pro | ||
17 | @@ -1,6 +1,10 @@ | ||
18 | option(host_build) | ||
19 | |||
20 | -SOURCES += qtwaylandscanner.cpp | ||
21 | +TARGET = qtwaylandscanner$$qtPlatformTargetSuffix() | ||
22 | +CONFIG += console warn_off | ||
23 | +QT = core | ||
24 | |||
25 | -load(qt_tool) | ||
26 | +SOURCES += qtwaylandscanner.cpp | ||
27 | |||
28 | +target.path = $$[QT_HOST_BINS] | ||
29 | +INSTALLS += target | ||
30 | -- | ||
31 | 2.3.1 | ||
32 | |||
diff --git a/recipes-qt/qt5/qtwayland/0001-examples-wayland-include-server-buffer-only-when-bui.patch b/recipes-qt/qt5/qtwayland/0001-examples-wayland-include-server-buffer-only-when-bui.patch deleted file mode 100644 index a55db122..00000000 --- a/recipes-qt/qt5/qtwayland/0001-examples-wayland-include-server-buffer-only-when-bui.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From c4876f42d841db36197e5cb8a84c70df40a0f21e Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 22 Feb 2014 17:47:44 +0100 | ||
4 | Subject: [PATCH] examples/wayland: include server-buffer only when building | ||
5 | with opengles2 | ||
6 | |||
7 | * it's using glBindBuffer in | ||
8 | server-buffer/client/serverbufferrenderer.cpp | ||
9 | |||
10 | Change-Id: I8412dfd4ebb95c147328ac6e4dfff14a0cff4e78 | ||
11 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
12 | --- | ||
13 | examples/wayland/wayland.pro | 4 +++- | ||
14 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/examples/wayland/wayland.pro b/examples/wayland/wayland.pro | ||
17 | index d633fb9..643c7cd 100644 | ||
18 | --- a/examples/wayland/wayland.pro | ||
19 | +++ b/examples/wayland/wayland.pro | ||
20 | @@ -9,5 +9,7 @@ contains(CONFIG, wayland-compositor) { | ||
21 | SUBDIRS += qml-compositor | ||
22 | } | ||
23 | |||
24 | - SUBDIRS += server-buffer | ||
25 | + contains(QT_CONFIG, opengles2) { | ||
26 | + SUBDIRS += server-buffer | ||
27 | + } | ||
28 | } | ||
29 | -- | ||
30 | 2.3.1 | ||
31 | |||
diff --git a/recipes-qt/qt5/qtwayland_5.4.1.bb b/recipes-qt/qt5/qtwayland_5.4.1.bb deleted file mode 100644 index 452851b8..00000000 --- a/recipes-qt/qt5/qtwayland_5.4.1.bb +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "a132295b896062d21ded0937a56d22a3" | ||
5 | SRC_URI[sha256sum] = "653b5e600b1cbf3275d0858415570d2a2611823a4651ee911e684dcae870d792" | ||
6 | |||
7 | SRC_URI += " \ | ||
8 | file://0001-examples-wayland-include-server-buffer-only-when-bui.patch \ | ||
9 | " | ||
10 | QT_VERSION ?= "${PV}" | ||
11 | |||
12 | do_install_append() { | ||
13 | # do install files created by qtwaylandscanner | ||
14 | install ${B}/include/QtCompositor/${QT_VERSION}/QtCompositor/private/qwayland-server-*.h ${D}${OE_QMAKE_PATH_QT_HEADERS}/QtCompositor/${QT_VERSION}/QtCompositor/private | ||
15 | install ${B}/include/QtCompositor/${QT_VERSION}/QtCompositor/private/*protocol*.h ${D}${OE_QMAKE_PATH_QT_HEADERS}/QtCompositor/${QT_VERSION}/QtCompositor/private | ||
16 | } | ||
diff --git a/recipes-qt/qt5/qtwebchannel_5.4.1.bb b/recipes-qt/qt5/qtwebchannel_5.4.1.bb deleted file mode 100644 index feddcf38..00000000 --- a/recipes-qt/qt5/qtwebchannel_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "bb914134c164c6758a0074748cc678ff" | ||
5 | SRC_URI[sha256sum] = "c4acb9ec9886fca6d0c2adc5b45970347ae1b3e4b5e0055ab370540faef7b251" | ||
diff --git a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch b/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch deleted file mode 100644 index b4a8852e..00000000 --- a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | From 21d008c31a262ddcaeb3a8457de49061361ed882 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Fri, 3 Oct 2014 03:52:11 +0200 | ||
4 | Subject: [PATCH] <chromium> base.gypi: include atomicops_internals_x86_gcc.cc | ||
5 | when building for x64 arch | ||
6 | |||
7 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
8 | --- | ||
9 | chromium/base/base.gypi | 2 +- | ||
10 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
11 | |||
12 | diff --git a/src/3rdparty/chromium/base/base.gypi b/src/3rdparty/chromium/base/base.gypi | ||
13 | index a5a990a..af30cfa 100644 | ||
14 | --- a/src/3rdparty/chromium/base/base.gypi | ||
15 | +++ b/src/3rdparty/chromium/base/base.gypi | ||
16 | @@ -745,7 +745,7 @@ | ||
17 | ['include', '^nix/'], | ||
18 | ], | ||
19 | }], | ||
20 | - ['use_qt==1 and target_arch=="ia32"', { | ||
21 | + ['use_qt==1 and target_arch=="ia32" or target_arch=="x64"', { | ||
22 | 'sources/': [ | ||
23 | ['include', 'atomicops_internals_x86_gcc.cc'], | ||
24 | ], | ||
25 | -- | ||
26 | 2.3.1 | ||
27 | |||
diff --git a/recipes-qt/qt5/qtwebengine/0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch b/recipes-qt/qt5/qtwebengine/0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch deleted file mode 100644 index 83787f3a..00000000 --- a/recipes-qt/qt5/qtwebengine/0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | From 005fabe4148c78e8393c50ca6ebc9d0c2151c3cd Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Mon, 30 Jun 2014 20:08:17 +0200 | ||
4 | Subject: [PATCH 1/4] functions.prf: Don't match QMAKE_EXT_CPP or QMAKE_EXT_H | ||
5 | anywhere in path, but at the end | ||
6 | |||
7 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
8 | --- | ||
9 | tools/qmake/mkspecs/features/functions.prf | 4 ++-- | ||
10 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
11 | |||
12 | diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf | ||
13 | index 4c2547d..64c08ad 100644 | ||
14 | --- a/tools/qmake/mkspecs/features/functions.prf | ||
15 | +++ b/tools/qmake/mkspecs/features/functions.prf | ||
16 | @@ -87,8 +87,8 @@ defineReplace(findIncludedMocFiles) { | ||
17 | defineReplace(mocOutput) { | ||
18 | out = $$1 | ||
19 | # The order is important, since the output of the second replace would end up accidentaly transformed by the first one | ||
20 | - out = $$replace(out, ^(.*)($$join(QMAKE_EXT_CPP,|)), $${QMAKE_CPP_MOD_MOC}\\1$${QMAKE_EXT_CPP_MOC}) | ||
21 | - out = $$replace(out, ^(.*)($$join(QMAKE_EXT_H,|)), $${QMAKE_H_MOD_MOC}\\1$${first(QMAKE_EXT_CPP)}) | ||
22 | + out = $$replace(out, ^(.*)($$join(QMAKE_EXT_CPP,|))$, $${QMAKE_CPP_MOD_MOC}\\1$${QMAKE_EXT_CPP_MOC}) | ||
23 | + out = $$replace(out, ^(.*)($$join(QMAKE_EXT_H,|))$, $${QMAKE_H_MOD_MOC}\\1$${first(QMAKE_EXT_CPP)}) | ||
24 | return($$out) | ||
25 | } | ||
26 | |||
27 | -- | ||
28 | 2.3.1 | ||
29 | |||
diff --git a/recipes-qt/qt5/qtwebengine/0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch b/recipes-qt/qt5/qtwebengine/0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch deleted file mode 100644 index 8cdf4ca8..00000000 --- a/recipes-qt/qt5/qtwebengine/0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | From 323f3d4fbd00b8655a1928c389d5f05ef4526044 Mon Sep 17 00:00:00 2001 | ||
2 | From: Simon Busch <morphis@gravedo.de> | ||
3 | Date: Tue, 18 Nov 2014 10:38:18 +0100 | ||
4 | Subject: [PATCH 2/4] functions.prf: Make sure we only use the file name to | ||
5 | generate it's moc'ed abbreviation | ||
6 | |||
7 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
8 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
9 | --- | ||
10 | tools/qmake/mkspecs/features/functions.prf | 3 ++- | ||
11 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf | ||
14 | index 64c08ad..b46478b 100644 | ||
15 | --- a/tools/qmake/mkspecs/features/functions.prf | ||
16 | +++ b/tools/qmake/mkspecs/features/functions.prf | ||
17 | @@ -85,7 +85,8 @@ defineReplace(findIncludedMocFiles) { | ||
18 | } | ||
19 | |||
20 | defineReplace(mocOutput) { | ||
21 | - out = $$1 | ||
22 | + in = $$1 | ||
23 | + out = $$basename(in) | ||
24 | # The order is important, since the output of the second replace would end up accidentaly transformed by the first one | ||
25 | out = $$replace(out, ^(.*)($$join(QMAKE_EXT_CPP,|))$, $${QMAKE_CPP_MOD_MOC}\\1$${QMAKE_EXT_CPP_MOC}) | ||
26 | out = $$replace(out, ^(.*)($$join(QMAKE_EXT_H,|))$, $${QMAKE_H_MOD_MOC}\\1$${first(QMAKE_EXT_CPP)}) | ||
27 | -- | ||
28 | 2.3.1 | ||
29 | |||
diff --git a/recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch b/recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch deleted file mode 100644 index 684b796d..00000000 --- a/recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | From 762c943fbe1bee878275788f376b33abce46e25a Mon Sep 17 00:00:00 2001 | ||
2 | From: Frieder Schrempf <frieder.schrempf@online.de> | ||
3 | Date: Mon, 1 Dec 2014 14:34:40 +0000 | ||
4 | Subject: [PATCH 3/4] functions.prf: allow build for linux-oe-g++ platform | ||
5 | |||
6 | Upstream-Status: Inappropriate [OE specific] | ||
7 | |||
8 | Signed-off-by: Frieder Schrempf <frieder.schrempf@online.de> | ||
9 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
10 | --- | ||
11 | tools/qmake/mkspecs/features/functions.prf | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf | ||
15 | index b46478b..6205bf4 100644 | ||
16 | --- a/tools/qmake/mkspecs/features/functions.prf | ||
17 | +++ b/tools/qmake/mkspecs/features/functions.prf | ||
18 | @@ -10,7 +10,7 @@ defineTest(isPlatformSupported) { | ||
19 | |||
20 | linux-g++*:!isGCCVersionSupported(): return(false) | ||
21 | !isPythonVersionSupported(): return(false) | ||
22 | - linux-g++*|win32-msvc2013|macx-clang: return(true) | ||
23 | + linux-g++*|linux-oe-g++*|win32-msvc2013|macx-clang: return(true) | ||
24 | boot2qt: return(true) | ||
25 | |||
26 | skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.") | ||
27 | -- | ||
28 | 2.3.1 | ||
29 | |||
diff --git a/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch b/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch deleted file mode 100644 index 63387c75..00000000 --- a/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch +++ /dev/null | |||
@@ -1,532 +0,0 @@ | |||
1 | From 6ba64ed2e7136c5a9067d7e1793c0db15e762403 Mon Sep 17 00:00:00 2001 | ||
2 | From: Stephan Binner <stephan.binner@basyskom.com> | ||
3 | Date: Wed, 4 Mar 2015 12:39:29 +0100 | ||
4 | Subject: [PATCH 4/4] Enable building Qt WebEngine without accessiblity | ||
5 | enabled. | ||
6 | |||
7 | This adds guards that for QT_NO_ACCESSIBILITY being not defined | ||
8 | around the code that uses accessibility types. | ||
9 | |||
10 | It disables the quicknanobrowser and quicktestbrowser examples | ||
11 | which need Qt QuickControls, which has a hard dependency to | ||
12 | accessibility being enabled. | ||
13 | |||
14 | Upstream-Status: Backport from 5.5 | ||
15 | https://codereview.qt-project.org/#/c/104207/ | ||
16 | |||
17 | Backport of d95b9295c970401939d2779cbdc9e2a8c7965277 from 5.5 | ||
18 | |||
19 | Change-Id: I2a2a0a6196fcb3baa39603d9c929183b454f39ed | ||
20 | Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com> | ||
21 | --- | ||
22 | examples/webengine/quicknanobrowser/quicknanobrowser.pro | 2 ++ | ||
23 | src/core/browser_accessibility_manager_qt.cpp | 6 ++++++ | ||
24 | src/core/browser_accessibility_manager_qt.h | 2 ++ | ||
25 | src/core/browser_accessibility_qt.cpp | 4 ++++ | ||
26 | src/core/browser_accessibility_qt.h | 3 +++ | ||
27 | src/core/render_widget_host_view_qt.cpp | 11 ++++++++++- | ||
28 | src/core/render_widget_host_view_qt.h | 6 +++++- | ||
29 | src/core/web_contents_adapter.cpp | 2 ++ | ||
30 | src/core/web_contents_adapter_client.h | 2 ++ | ||
31 | src/webengine/api/qquickwebengineview.cpp | 12 ++++++++++++ | ||
32 | src/webengine/api/qquickwebengineview_p.h | 2 ++ | ||
33 | src/webengine/api/qquickwebengineview_p_p.h | 5 ++++- | ||
34 | src/webenginewidgets/api/qwebenginepage.cpp | 3 +++ | ||
35 | src/webenginewidgets/api/qwebenginepage.h | 2 ++ | ||
36 | src/webenginewidgets/api/qwebenginepage_p.h | 2 ++ | ||
37 | src/webenginewidgets/api/qwebengineview.cpp | 7 ++++++- | ||
38 | src/webenginewidgets/api/qwebengineview_p.h | 3 ++- | ||
39 | tests/quicktestbrowser/quicktestbrowser.pro | 2 ++ | ||
40 | 18 files changed, 71 insertions(+), 5 deletions(-) | ||
41 | |||
42 | diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro | ||
43 | index 3628b81..a8e57b0 100644 | ||
44 | --- a/examples/webengine/quicknanobrowser/quicknanobrowser.pro | ||
45 | +++ b/examples/webengine/quicknanobrowser/quicknanobrowser.pro | ||
46 | @@ -1,3 +1,5 @@ | ||
47 | +requires(contains(QT_CONFIG, accessibility)) | ||
48 | + | ||
49 | TEMPLATE = app | ||
50 | TARGET = quicknanobrowser | ||
51 | |||
52 | diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp | ||
53 | index 28d0dd7..6729866 100644 | ||
54 | --- a/src/core/browser_accessibility_manager_qt.cpp | ||
55 | +++ b/src/core/browser_accessibility_manager_qt.cpp | ||
56 | @@ -45,9 +45,14 @@ namespace content { | ||
57 | |||
58 | BrowserAccessibility *BrowserAccessibilityFactoryQt::Create() | ||
59 | { | ||
60 | +#ifndef QT_NO_ACCESSIBILITY | ||
61 | return new BrowserAccessibilityQt(); | ||
62 | +#else | ||
63 | + return 0; | ||
64 | +#endif // QT_NO_ACCESSIBILITY | ||
65 | } | ||
66 | |||
67 | +#ifndef QT_NO_ACCESSIBILITY | ||
68 | BrowserAccessibilityManagerQt::BrowserAccessibilityManagerQt( | ||
69 | QObject* parentObject, | ||
70 | const ui::AXTreeUpdate& initialTree, | ||
71 | @@ -131,5 +136,6 @@ void BrowserAccessibilityManagerQt::NotifyAccessibilityEvent(ui::AXEvent event_t | ||
72 | break; | ||
73 | } | ||
74 | } | ||
75 | +#endif // QT_NO_ACCESSIBILITY | ||
76 | |||
77 | } | ||
78 | diff --git a/src/core/browser_accessibility_manager_qt.h b/src/core/browser_accessibility_manager_qt.h | ||
79 | index 5d8498d..49b3af3 100644 | ||
80 | --- a/src/core/browser_accessibility_manager_qt.h | ||
81 | +++ b/src/core/browser_accessibility_manager_qt.h | ||
82 | @@ -38,6 +38,7 @@ | ||
83 | #define BROWSER_ACCESSIBILITY_MANAGER_QT_H | ||
84 | |||
85 | #include "content/browser/accessibility/browser_accessibility_manager.h" | ||
86 | +#ifndef QT_NO_ACCESSIBILITY | ||
87 | #include <QtCore/qobject.h> | ||
88 | |||
89 | QT_BEGIN_NAMESPACE | ||
90 | @@ -74,4 +75,5 @@ private: | ||
91 | |||
92 | } | ||
93 | |||
94 | +#endif // QT_NO_ACCESSIBILITY | ||
95 | #endif | ||
96 | diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp | ||
97 | index b5cd26f..4b8e97a 100644 | ||
98 | --- a/src/core/browser_accessibility_qt.cpp | ||
99 | +++ b/src/core/browser_accessibility_qt.cpp | ||
100 | @@ -40,6 +40,8 @@ | ||
101 | |||
102 | #include "browser_accessibility_qt.h" | ||
103 | |||
104 | +#ifndef QT_NO_ACCESSIBILITY | ||
105 | + | ||
106 | #include "third_party/WebKit/public/web/WebAXEnums.h" | ||
107 | #include "ui/accessibility/ax_node_data.h" | ||
108 | |||
109 | @@ -898,3 +900,5 @@ void BrowserAccessibilityQt::modelChange(QAccessibleTableModelChangeEvent *) | ||
110 | } | ||
111 | |||
112 | } // namespace content | ||
113 | + | ||
114 | +#endif // QT_NO_ACCESSIBILITY | ||
115 | diff --git a/src/core/browser_accessibility_qt.h b/src/core/browser_accessibility_qt.h | ||
116 | index db190ff..e87b5d8 100644 | ||
117 | --- a/src/core/browser_accessibility_qt.h | ||
118 | +++ b/src/core/browser_accessibility_qt.h | ||
119 | @@ -38,6 +38,8 @@ | ||
120 | #define BROWSER_ACCESSIBILITY_QT_H | ||
121 | |||
122 | #include <QtGui/qaccessible.h> | ||
123 | + | ||
124 | +#ifndef QT_NO_ACCESSIBILITY | ||
125 | #include "content/browser/accessibility/browser_accessibility.h" | ||
126 | |||
127 | namespace content { | ||
128 | @@ -145,4 +147,5 @@ public: | ||
129 | |||
130 | } | ||
131 | |||
132 | +#endif // QT_NO_ACCESSIBILITY | ||
133 | #endif | ||
134 | diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp | ||
135 | index c221e94..4c8a2c1 100644 | ||
136 | --- a/src/core/render_widget_host_view_qt.cpp | ||
137 | +++ b/src/core/render_widget_host_view_qt.cpp | ||
138 | @@ -198,15 +198,18 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost* widget | ||
139 | , m_initPending(false) | ||
140 | { | ||
141 | m_host->SetView(this); | ||
142 | - | ||
143 | +#ifndef QT_NO_ACCESSIBILITY | ||
144 | QAccessible::installActivationObserver(this); | ||
145 | if (QAccessible::isActive()) | ||
146 | content::BrowserAccessibilityStateImpl::GetInstance()->EnableAccessibility(); | ||
147 | +#endif // QT_NO_ACCESSIBILITY | ||
148 | } | ||
149 | |||
150 | RenderWidgetHostViewQt::~RenderWidgetHostViewQt() | ||
151 | { | ||
152 | +#ifndef QT_NO_ACCESSIBILITY | ||
153 | QAccessible::removeActivationObserver(this); | ||
154 | +#endif // QT_NO_ACCESSIBILITY | ||
155 | } | ||
156 | |||
157 | void RenderWidgetHostViewQt::setDelegate(RenderWidgetHostViewQtDelegate* delegate) | ||
158 | @@ -296,6 +299,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewQt::GetNativeViewAccessible() | ||
159 | |||
160 | void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded() | ||
161 | { | ||
162 | +#ifndef QT_NO_ACCESSIBILITY | ||
163 | if (GetBrowserAccessibilityManager()) | ||
164 | return; | ||
165 | |||
166 | @@ -303,6 +307,7 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded() | ||
167 | m_adapterClient->accessibilityParentObject(), | ||
168 | content::BrowserAccessibilityManagerQt::GetEmptyDocument(), | ||
169 | this)); | ||
170 | +#endif // QT_NO_ACCESSIBILITY | ||
171 | } | ||
172 | |||
173 | // Set focus to the associated View component. | ||
174 | @@ -953,6 +958,7 @@ void RenderWidgetHostViewQt::AccessibilityFatalError() | ||
175 | SetBrowserAccessibilityManager(NULL); | ||
176 | } | ||
177 | |||
178 | +#ifndef QT_NO_ACCESSIBILITY | ||
179 | void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active) | ||
180 | { | ||
181 | if (active) | ||
182 | @@ -960,6 +966,7 @@ void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active) | ||
183 | else | ||
184 | content::BrowserAccessibilityStateImpl::GetInstance()->DisableAccessibility(); | ||
185 | } | ||
186 | +#endif // QT_NO_ACCESSIBILITY | ||
187 | |||
188 | void RenderWidgetHostViewQt::handleWheelEvent(QWheelEvent *ev) | ||
189 | { | ||
190 | @@ -1042,6 +1049,7 @@ void RenderWidgetHostViewQt::handleFocusEvent(QFocusEvent *ev) | ||
191 | } | ||
192 | } | ||
193 | |||
194 | +#ifndef QT_NO_ACCESSIBILITY | ||
195 | QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible() | ||
196 | { | ||
197 | // Assume we have a screen reader doing stuff | ||
198 | @@ -1051,6 +1059,7 @@ QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible() | ||
199 | content::BrowserAccessibilityQt *accQt = static_cast<content::BrowserAccessibilityQt*>(acc); | ||
200 | return accQt; | ||
201 | } | ||
202 | +#endif // QT_NO_ACCESSIBILITY | ||
203 | |||
204 | void RenderWidgetHostViewQt::didFirstVisuallyNonEmptyLayout() | ||
205 | { | ||
206 | diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h | ||
207 | index d4a3ff2..fac7efd 100644 | ||
208 | --- a/src/core/render_widget_host_view_qt.h | ||
209 | +++ b/src/core/render_widget_host_view_qt.h | ||
210 | @@ -50,6 +50,7 @@ | ||
211 | #include <QRect> | ||
212 | #include <QtGlobal> | ||
213 | #include <QtGui/qaccessible.h> | ||
214 | +#include <QtGui/QTouchEvent> | ||
215 | |||
216 | #include "delegated_frame_node.h" | ||
217 | |||
218 | @@ -59,7 +60,6 @@ class QFocusEvent; | ||
219 | class QHoverEvent; | ||
220 | class QKeyEvent; | ||
221 | class QMouseEvent; | ||
222 | -class QTouchEvent; | ||
223 | class QVariant; | ||
224 | class QWheelEvent; | ||
225 | class QAccessibleInterface; | ||
226 | @@ -93,7 +93,9 @@ class RenderWidgetHostViewQt | ||
227 | , public RenderWidgetHostViewQtDelegateClient | ||
228 | , public content::BrowserAccessibilityDelegate | ||
229 | , public base::SupportsWeakPtr<RenderWidgetHostViewQt> | ||
230 | +#ifndef QT_NO_ACCESSIBILITY | ||
231 | , public QAccessible::ActivationObserver | ||
232 | +#endif // QT_NO_ACCESSIBILITY | ||
233 | { | ||
234 | public: | ||
235 | RenderWidgetHostViewQt(content::RenderWidgetHost* widget); | ||
236 | @@ -213,9 +215,11 @@ public: | ||
237 | virtual gfx::Point AccessibilityOriginInScreen(const gfx::Rect& bounds) const Q_DECL_OVERRIDE { return gfx::Point(); } | ||
238 | virtual void AccessibilityHitTest(const gfx::Point& point) Q_DECL_OVERRIDE { } | ||
239 | virtual void AccessibilityFatalError() Q_DECL_OVERRIDE; | ||
240 | +#ifndef QT_NO_ACCESSIBILITY | ||
241 | virtual void accessibilityActiveChanged(bool active) Q_DECL_OVERRIDE; | ||
242 | |||
243 | QAccessibleInterface *GetQtAccessible(); | ||
244 | +#endif // QT_NO_ACCESSIBILITY | ||
245 | |||
246 | void didFirstVisuallyNonEmptyLayout(); | ||
247 | |||
248 | diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp | ||
249 | index 3f223f7..e41acd0 100644 | ||
250 | --- a/src/core/web_contents_adapter.cpp | ||
251 | +++ b/src/core/web_contents_adapter.cpp | ||
252 | @@ -628,12 +628,14 @@ void WebContentsAdapter::enableInspector(bool enable) | ||
253 | ContentBrowserClientQt::Get()->enableInspector(enable); | ||
254 | } | ||
255 | |||
256 | +#ifndef QT_NO_ACCESSIBILITY | ||
257 | QAccessibleInterface *WebContentsAdapter::browserAccessible() | ||
258 | { | ||
259 | Q_D(const WebContentsAdapter); | ||
260 | RenderWidgetHostViewQt *rwhv = static_cast<RenderWidgetHostViewQt*>(d->webContents->GetRenderWidgetHostView()); | ||
261 | return rwhv ? rwhv->GetQtAccessible() : Q_NULLPTR; | ||
262 | } | ||
263 | +#endif // QT_NO_ACCESSIBILITY | ||
264 | |||
265 | void WebContentsAdapter::runJavaScript(const QString &javaScript) | ||
266 | { | ||
267 | diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h | ||
268 | index 8fd401f..df18980 100644 | ||
269 | --- a/src/core/web_contents_adapter_client.h | ||
270 | +++ b/src/core/web_contents_adapter_client.h | ||
271 | @@ -168,7 +168,9 @@ public: | ||
272 | virtual void passOnFocus(bool reverse) = 0; | ||
273 | // returns the last QObject (QWidget/QQuickItem) based object in the accessibility | ||
274 | // hierarchy before going into the BrowserAccessibility tree | ||
275 | +#ifndef QT_NO_ACCESSIBILITY | ||
276 | virtual QObject *accessibilityParentObject() = 0; | ||
277 | +#endif // QT_NO_ACCESSIBILITY | ||
278 | virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) = 0; | ||
279 | virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) = 0; | ||
280 | virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) = 0; | ||
281 | diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp | ||
282 | index 3497c16..a35cfc3 100644 | ||
283 | --- a/src/webengine/api/qquickwebengineview.cpp | ||
284 | +++ b/src/webengine/api/qquickwebengineview.cpp | ||
285 | @@ -61,16 +61,20 @@ | ||
286 | #include <QScreen> | ||
287 | #include <QStringBuilder> | ||
288 | #include <QUrl> | ||
289 | +#ifndef QT_NO_ACCESSIBILITY | ||
290 | #include <private/qquickaccessibleattached_p.h> | ||
291 | +#endif // QT_NO_ACCESSIBILITY | ||
292 | |||
293 | QT_BEGIN_NAMESPACE | ||
294 | |||
295 | +#ifndef QT_NO_ACCESSIBILITY | ||
296 | static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object) | ||
297 | { | ||
298 | if (QQuickWebEngineView *v = qobject_cast<QQuickWebEngineView*>(object)) | ||
299 | return new QQuickWebEngineViewAccessible(v); | ||
300 | return 0; | ||
301 | } | ||
302 | +#endif // QT_NO_ACCESSIBILITY | ||
303 | |||
304 | QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate() | ||
305 | : adapter(new WebContentsAdapter) | ||
306 | @@ -102,7 +106,9 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate() | ||
307 | // 1x, 2x, 3x etc assets that fit an integral number of pixels. | ||
308 | setDevicePixelRatio(qMax(1, qRound(webPixelRatio))); | ||
309 | } | ||
310 | +#ifndef QT_NO_ACCESSIBILITY | ||
311 | QAccessible::installFactory(&webAccessibleFactory); | ||
312 | +#endif // QT_NO_ACCESSIBILITY | ||
313 | } | ||
314 | |||
315 | QQuickWebEngineViewPrivate::~QQuickWebEngineViewPrivate() | ||
316 | @@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec | ||
317 | Q_EMIT e->featurePermissionRequested(securityOrigin, feature); | ||
318 | } | ||
319 | |||
320 | +#ifndef QT_NO_ACCESSIBILITY | ||
321 | QObject *QQuickWebEngineViewPrivate::accessibilityParentObject() | ||
322 | { | ||
323 | Q_Q(QQuickWebEngineView); | ||
324 | return q; | ||
325 | } | ||
326 | +#endif // QT_NO_ACCESSIBILITY | ||
327 | |||
328 | WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const | ||
329 | { | ||
330 | @@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio) | ||
331 | m_dpiScale = devicePixelRatio / screen->devicePixelRatio(); | ||
332 | } | ||
333 | |||
334 | +#ifndef QT_NO_ACCESSIBILITY | ||
335 | QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o) | ||
336 | : QAccessibleObject(o) | ||
337 | {} | ||
338 | @@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const | ||
339 | QAccessible::State s; | ||
340 | return s; | ||
341 | } | ||
342 | +#endif // QT_NO_ACCESSIBILITY | ||
343 | |||
344 | void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents) | ||
345 | { | ||
346 | @@ -497,8 +507,10 @@ QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent) | ||
347 | this->setActiveFocusOnTab(true); | ||
348 | this->setFlag(QQuickItem::ItemIsFocusScope); | ||
349 | |||
350 | +#ifndef QT_NO_ACCESSIBILITY | ||
351 | QQuickAccessibleAttached *accessible = QQuickAccessibleAttached::qmlAttachedProperties(this); | ||
352 | accessible->setRole(QAccessible::Grouping); | ||
353 | +#endif // QT_NO_ACCESSIBILITY | ||
354 | } | ||
355 | |||
356 | QQuickWebEngineView::~QQuickWebEngineView() | ||
357 | diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h | ||
358 | index 22713ee..f3ceb2c 100644 | ||
359 | --- a/src/webengine/api/qquickwebengineview_p.h | ||
360 | +++ b/src/webengine/api/qquickwebengineview_p.h | ||
361 | @@ -155,7 +155,9 @@ private: | ||
362 | friend class QQuickWebEngineViewExperimental; | ||
363 | friend class QQuickWebEngineViewExperimentalExtension; | ||
364 | friend class QQuickWebEngineNewViewRequest; | ||
365 | +#ifndef QT_NO_ACCESSIBILITY | ||
366 | friend class QQuickWebEngineViewAccessible; | ||
367 | +#endif // QT_NO_ACCESSIBILITY | ||
368 | }; | ||
369 | |||
370 | QT_END_NAMESPACE | ||
371 | diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h | ||
372 | index 6662f1f..3ab95c6 100644 | ||
373 | --- a/src/webengine/api/qquickwebengineview_p_p.h | ||
374 | +++ b/src/webengine/api/qquickwebengineview_p_p.h | ||
375 | @@ -175,7 +175,9 @@ public: | ||
376 | virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE; | ||
377 | virtual void authenticationRequired(const QUrl&, const QString&, bool, const QString&, QString*, QString*) Q_DECL_OVERRIDE { } | ||
378 | virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE; | ||
379 | +#ifndef QT_NO_ACCESSIBILITY | ||
380 | virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE; | ||
381 | +#endif // QT_NO_ACCESSIBILITY | ||
382 | virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE; | ||
383 | virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController); | ||
384 | |||
385 | @@ -202,6 +204,7 @@ private: | ||
386 | qreal m_dpiScale; | ||
387 | }; | ||
388 | |||
389 | +#ifndef QT_NO_ACCESSIBILITY | ||
390 | class QQuickWebEngineViewAccessible : public QAccessibleObject | ||
391 | { | ||
392 | public: | ||
393 | @@ -217,7 +220,7 @@ public: | ||
394 | private: | ||
395 | QQuickWebEngineView *engineView() const { return static_cast<QQuickWebEngineView*>(object()); } | ||
396 | }; | ||
397 | - | ||
398 | +#endif // QT_NO_ACCESSIBILITY | ||
399 | QT_END_NAMESPACE | ||
400 | |||
401 | QML_DECLARE_TYPE(QQuickWebEngineViewExperimental) | ||
402 | diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp | ||
403 | index 72b16f2..068c175 100644 | ||
404 | --- a/src/webenginewidgets/api/qwebenginepage.cpp | ||
405 | +++ b/src/webenginewidgets/api/qwebenginepage.cpp | ||
406 | @@ -39,6 +39,7 @@ | ||
407 | #include <QApplication> | ||
408 | #include <QAuthenticator> | ||
409 | #include <QClipboard> | ||
410 | +#include <QContextMenuEvent> | ||
411 | #include <QFileDialog> | ||
412 | #include <QIcon> | ||
413 | #include <QInputDialog> | ||
414 | @@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security | ||
415 | Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature); | ||
416 | } | ||
417 | |||
418 | +#ifndef QT_NO_ACCESSIBILITY | ||
419 | QObject *QWebEnginePagePrivate::accessibilityParentObject() | ||
420 | { | ||
421 | return view; | ||
422 | } | ||
423 | +#endif // QT_NO_ACCESSIBILITY | ||
424 | |||
425 | void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const | ||
426 | { | ||
427 | diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h | ||
428 | index 7856b82..9fd81b0 100644 | ||
429 | --- a/src/webenginewidgets/api/qwebenginepage.h | ||
430 | +++ b/src/webenginewidgets/api/qwebenginepage.h | ||
431 | @@ -258,7 +258,9 @@ private: | ||
432 | |||
433 | friend class QWebEngineView; | ||
434 | friend class QWebEngineViewPrivate; | ||
435 | +#ifndef QT_NO_ACCESSIBILITY | ||
436 | friend class QWebEngineViewAccessible; | ||
437 | +#endif // QT_NO_ACCESSIBILITY | ||
438 | }; | ||
439 | |||
440 | |||
441 | diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h | ||
442 | index 5412922..2307e7a 100644 | ||
443 | --- a/src/webenginewidgets/api/qwebenginepage_p.h | ||
444 | +++ b/src/webenginewidgets/api/qwebenginepage_p.h | ||
445 | @@ -135,7 +135,9 @@ public: | ||
446 | virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE; | ||
447 | virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE; | ||
448 | virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE; | ||
449 | +#ifndef QT_NO_ACCESSIBILITY | ||
450 | virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE; | ||
451 | +#endif // QT_NO_ACCESSIBILITY | ||
452 | virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE; | ||
453 | virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &controller) Q_DECL_OVERRIDE; | ||
454 | |||
455 | diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp | ||
456 | index 8d21989..63ac405 100644 | ||
457 | --- a/src/webenginewidgets/api/qwebengineview.cpp | ||
458 | +++ b/src/webenginewidgets/api/qwebengineview.cpp | ||
459 | @@ -85,19 +85,22 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page) | ||
460 | } | ||
461 | } | ||
462 | |||
463 | - | ||
464 | +#ifndef QT_NO_ACCESSIBILITY | ||
465 | static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object) | ||
466 | { | ||
467 | if (QWebEngineView *v = qobject_cast<QWebEngineView*>(object)) | ||
468 | return new QWebEngineViewAccessible(v); | ||
469 | return Q_NULLPTR; | ||
470 | } | ||
471 | +#endif // QT_NO_ACCESSIBILITY | ||
472 | |||
473 | QWebEngineViewPrivate::QWebEngineViewPrivate() | ||
474 | : page(0) | ||
475 | , m_pendingContextMenuEvent(false) | ||
476 | { | ||
477 | +#ifndef QT_NO_ACCESSIBILITY | ||
478 | QAccessible::installFactory(&webAccessibleFactory); | ||
479 | +#endif // QT_NO_ACCESSIBILITY | ||
480 | } | ||
481 | |||
482 | QWebEngineView::QWebEngineView(QWidget *parent) | ||
483 | @@ -274,6 +277,7 @@ void QWebEngineView::contextMenuEvent(QContextMenuEvent *event) | ||
484 | menu->popup(event->globalPos()); | ||
485 | } | ||
486 | |||
487 | +#ifndef QT_NO_ACCESSIBILITY | ||
488 | int QWebEngineViewAccessible::childCount() const | ||
489 | { | ||
490 | if (view() && child(0)) | ||
491 | @@ -294,6 +298,7 @@ int QWebEngineViewAccessible::indexOfChild(const QAccessibleInterface *c) const | ||
492 | return 0; | ||
493 | return -1; | ||
494 | } | ||
495 | +#endif // QT_NO_ACCESSIBILITY | ||
496 | |||
497 | QT_END_NAMESPACE | ||
498 | |||
499 | diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h | ||
500 | index 9db971f..e0cc3f4 100644 | ||
501 | --- a/src/webenginewidgets/api/qwebengineview_p.h | ||
502 | +++ b/src/webenginewidgets/api/qwebengineview_p.h | ||
503 | @@ -59,6 +59,7 @@ public: | ||
504 | bool m_pendingContextMenuEvent; | ||
505 | }; | ||
506 | |||
507 | +#ifndef QT_NO_ACCESSIBILITY | ||
508 | class QWebEngineViewAccessible : public QAccessibleWidget | ||
509 | { | ||
510 | public: | ||
511 | @@ -72,7 +73,7 @@ public: | ||
512 | private: | ||
513 | QWebEngineView *view() const { return static_cast<QWebEngineView*>(object()); } | ||
514 | }; | ||
515 | - | ||
516 | +#endif // QT_NO_ACCESSIBILITY | ||
517 | |||
518 | QT_END_NAMESPACE | ||
519 | |||
520 | diff --git a/tests/quicktestbrowser/quicktestbrowser.pro b/tests/quicktestbrowser/quicktestbrowser.pro | ||
521 | index ac8fe74..51ea5a2 100644 | ||
522 | --- a/tests/quicktestbrowser/quicktestbrowser.pro | ||
523 | +++ b/tests/quicktestbrowser/quicktestbrowser.pro | ||
524 | @@ -1,3 +1,5 @@ | ||
525 | +requires(contains(QT_CONFIG, accessibility)) | ||
526 | + | ||
527 | TEMPLATE = app | ||
528 | TARGET = quicktestbrowser | ||
529 | |||
530 | -- | ||
531 | 2.3.1 | ||
532 | |||
diff --git a/recipes-qt/qt5/qtwebengine_5.4.1.bb b/recipes-qt/qt5/qtwebengine_5.4.1.bb deleted file mode 100644 index 867d5bdd..00000000 --- a/recipes-qt/qt5/qtwebengine_5.4.1.bb +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "bf3ad162f85537d55310d0aef9ee4515" | ||
5 | SRC_URI[sha256sum] = "3242abcab5b5f2a80529d16cadd5003600d3f6720220d3aa38ec756e609faab0" | ||
6 | |||
7 | SRC_URI += " \ | ||
8 | file://0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch \ | ||
9 | file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \ | ||
10 | file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \ | ||
11 | file://0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch \ | ||
12 | file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \ | ||
13 | " | ||
diff --git a/recipes-qt/qt5/qtwebkit-examples_5.4.1.bb b/recipes-qt/qt5/qtwebkit-examples_5.4.1.bb deleted file mode 100644 index b3b89214..00000000 --- a/recipes-qt/qt5/qtwebkit-examples_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "783bfd27e79769f3ceeb206a4921400b" | ||
5 | SRC_URI[sha256sum] = "19187bb31c349c67f90c92df896f14f9167b982bdef5187e83fd68407826720a" | ||
diff --git a/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch b/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch deleted file mode 100644 index f1b9bdb7..00000000 --- a/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From 97d4af4ea8708829d6df276ae741c2076cb472e8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Woerner <trevor.woerner@linaro.org> | ||
3 | Date: Fri, 7 Feb 2014 04:07:17 +0100 | ||
4 | Subject: [PATCH 1/2] qtwebkit: fix QA issue (bad RPATH) | ||
5 | |||
6 | Building qtwebkit causes a QA issue such that QtWebPluginProcess and | ||
7 | QtWebProcess contain bad RPATHs which point into the build location. This fix | ||
8 | adds a patch to not include the rpath.prf which causes this problem. | ||
9 | |||
10 | Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org> | ||
11 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
12 | --- | ||
13 | Tools/qmake/mkspecs/features/unix/default_post.prf | 1 - | ||
14 | 1 file changed, 1 deletion(-) | ||
15 | |||
16 | diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf | ||
17 | index fd66af6..ef754c3 100644 | ||
18 | --- a/Tools/qmake/mkspecs/features/unix/default_post.prf | ||
19 | +++ b/Tools/qmake/mkspecs/features/unix/default_post.prf | ||
20 | @@ -61,7 +61,6 @@ linux-*g++* { | ||
21 | } | ||
22 | } | ||
23 | |||
24 | -contains(TEMPLATE, app): CONFIG += rpath | ||
25 | |||
26 | CONFIG(debug, debug|release)|force_debug_info { | ||
27 | # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase. | ||
28 | -- | ||
29 | 2.3.1 | ||
30 | |||
diff --git a/recipes-qt/qt5/qtwebkit/0002-Remove-TEXTREL-tag-in-x86.patch b/recipes-qt/qt5/qtwebkit/0002-Remove-TEXTREL-tag-in-x86.patch deleted file mode 100644 index 64bfa3e7..00000000 --- a/recipes-qt/qt5/qtwebkit/0002-Remove-TEXTREL-tag-in-x86.patch +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | From ecb13fa1c9fa45b7e307232b24331c040c88330b Mon Sep 17 00:00:00 2001 | ||
2 | From: Magnus Granberg <zorry@gentoo.org> | ||
3 | Date: Fri, 27 Feb 2015 11:55:09 +0100 | ||
4 | Subject: [PATCH 2/2] Remove TEXTREL tag in x86 | ||
5 | |||
6 | Fix textrel QA warnings when building qtwebkit for x86: | ||
7 | |||
8 | WARNING: QA Issue: ELF binary '/home/andre/rdk/rdk-master/build-vbox32/tmp/work/core2-32-rdk-linux/qtwebkit/5.4.0-r0/packages-split/qtwebkit/usr/lib/libQt5WebKit.so.5.4.0' has relocations in .text [textrel] | ||
9 | |||
10 | Patch from upstream webkit: | ||
11 | |||
12 | https://bugs.webkit.org/show_bug.cgi?id=70610 | ||
13 | |||
14 | Minor refresh required to apply cleanly to the older webkit sources used | ||
15 | by qtwebkit. Specifically, the patch needed to be modified to account | ||
16 | for PLATFORM(MAC) -> OS(DARWIN) renaming in recent webkit which is not | ||
17 | part of qtwebkit yet ( https://bugs.webkit.org/show_bug.cgi?id=99683 ). | ||
18 | |||
19 | Upstream status [webkit] : backport | ||
20 | Upstream status [qtwebkit] : unclear | ||
21 | |||
22 | Bug: https://bugs.webkit.org/show_bug.cgi?id=70610 | ||
23 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
24 | --- | ||
25 | Source/JavaScriptCore/jit/ThunkGenerators.cpp | 24 ++++++++++++++++++++++++ | ||
26 | Source/WTF/wtf/InlineASM.h | 2 ++ | ||
27 | 2 files changed, 26 insertions(+) | ||
28 | |||
29 | diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp | ||
30 | index 9684df2..8af82d8 100644 | ||
31 | --- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp | ||
32 | +++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp | ||
33 | @@ -524,6 +524,30 @@ double jsRound(double d) | ||
34 | } \ | ||
35 | static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; | ||
36 | |||
37 | +#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__) | ||
38 | +#define defineUnaryDoubleOpWrapper(function) \ | ||
39 | + asm( \ | ||
40 | + ".text\n" \ | ||
41 | + ".globl " SYMBOL_STRING(function##Thunk) "\n" \ | ||
42 | + HIDE_SYMBOL(function##Thunk) "\n" \ | ||
43 | + SYMBOL_STRING(function##Thunk) ":" "\n" \ | ||
44 | + "pushl %ebx\n" \ | ||
45 | + "subl $20, %esp\n" \ | ||
46 | + "movsd %xmm0, (%esp) \n" \ | ||
47 | + "call __x86.get_pc_thunk.bx\n" \ | ||
48 | + "addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \ | ||
49 | + "call " GLOBAL_REFERENCE(function) "\n" \ | ||
50 | + "fstpl (%esp) \n" \ | ||
51 | + "movsd (%esp), %xmm0 \n" \ | ||
52 | + "addl $20, %esp\n" \ | ||
53 | + "popl %ebx\n" \ | ||
54 | + "ret\n" \ | ||
55 | + );\ | ||
56 | + extern "C" { \ | ||
57 | + MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ | ||
58 | + } \ | ||
59 | + static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; | ||
60 | + | ||
61 | #elif CPU(X86) && COMPILER(GCC) && (PLATFORM(MAC) || OS(LINUX)) | ||
62 | #define defineUnaryDoubleOpWrapper(function) \ | ||
63 | asm( \ | ||
64 | diff --git a/Source/WTF/wtf/InlineASM.h b/Source/WTF/wtf/InlineASM.h | ||
65 | index 0a2fe78..2dc40ef 100644 | ||
66 | --- a/Source/WTF/wtf/InlineASM.h | ||
67 | +++ b/Source/WTF/wtf/InlineASM.h | ||
68 | @@ -46,6 +46,8 @@ | ||
69 | #define GLOBAL_REFERENCE(name) #name "@plt" | ||
70 | #elif CPU(X86) && COMPILER(MINGW) | ||
71 | #define GLOBAL_REFERENCE(name) "@" #name "@4" | ||
72 | +#elif OS(LINUX) && CPU(X86) && defined(__PIC__) | ||
73 | +#define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) "@plt" | ||
74 | #else | ||
75 | #define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) | ||
76 | #endif | ||
77 | -- | ||
78 | 2.3.1 | ||
79 | |||
diff --git a/recipes-qt/qt5/qtwebkit/0003-Fix-building-with-glib-2.43.patch b/recipes-qt/qt5/qtwebkit/0003-Fix-building-with-glib-2.43.patch deleted file mode 100644 index 12034704..00000000 --- a/recipes-qt/qt5/qtwebkit/0003-Fix-building-with-glib-2.43.patch +++ /dev/null | |||
@@ -1,238 +0,0 @@ | |||
1 | From ef94c178a7ba0bd43a677ec90fde334ce2c90810 Mon Sep 17 00:00:00 2001 | ||
2 | From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | ||
3 | Date: Fri, 27 Feb 2015 14:14:44 +0100 | ||
4 | Subject: [PATCH 3/3] Fix building with glib 2.43+ | ||
5 | |||
6 | The newest version of glib have introduced their own GMutexLocker | ||
7 | conflicting with the one defined in WebCore. | ||
8 | |||
9 | Task-number: QTBUG-44714 | ||
10 | Change-Id: Ibdd1646e129eaed84c65dc0d96bebe80f2a61f4b | ||
11 | Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com> | ||
12 | --- | ||
13 | .../gstreamer/WebKitWebSourceGStreamer.cpp | 48 +++++++++++----------- | ||
14 | 1 file changed, 24 insertions(+), 24 deletions(-) | ||
15 | |||
16 | diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp | ||
17 | index 5625873..a6d961f 100644 | ||
18 | --- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp | ||
19 | +++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp | ||
20 | @@ -354,7 +354,7 @@ static void webKitWebSrcSetProperty(GObject* object, guint propID, const GValue* | ||
21 | |||
22 | switch (propID) { | ||
23 | case PROP_IRADIO_MODE: { | ||
24 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
25 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
26 | priv->iradioMode = g_value_get_boolean(value); | ||
27 | break; | ||
28 | } | ||
29 | @@ -376,7 +376,7 @@ static void webKitWebSrcGetProperty(GObject* object, guint propID, GValue* value | ||
30 | WebKitWebSrc* src = WEBKIT_WEB_SRC(object); | ||
31 | WebKitWebSrcPrivate* priv = src->priv; | ||
32 | |||
33 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
34 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
35 | switch (propID) { | ||
36 | case PROP_IRADIO_MODE: | ||
37 | g_value_set_boolean(value, priv->iradioMode); | ||
38 | @@ -429,7 +429,7 @@ static gboolean webKitWebSrcStop(WebKitWebSrc* src) | ||
39 | |||
40 | ASSERT(isMainThread()); | ||
41 | |||
42 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
43 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
44 | |||
45 | bool seeking = priv->seekID; | ||
46 | |||
47 | @@ -493,7 +493,7 @@ static gboolean webKitWebSrcStart(WebKitWebSrc* src) | ||
48 | |||
49 | ASSERT(isMainThread()); | ||
50 | |||
51 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
52 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
53 | |||
54 | priv->startID = 0; | ||
55 | |||
56 | @@ -584,7 +584,7 @@ static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat | ||
57 | return ret; | ||
58 | } | ||
59 | |||
60 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
61 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
62 | switch (transition) { | ||
63 | case GST_STATE_CHANGE_READY_TO_PAUSED: | ||
64 | GST_DEBUG_OBJECT(src, "READY->PAUSED"); | ||
65 | @@ -615,7 +615,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ | ||
66 | gst_query_parse_duration(query, &format, NULL); | ||
67 | |||
68 | GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format)); | ||
69 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
70 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
71 | if (format == GST_FORMAT_BYTES && src->priv->size > 0) { | ||
72 | gst_query_set_duration(query, format, src->priv->size); | ||
73 | result = TRUE; | ||
74 | @@ -623,7 +623,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ | ||
75 | break; | ||
76 | } | ||
77 | case GST_QUERY_URI: { | ||
78 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
79 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
80 | gst_query_set_uri(query, src->priv->uri); | ||
81 | result = TRUE; | ||
82 | break; | ||
83 | @@ -668,7 +668,7 @@ static gchar* webKitWebSrcGetUri(GstURIHandler* handler) | ||
84 | WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); | ||
85 | gchar* ret; | ||
86 | |||
87 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
88 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
89 | ret = g_strdup(src->priv->uri); | ||
90 | return ret; | ||
91 | } | ||
92 | @@ -683,7 +683,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri, GEr | ||
93 | return FALSE; | ||
94 | } | ||
95 | |||
96 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
97 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
98 | |||
99 | g_free(priv->uri); | ||
100 | priv->uri = 0; | ||
101 | @@ -719,7 +719,7 @@ static const gchar* webKitWebSrcGetUri(GstURIHandler* handler) | ||
102 | WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); | ||
103 | gchar* ret; | ||
104 | |||
105 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
106 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
107 | ret = g_strdup(src->priv->uri); | ||
108 | return ret; | ||
109 | } | ||
110 | @@ -734,7 +734,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri) | ||
111 | return FALSE; | ||
112 | } | ||
113 | |||
114 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
115 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
116 | |||
117 | g_free(priv->uri); | ||
118 | priv->uri = 0; | ||
119 | @@ -772,7 +772,7 @@ static gboolean webKitWebSrcNeedDataMainCb(WebKitWebSrc* src) | ||
120 | |||
121 | ASSERT(isMainThread()); | ||
122 | |||
123 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
124 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
125 | // already stopped | ||
126 | if (!priv->needDataID) | ||
127 | return FALSE; | ||
128 | @@ -793,7 +793,7 @@ static void webKitWebSrcNeedDataCb(GstAppSrc*, guint length, gpointer userData) | ||
129 | |||
130 | GST_DEBUG_OBJECT(src, "Need more data: %u", length); | ||
131 | |||
132 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
133 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
134 | if (priv->needDataID || !priv->paused) { | ||
135 | return; | ||
136 | } | ||
137 | @@ -807,7 +807,7 @@ static gboolean webKitWebSrcEnoughDataMainCb(WebKitWebSrc* src) | ||
138 | |||
139 | ASSERT(isMainThread()); | ||
140 | |||
141 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
142 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
143 | // already stopped | ||
144 | if (!priv->enoughDataID) | ||
145 | return FALSE; | ||
146 | @@ -828,7 +828,7 @@ static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer userData) | ||
147 | |||
148 | GST_DEBUG_OBJECT(src, "Have enough data"); | ||
149 | |||
150 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
151 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
152 | if (priv->enoughDataID || priv->paused) { | ||
153 | return; | ||
154 | } | ||
155 | @@ -842,7 +842,7 @@ static gboolean webKitWebSrcSeekMainCb(WebKitWebSrc* src) | ||
156 | |||
157 | ASSERT(isMainThread()); | ||
158 | |||
159 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
160 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
161 | // already stopped | ||
162 | if (!priv->seekID) | ||
163 | return FALSE; | ||
164 | @@ -860,7 +860,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user | ||
165 | WebKitWebSrcPrivate* priv = src->priv; | ||
166 | |||
167 | GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset); | ||
168 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
169 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
170 | if (offset == priv->offset && priv->requestedOffset == priv->offset) | ||
171 | return TRUE; | ||
172 | |||
173 | @@ -879,7 +879,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user | ||
174 | void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player) | ||
175 | { | ||
176 | ASSERT(player); | ||
177 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
178 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
179 | src->priv->player = player; | ||
180 | s_cachedResourceLoader = player->cachedResourceLoader(); | ||
181 | } | ||
182 | @@ -906,7 +906,7 @@ char* StreamingClient::createReadBuffer(size_t requestedSize, size_t& actualSize | ||
183 | mapGstBuffer(buffer); | ||
184 | #endif | ||
185 | |||
186 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
187 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
188 | priv->buffer = adoptGRef(buffer); | ||
189 | locker.unlock(); | ||
190 | |||
191 | @@ -921,7 +921,7 @@ void StreamingClient::handleResponseReceived(const ResourceResponse& response) | ||
192 | |||
193 | GST_DEBUG_OBJECT(src, "Received response: %d", response.httpStatusCode()); | ||
194 | |||
195 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
196 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
197 | |||
198 | // If we seeked we need 206 == PARTIAL_CONTENT | ||
199 | if (priv->requestedOffset && response.httpStatusCode() != 206) { | ||
200 | @@ -1020,7 +1020,7 @@ void StreamingClient::handleDataReceived(const char* data, int length) | ||
201 | WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src.get()); | ||
202 | WebKitWebSrcPrivate* priv = src->priv; | ||
203 | |||
204 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
205 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
206 | |||
207 | GST_LOG_OBJECT(src, "Have %d bytes of data", priv->buffer ? getGstBufferSize(priv->buffer.get()) : length); | ||
208 | |||
209 | @@ -1074,7 +1074,7 @@ void StreamingClient::handleNotifyFinished() | ||
210 | |||
211 | GST_DEBUG_OBJECT(src, "Have EOS"); | ||
212 | |||
213 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
214 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
215 | if (!priv->seekID) { | ||
216 | locker.unlock(); | ||
217 | gst_app_src_end_of_stream(priv->appsrc); | ||
218 | @@ -1210,7 +1210,7 @@ void ResourceHandleStreamingClient::wasBlocked(ResourceHandle*) | ||
219 | |||
220 | GST_ERROR_OBJECT(src, "Request was blocked"); | ||
221 | |||
222 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
223 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
224 | uri.set(g_strdup(src->priv->uri)); | ||
225 | locker.unlock(); | ||
226 | |||
227 | @@ -1224,7 +1224,7 @@ void ResourceHandleStreamingClient::cannotShowURL(ResourceHandle*) | ||
228 | |||
229 | GST_ERROR_OBJECT(src, "Cannot show URL"); | ||
230 | |||
231 | - GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
232 | + WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); | ||
233 | uri.set(g_strdup(src->priv->uri)); | ||
234 | locker.unlock(); | ||
235 | |||
236 | -- | ||
237 | 2.3.5 | ||
238 | |||
diff --git a/recipes-qt/qt5/qtwebkit/0004-gcc5-qtbug-44829.patch b/recipes-qt/qt5/qtwebkit/0004-gcc5-qtbug-44829.patch deleted file mode 100644 index 81295d1c..00000000 --- a/recipes-qt/qt5/qtwebkit/0004-gcc5-qtbug-44829.patch +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | From 650c6ee8e76bb574d3a1bea09e2494992d8f070e Mon Sep 17 00:00:00 2001 | ||
2 | From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | ||
3 | Date: Fri, 6 Mar 2015 11:20:13 +0100 | ||
4 | Subject: Fix g++ 5.0 build | ||
5 | |||
6 | A non-inline template needs to be explicitly instantiated if used | ||
7 | outside the object where it is declared. | ||
8 | |||
9 | Patch suggested by Khem Raj. | ||
10 | |||
11 | Task-number: QTBUG-44829 | ||
12 | Change-Id: Ib0adbd9273bd1cef01e5863bc8aaa9c373022792 | ||
13 | Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com> | ||
14 | --- | ||
15 | Source/JavaScriptCore/runtime/JSObject.cpp | 5 +++++ | ||
16 | 1 file changed, 5 insertions(+) | ||
17 | |||
18 | diff --git a/Source/JavaScriptCore/runtime/JSObject.cpp b/Source/JavaScriptCore/runtime/JSObject.cpp | ||
19 | index 5637e20..bd55919 100644 | ||
20 | --- a/Source/JavaScriptCore/runtime/JSObject.cpp | ||
21 | +++ b/Source/JavaScriptCore/runtime/JSObject.cpp | ||
22 | @@ -1909,6 +1909,11 @@ void JSObject::putByIndexBeyondVectorLengthWithoutAttributes(ExecState* exec, un | ||
23 | } | ||
24 | } | ||
25 | |||
26 | +// Used in JSArray.cpp so we must instantiate explicit | ||
27 | +template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<Int32Shape>(ExecState* exec, unsigned i, JSValue value); | ||
28 | +template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<DoubleShape>(ExecState* exec, unsigned i, JSValue value); | ||
29 | +template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<ContiguousShape>(ExecState* exec, unsigned i, JSValue value); | ||
30 | + | ||
31 | void JSObject::putByIndexBeyondVectorLengthWithArrayStorage(ExecState* exec, unsigned i, JSValue value, bool shouldThrow, ArrayStorage* storage) | ||
32 | { | ||
33 | VM& vm = exec->vm(); | ||
34 | -- | ||
35 | cgit v0.11.0 | ||
36 | |||
diff --git a/recipes-qt/qt5/qtwebkit_5.4.1.bb b/recipes-qt/qt5/qtwebkit_5.4.1.bb deleted file mode 100644 index 454e4708..00000000 --- a/recipes-qt/qt5/qtwebkit_5.4.1.bb +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI += "\ | ||
5 | file://0003-Fix-building-with-glib-2.43.patch \ | ||
6 | file://0004-gcc5-qtbug-44829.patch \ | ||
7 | " | ||
8 | |||
9 | SRC_URI[md5sum] = "186627b1ea5b614811fbd0cfa9b4d073" | ||
10 | SRC_URI[sha256sum] = "6607211ef8a913dc778617bf4ba0970e34cc71e1da3abb477eabe0035e7119bf" | ||
diff --git a/recipes-qt/qt5/qtwebsockets_5.4.1.bb b/recipes-qt/qt5/qtwebsockets_5.4.1.bb deleted file mode 100644 index 33f6122c..00000000 --- a/recipes-qt/qt5/qtwebsockets_5.4.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "308e1e9126e6fab8b06616db9810973e" | ||
5 | SRC_URI[sha256sum] = "daf56f98c5e267253bd2d2e421472fc02faa1703a9063cc14cf8afce6967ab44" | ||
diff --git a/recipes-qt/qt5/qtx11extras_5.4.1.bb b/recipes-qt/qt5/qtx11extras_5.4.1.bb deleted file mode 100644 index fa9f32a5..00000000 --- a/recipes-qt/qt5/qtx11extras_5.4.1.bb +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "87d555e0c7eccaa462a9bba85fb2d4de" | ||
5 | SRC_URI[sha256sum] = "20a61cdb9f925e9ab959bed1e7aeb1855b721619d5dc5f3691b8c1ce186e8c2e" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||
12 | |||
diff --git a/recipes-qt/qt5/qtxmlpatterns_5.4.1.bb b/recipes-qt/qt5/qtxmlpatterns_5.4.1.bb deleted file mode 100644 index 583879da..00000000 --- a/recipes-qt/qt5/qtxmlpatterns_5.4.1.bb +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require qt5-${PV}.inc | ||
2 | require ${PN}.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "ec2970e9e9c38f88be74f18101937c28" | ||
5 | SRC_URI[sha256sum] = "f5142ff4d3f1154550530eddf310d2ff149c6f0055d3d028ad48cb5491c65318" | ||
6 | |||
7 | # License files in this module still contain 2014 as year | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \ | ||
9 | file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \ | ||
10 | file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ | ||
11 | file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" | ||