Commit Graph

177 Commits

Author SHA1 Message Date
Yoann Lopes
bf5c7ca718 Make tst_QMediaObject::notifySignals() less flaky
Rather than expecting a certain amount of signals to be fired within
a fixed period, check that all the required signals are emitted and
that it doesn't take longer than expected. Use a margin of error to
take into account timers firing later because of high system load.

Change-Id: I1569ce524e87efc47eb8d11066e509e5dc90f6f8
(cherry picked from commit 586abbd9732f9ccce127429fe0698c25a09ecefb)
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2016-09-20 15:10:53 +00:00
Oswald Buddenhagen
f0e0d5d901 decruft project file
the "created by qt creator" header is not supposed to be checked in.

Change-Id: I6d8c623f41c633babe5923344c915412d3d6bcd4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-05-10 11:12:21 +00:00
Marc Mutz
6569c25619 tst_qdeclarativeaudio: fix ubsan build
The test uses QDeclarativePlaylist, but no out-of-line methods or
data members, so it got by with just including the header.

But a ubsan build requires access to the class' typeinfo objects,
so add QDeclarativePlaylist's implementation to the test, too.

Change-Id: Ib6bb155b71c0082969f77a13a0e50132a782db2d
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2016-03-29 12:28:58 +00:00
Friedemann Kleint
58019c256e Fix constructor parameters in tst_QMediaPlaylist.
Fix warning:
tst_qmediaplaylist.cpp: In member function 'void tst_QMediaPlaylist::mediaPlayListControl()':
tst_qmediaplaylist.cpp:1221:49: warning: the address of 'parent' will always evaluate as 'true' [-Waddress]

Change-Id: I46391550d07a8f58442269d0e5eae418258adbff
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2016-02-26 12:30:45 +00:00
Oswald Buddenhagen
3ef3e5b101 remove redundant statements from project files
- TARGET is unnecessary if it matches the project file's basename
- CONFIG+=no_private_qt_headers_warning is added by qt_build_config.prf
- load(qt_build_config) is done by .qmake.conf

Change-Id: I3eb45a758dfee34be3c78fc13d996780741c95e9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2016-02-25 16:50:18 +00:00
Oswald Buddenhagen
c82402e158 consistently put {qt,qml}_{module,plugin} at the end of project files
this fixes static builds by ensuring that all dependencies are exported.

Task-number: QTBUG-51071
Change-Id: I8e1554b648327ea2fb342b882ce8e439bd6f271d
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2016-02-25 16:50:09 +00:00
Yoann Lopes
f69a051675 Fix tst_QVideoWidget.
Make sure the tested QVideoWidget has a valid size.
Since 7b63c45d in qtbase, native widgets are required to have a valid
size to be shown. This test relies on qWaitForWindowExposed() to work
correctly, which means the widget must be shown and thus must have
a valid size.

Change-Id: I13bc1536d788d9ba56b4dcbf0c60851b5634be9e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-18 12:43:19 +00:00
Yoann Lopes
82e135167a Change the way a playlist is bound to a media object.
The previous behavior was to simply switch from the internal
control to the service's control, discarding anything that was
added to the playlist before binding.
We now carry over the changes made to the playlist when switching
controls. This means the switch is now transparent to the user.
When the service's control is read-only, we cannot transfer the
items, which means the user must be notified of the items that
might have been "lost" during the switch.

Auto-test modified to reflect this change.

Change-Id: Ibf80b650b06425ddbaeb320b72ac5d3082a25960
Reviewed-by: Jim Hodapp <jim.hodapp@canonical.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-12-11 14:53:16 +00:00
Liang Qi
87e5e24f52 Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: I1373622a6d1fd0e2d35df2da79860a373056387f
2015-10-02 13:48:43 +02:00
Yoann Lopes
4eb4a3ada3 Fix QML Camera::supportedViewfinderFrameRateRanges().
Pass the resolution argument as a QJSValue instead of a QSize.
This allows to be more flexible and doesn't require the QML argument
to be an actual QML 'size' value. It can be any object with the
'width' and 'height' properties.

Added missing auto-tests for supportedViewfinderResolutions()
and supportedViewfinderFrameRateRanges().

Change-Id: I6c8ae72e6dab8c9d12bbada5b8e7f45e96e9289d
Task-number: QTBUG-47630
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-25 11:18:51 +00:00
Yoann Lopes
a2244c9b7a Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	src/imports/multimedia/qdeclarativeaudio.cpp

Change-Id: I57c6252b084e4ed796f6f308b2e0c717d0f59b13
2015-08-24 14:36:13 +02:00
Yoann Lopes
13e40d522f Fix QCamera viewfinder capabilities functions..
- Filtering the results for a specific pixel aspect ratio would return
  wrong values.
- Correctly sort the frame rate ranges returned by
  supportedViewfinderFrameRateRanges().

Added missing auto-tests for all viewfinder capabilities functions.

Change-Id: Idfb40d4139cc48a5996ce2ddd98131a2f5be76bb
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-18 12:58:00 +00:00
Jim Hodapp
23acd9f01d Add audio role API to QMediaPlayer.
Change-Id: Ia5e3e2fe714f10b6aad62f0a4801c607905c7e0d
Task-number: QTBUG-41054
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-10 15:12:22 +00:00
Loïc Molinari
475a14ccc3 Check and fix up bounds in QMediaPlaylist methods.
Change-Id: I665d665139dbe9663b20ecb08fa3dab9cbe3f899
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-10 11:37:44 +00:00
Frederik Gladhorn
872f0de43e Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I957b44c06fca7a3f552edc18f286de043d31e42d
2015-08-09 15:27:16 +02:00
Yoann Lopes
3c54acb6f7 Add new property to QVideoSurfaceFormat.
The 'mirrored' property indicates the QVideoFrames need to be mirrored
along their vertical axis. This is typically needed for video frames
coming from a front camera on a mobile device.

This is implemented as a string-based property. In Qt 5.6, this should
be replaced by a new public function.

Change-Id: Ideb7de81e83f66826f4efb5f2951c4beec13546b
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-07 17:35:12 +00:00
Friedemann Kleint
b7d2215332 Unit test qaudiodecoder: Do not rely on qCompare(bool, int,...).
The overload was added for NokiaX86 and RVCT and is bound for
removal.

Task-number: QTBUG-47260
Change-Id: I8eb0333e0e20323ab20f361186d9a47fd3ab9f24
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-07-17 07:19:34 +00:00
Friedemann Kleint
a26df92bac Add CONFIG += testcase to auto/unit/qaudiobuffer/qaudiobuffer.pro.
When missing, make check is an empty target, meaning the test
is never run in the CI.

Change-Id: I6f09e0f78c26b631fdfe89d2520dc0012d177843
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-05-26 11:58:24 +00:00
Yoann Lopes
63cff37741 QMediaPlayer: handle resource files in a cross-platform way.
It was the backend's responsibility to handle resource files in an
appropriate way. In practice, it was either not handled at all,
or implemented in an almost identical manner in every backend
that does handle it.
This is now dealt with in QMediaPlayer, always passing to the
backend something it will be able to play. If the backend has the
StreamPlayback capability, we pass a QFile from which it streams
the data. If it doesn't, we copy the resource to a temporary
file and pass its path to the backend.

Task-number: QTBUG-36175
Task-number: QTBUG-42263
Task-number: QTBUG-43839
Change-Id: I57b355c72692d02661baeaf74e66581ca0a0bd1d
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Peng Wu <peng.wu@intopalo.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-04-07 17:21:47 +00:00
Yoann Lopes
dbcf44247d Improve QMediaPlayer auto tests.
Use test data only for test functions that require it.

Change-Id: I7fde1ba53ee8d2f5294597fd309a6e7d7dbbe15d
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-03-04 15:50:04 +00:00
Antti Kokko
bbfccc7135 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Change-Id: I1c6faa4f59f8eca54f01ef20941fa60161dd7872
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-02-12 10:27:47 +00:00
Yoann Lopes
fe21ee675e New camera viewfinder settings API.
There already was a control interface for the viewfinder settings
but no real public C++ API and a partial QML API.

This patch adds a new C++ API and improves the QML API.

Supported viewfinder settings are resolution, minimumFrameRate,
maximumFrameRate and pixelFormat. The camera can be queried for
the supported values for each of these settings.

A new control interface was created to match the new API.

Change-Id: I289fea038fe46277a5516c956a64280da09ed985
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
2015-01-13 13:34:41 +01:00
Andrew den Exter
dc2fec1bd8 Allow supported camera locks to change after initialization.
A camera backend may not be able to report which locks it supports
until after it is loaded, so query support on demand instead of caching
the value available at construction time.

Change-Id: I56fb1adee980ebc2fa893da3c983a6dce26329c0
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2014-11-28 04:19:35 +01:00
Sergio Ahumada
41a1c16340 Merge remote-tracking branch 'origin/5.3' into 5.4
Conflicts:
	.qmake.conf

Change-Id: Iad73368a22c6d4662188e6f357a265d0c26756d0
2014-09-26 15:28:44 +02:00
Yoann Lopes
46c56ed530 Revert "QMediaNetworkPlaylistProvider: Upon error parsing, stop parsing."
This reverts commit 0ed18d846c.
The same patch was submitted in both 5.3 and 5.4 branches. It should
have been pushed only to 5.3.

Change-Id: I9e2974886190dfb2e5def5bc325c58f6e7783f55
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2014-09-17 13:11:07 +02:00
Yoann Lopes
4c5aec9bb6 Make PLS parser more permissive.
The PLS format is not clearly specified, some rules are just assumed
and files don't always respect them.
We now only look for 'File' entries, since that's the only thing we
actually use. We ignore the Version, NumberOfEntries, Title, Length
and any other unrecognized tags.

Task-number: QTBUG-40515
Change-Id: I9c176b7b68fd1441abbd50364f88994ad5d6236f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-09-10 15:15:54 +02:00
Yoann Lopes
e26483c106 Fix URL handling in PLS parser.
Make sure relative paths are resolved to a full path.

Task-number: QTBUG-40515
Change-Id: Ideb83fc3a3c4a74c84917a22e3c30162d7b6158a
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-09-09 18:06:56 +02:00
Andres Gomez
973ae5e0f6 QMediaNetworkPlaylistProvider: Upon error parsing, stop parsing.
When an error is found parsing a playlist, stop
parsing. This will also prevent the emission of
the "loaded" signal when the parser finishes.

Task-number: QTBUG-40513
Change-Id: Ia814864d0d546806219993f0b727761d5d4e7903
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-09-09 13:46:31 +02:00
Antti Kokko
2732e23887 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3 & LICENSE.GPLv2
- Removed LICENSE.GPL

Change-Id: Ied06887225df341064c12bcc14c259ae74116f2e
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
2014-08-24 17:30:13 +02:00
Robin Burchell
0ed18d846c QMediaNetworkPlaylistProvider: Upon error parsing, stop parsing.
When an error is found parsing a playlist, stop parsing. This will also prevent
the emission of the "loaded" signal when the parser finishes.

Some of the newly added testcases do not yet pass because the parser is overly
strict. These improvements are being tracked in QTBUG-40515.

Change-Id: I5c96b7eb488996f28eebd7b6c643940de8e2e0b9
Done-by: Andres Gomez <agomez@igalia.com>
Task-number: QTBUG-40513
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
2014-08-04 05:20:29 +02:00
Laszlo Agocs
66ba21971b Support dynamic opengl32 - ANGLE switching on Windows
Change-Id: I38532db3ab0ad4fcb8dbabd0cbb528f7d8e4ba06
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-07-29 12:18:37 +02:00
Yoann Lopes
888759e334 New camera selection API in QML.
Also added a new QtMultimedia global object which makes it possible
to retrieve the list of available cameras. It can be extended with
new utility functions in the future.

Includes documentation, example and auto tests.

Task-number: QTBUG-23770
Change-Id: Ifea076329c3582ea99246ee1131853344a7b773f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-07-17 18:58:00 +02:00
Andrew den Exter
1a3ae99441 Support per-plane strides and data offsets in QVideoFrame.
Since just adding a new virtual isn't binary compatible add a new derivative
type with a virtual member and connect it up through a virtual in the private
class.

[ChangeLog] Support for per-plane strides and data offsets in QVideoFrame.

Task-number: QTBUG-38345
Change-Id: I1974c2b0b454d130e17971ce549031259d61f9cd
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-07-08 13:20:54 +02:00
Frederik Gladhorn
00c072bf0e Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	tests/auto/unit/qaudioformat/tst_qaudioformat.cpp

Change-Id: I8499473569df9eac8c7069160e42ed477dacad4d
2014-04-11 14:22:22 +02:00
Yoann Lopes
a7b8872cd5 Fix some MediaPlayer properties returning wrong values.
Once the QML component is complete, don't cache any value anymore and
always ask the backend for the actual value.

Change-Id: I2c3ad55618e0532f713cfcc8258a70a1114fc975
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-04-09 14:48:49 +02:00
Dmitry Shachnev
b0c68a1a07 Add support for running on big-endian systems
Now qtmultimedia test suite passes on powerpc.

Change-Id: I540dff93195115ad1dc5725af7293e3b8540403f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-04-03 15:37:33 +02:00
Bernd Weimer
a85e55436a Fix unit tests
Random playback mode is not good for testing index changed signal,
because the same media might be played successively.
Calling show() might result in showFullScreen() on some platforms,
which is not expected by some video widget tests.

Change-Id: Ib47433fc6411b6dfa244a245aae508df5627ec62
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-04-02 18:20:55 +02:00
Yoann Lopes
c5c3ce6f9b Removed debug operator autotests.
For QVideoFrame, QAudioFormat and QVideoSurfaceFormat. There's
no point in testing the formatting of the debug operator. These
tests can break every time there's a change in QDebug's output
policy.

Change-Id: I2349b4722a428bc4c56ca58b13889790e86df4c1
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-03-26 16:35:41 +01:00
Sergio Ahumada
cd7882b760 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I42587537cadade4b3f45df18385adb760fb24430
2014-03-11 09:26:50 +01:00
Sergio Ahumada
5b52c1ebb9 tst_qcamerainfo: Fix weird symbol in license header
Change-Id: Idff0ffb96fa86dd7faa9ff9b86338c238d4edcb5
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-03-06 07:54:31 +01:00
Sergio Ahumada
d5dfef66bb Prefer to use normalised signal/slot signatures
Change-Id: I48ae4b46f7a0342a1436ba78958b057e919e3a8a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-03-03 12:12:31 +01:00
Yoann Lopes
b28ee24628 New QCameraInfo class.
The class allows to get the list of available cameras on the system as
well as getting some static information about them such as their unique
ID, display name, physical position and sensor orientation.

This makes QCamera::availableDevices() and QCamera::deviceDescription()
obsolete.

This patch contains the API, documentation and auto-tests but not the
actual implementation by each backend (except for retrieving the default
camera device).

[ChangeLog][QtMultimedia] Added new QCameraInfo class
[ChangeLog][QtMultimedia] QCamera: availableDevices() and
deviceDescription() are deprecated, use QCameraInfo instead

Change-Id: I64fd65729ab26a789468979ed5444ee90bb82cd0
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-02-28 14:10:00 +01:00
Kai Koehne
41d41ceb4a Fix autotests expecting a trailing whitespace for qDebug stream
The behavior of QDebug was fixed in qtbase. Update autotests
accordingly.

Change-Id: I0bbd1b52958c24710f877224158fa30f082941b8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-20 11:12:54 +01:00
Oswald Buddenhagen
5980bc41cf whitespace fixes
remove trailing spaces & expand tabs.

Change-Id: I05ef110abed90f13b47752760ffb4567a11a6a5e
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
2014-01-30 14:32:10 +01:00
Friedemann Kleint
deaeb676eb Fix MSVC-warning about truncation of constant in tst_qaudiobuffer.cpp.
Change-Id: If9e239be38f8d15542ab9bf3a74bccf0a43b4e69
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-01-29 10:18:42 +01:00
Friedemann Kleint
04b7e05375 Fix MSVC-warnings about unsafe bool operations in tst_qcamera.cpp.
qglobal.h(501) : warning C4804: '-' : unsafe use of type 'bool' in operation
global/qglobal.h(501) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
tst_qcamera.cpp(507) : see reference to function template instantiation 'T qAbs<bool>(const T &)' being compiled

Change-Id: Ifd467b5536a0d386f592ae339129b3ebfb7b8838
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-01-29 10:18:42 +01:00
Frederik Gladhorn
422099e8dd Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	.qmake.conf

Change-Id: Id367a610a3aefd288bfe287a3bf64606e582deb9
2014-01-17 17:20:59 +01:00
Yoann Lopes
c54018f8e2 Fix build without Qml and Quick modules.
Conditionally enable auto-tests that depend on the Quick and Qml
modules.

Task-number: QTBUG-35911
Change-Id: I8b9d304ea630093d423b48a4ebc53ef6f4280244
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-01-16 15:56:19 +01:00
Christian Strømme
4050cdf66d Fix whitespace issue in the QVideoFrame auto test.
The test was failing because it was expecting a trailing whitespace
directly after the serialization of the meta-data map.

Change-Id: I62aa022492c721d408d23a98e8a3cfa173f45e68
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-01-07 12:38:45 +01:00
Yoann Lopes
7c9ff56f2f Remove unnecessary warning in QMediaPlaylistNavigator.
Task-number: QTBUG-33862
Change-Id: Ie74e649ebb5819ccf6300492bdce2a0046b87f02
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-09 12:17:52 +02:00