Commit Graph

486 Commits

Author SHA1 Message Date
Oswald Buddenhagen
3408abef86 rely on the automatically defined QT_BUILD_*_LIB
Change-Id: I8c1c755270aa0a703103925656f7c1b555e4db1f
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2016-02-25 16:50:12 +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
Liang Qi
365e05bad8 Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: I6d88b17f44479a522d181374023648dd007112bd
2016-01-21 08:00:31 +01:00
Yoann Lopes
b4d03dc82f GStreamer: fix GstAppSrc usage.
Allow our GstAppSrc wrapper to be reconfigured with a new GstAppSrc
object. This is necessary because that object changes every time
playback is restarted, even for the same source. The consequence of
not allowing the reconfigure was that playback for a given qrc media
would only work the first time; any subsequent calls to play() would
not work since our wrapper wouldn't know about the new GstAppSrc object
and therefore wouldn't be able to produce any data.

Also improved management of the wrapper lifecycle.

Task-number: QTBUG-49531
Change-Id: I905afb6848cc7e9a563b4edc2c5875cdd7e53d21
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2016-01-19 12:26:45 +00:00
Liang Qi
02b8c7527a Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: I01940fe4f3d059fbb425492a1748e2b5d9b6804b
2016-01-19 09:50:11 +01:00
Pasi Petäjäjärvi
8d88f172b6 Fix setting state to not playing when audio error occurred
Even if QAudioOutput has finished playing audio state don't
change to stopped because QSoundEffect checks only
QAudio::IdleState as when to stop itself.

Change-Id: Iea3a4926c87ea5a7b440e62d832bbc13bcdd3b6d
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2016-01-14 10:33:54 +00:00
Christian Strømme
963a534e33 Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: Ia563cf734178b821c2aadda8b79b1f09b17de7cd
2016-01-12 15:15:37 +01:00
Topi Reinio
9a2fcd06a8 Doc: Generate separate listing of Widgets classes in the QHP
Use the new QHP selection format to separately list the members of
Qt Multimedia and Qt Multimedia Widgets modules in the table of
contents.

Change-Id: I50be80a820111834207967eada0865d212be98a8
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2016-01-12 11:17:56 +00:00
Topi Reinio
c5f5c7a5f2 Doc: Fix documentation warnings
- Fix incorrect paths passed to \example command
   - Fix resulting linking issues
   - Fix examplesinstallpath in .qdocconf
   - Remove unnecessary group definition

Change-Id: I72a437ac6d297f3c63d4f29a0e3110971d1e330f
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2016-01-08 11:47:52 +00:00
Pasi Petäjäjärvi
9f35d7763e Fix playing sound in loop if sample size is small
If sample size is smaller that current periodsize,
then playing sample multiple times in loop will fail.
Reason is data offset of sample is set out of the
bounds actual sample data size.

Change-Id: I81f580cbb8dabf89db0d61528f5f1c9489216e0c
Task-number: QTBUG-49838
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2016-01-07 11:54:43 +00:00
Kevin Funk
315a946e40 Add virtual dtor to QSGVideoNodeFactoryInterface
Makes it compile for me

Change-Id: Ib79f4c38bb165d3698a94c5d1aafee710423a907
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-22 10:22:24 +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
Venugopal Shivashankar
5916caae7a Doc: Move all doc artifacts under one project
Although the Qt Multimedia module has two submodules, a
single project is sufficient to document these submodules,
avoiding unnecessary maintenance overhead.

Change-Id: I8fab48241b5c9aba35890a8aaa28ce7154f78c45
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-07 15:44:49 +00:00
Venugopal Shivashankar
ea2f5aa0b5 Doc: Exclude outdated content using \omit command
Change-Id: Ifb30e398b57550788dab6955e3eac80949d47248
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-11-25 11:39:35 +00:00
Yoann Lopes
8aa31a38cb Fix some private headers.
- Add missing "We mean it" comment
- Add missing '_p' suffix for QtMultimediaQuick_p headers

Task-number: QTBUG-49480
Change-Id: I1fd4f8b2fdffecebaebaedaf1b78e1da62c08156
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-11-24 16:07:23 +00:00
Yoann Lopes
7221ed82d2 Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: I8e0f222f110cc23b426f2d68416f5cc3982e30f2
2015-11-20 16:21:38 +01:00
Yoann Lopes
5135ffaf2a Add qt_real_to_fraction() helper function.
Private API meant to be used by plugins whose backends expect frame
rate values represented by a ratio.
The function implementation was moved from the AVFoundation plugin
to the QtMultimedia library.

Change-Id: I555b9d5da5ca3bae88992ed03501869fb731e45f
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-11-19 11:59:25 +00:00
Yoann Lopes
7c4574a698 Support compiling with GStreamer < 0.10.32 in the camerabin plugin.
The documented minimum GStreamer version for Qt Multimedia is 0.10.24,
however, the camerabin plugin actually required 0.10.32 to compile
successfully. The reason is mainly due to the GstEncodingProfiles
API, which is used to implement the audio and video encoding settings
controls. There's no hard requirement for that API anymore and the
aforementioned controls simply don't do anything when the GStreamer
version used to compile is older than 0.10.32.
A few other GStreamer calls had to be ifdef'd or replaced in order
to compile with 0.10.24.
Note that this patch only makes sure it compiles with older versions,
running the camerabin plugin with GStreamer < 0.10.32 is currently
untested and it might not work as expected.

Task-number: QTBUG-48914
Change-Id: I4ce8e932f24a33e919e29326729e12bbae561faf
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-11-19 11:59:20 +00:00
Topi Reinio
f24362fd2a Doc: Update examplesinstallpath to include the repository name
The examplesinstallpath variable in .qdocconf files defines the path
under QT_INSTALL_EXAMPLES where examples are found.

To match the way examples are packaged in Qt 5.6, prefix the
install path with the repository name.

Task-number: QTBUG-48736
Change-Id: Idb61addec1cc8a01c31cfa05a2424a2b4ac85a91
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2015-10-21 09:51:05 +00:00
Yoann Lopes
5b3cd2f8b1 Add private API for conversion from QVideoFrame to QImage.
The Android plugin had a function to convert from NV21 to RGB32.
It's now moved to the Qt Multimedia library and it supports additional
source formats. It could be further improved with more SIMD code, it
could then become a public API.

Change-Id: Ibee349027048a263a1a7ea74dc51237f7747912c
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-10-20 12:51:17 +00:00
Yoann Lopes
ee8aca6c87 Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: Ie1e478eca1cdfd99ccd3a3c8a07aefbfa27ccbdb
2015-10-20 13:20:44 +02:00
Yoann Lopes
3d3d2a4967 GStreamer: fix compilation with version < 0.10.31.
Qt 5.4 and earlier required GStreamer 0.10.24 as minimum version.
Qt 5.5 added code that requires 0.10.31, this code is now ifdef'd
and we now support again 0.10.24.

Task-number: QTBUG-48353
Change-Id: Ie708a33c0515874b003ce26a3400475075d316ca
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-10-20 08:32:36 +00:00
Yoann Lopes
0cf41ef53f Fix signal/slot declaration in QVideoOutputOrientationHandler.
Change-Id: I03cdd677feaf06ac2d61682cab46232f983e6494
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-10-16 12:45:41 +00:00
Simon Hausmann
3727a588ee Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6 2015-10-06 18:07:28 +00:00
Friedemann Kleint
c2c7171682 Add missing "We mean it" comments to private headers.
Task-number: QTBUG-48595
Change-Id: I1370d9229b0606582cbd828de84ee2717dca3daf
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-10-06 13:32:07 +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
Friedemann Kleint
8a5f74ddf2 Add 'resourcepolicy' to MODULE_PLUGIN_TYPES of multimedia.pro.
Fix warning:
WARNING: Project ERROR: No module claims plugin type resourcepolicy
discovered when running lupdate to create the translations.

Change-Id: I9fdde3e86219164cabbfe10672899eb2984f06d2
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2015-09-03 04:33:38 +00:00
Yoann Lopes
edc415be47 Fix crash in QSoundEffect when using it from a non-GUI thread.
The internal QIODevice used as data source was not set as child of the
parent QSoundEffectPrivate. If moveToThread() was called on the
QSoundEffect, the QIODevice would still receive events on the main
thread, leading to race conditions.

Task-number: QTBUG-46359
Change-Id: I180da2fb498108b316fd9b5b5cc84376b360fa3f
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-25 14:12:04 +00:00
Yoann Lopes
3477104e0d Fix QCamera::lockStatus() documentation.
Change-Id: I1f7c063ef1e465ba658f637754b10b7af44b8373
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-24 13:05:40 +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
Friedemann Kleint
31fce88b3f Fix 2 more tr()-contexts of messages in QPlaylistFileParserPrivate.
Use QPlaylistFileParser instead of QObject.

Change-Id: I5dd4b56f7f580ca4089db67bbfabdd58ef7e2778
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-19 16:20:20 +00:00
Yoann Lopes
28a20861fd QMediaPlayer: clear current playlist on deletion.
Makes sure the current playlist is unbound when QMediaPlayer is
destroyed.

Change-Id: If25efa67bf79af0326f6125d9615165a2c7dd6bb
Reviewed-by: Jim Hodapp <jim.hodapp@canonical.com>
Reviewed-by: Loïc Molinari <loic.molinari@canonical.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-19 11:32:35 +00:00
Friedemann Kleint
aad6e64352 Fix tr()-context of messages in QPlaylistFileParserPrivate.
Use QPlaylistFileParser instead of QObject.

Change-Id: I83f6b0384fc60b356a8ae8b316d2aaa768e7ac4d
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-19 11:16:09 +00:00
Yoann Lopes
cd3d540522 GStreamer: refactored widget and window control.
Instead of always using xvimagesink as GStreamer backend for the
widget and window control (works only with X11), we now try to
pick a video sink that fits the current configuration.
It first tries a set of known video sinks that can work with
the Qt platform plugin in use. If none is available, it
dynamically picks a video sink available on the system that can be
used with our backend.

Even if the video sink is now picked in a smarter way, xcb is still
the only supported platform plugin. The reason is that it's the
only Unix plugin which can provide a valid native window handle.
Additional work is needed to support other plugins like wayland
or directfb.

Change-Id: I3843dea363d6a0b85a6cc1f2952783b743e48ac6
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-18 13:16:50 +00: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
Yoann Lopes
c9533b5aaf GStreamer: added convenience function in QGstUtils.
-> qt_gst_element_get_factory_name(GstElement *elem)

Change-Id: Icf806488b49fbcdecdd605b6316bd1ef8796a883
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-13 13:26:26 +00:00
Yoann Lopes
8ba1e65291 Fix camera plugin selection.
When requesting a camera plugin for a given device id, it should fall
back to any available plugin if that device id is not found.

Change-Id: I685294c7fdcaa72bce70178b0aae2ec92e79e107
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-08-12 14:07:21 +00:00
Christian Strømme
dc1712d4b2 Remove obsolete check in QMediaService
The macro QT_NO_MEMBER_TEMPLATES was removed eons ago.

Change-Id: Ifc4f3ac8bcf1e9b42fad5dcfb101e3446a254abc
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-12 11:34:44 +00:00
Loïc Molinari
b05e9d99c2 Bind the playlist connected to a player.
Change-Id: I3c2e00773c88f671bdffcfe8c8175330ca405d4a
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-12 09:43:53 +00:00
Yoann Lopes
6df6cacbb0 Fix qdoc warnings.
Change-Id: Ie351f33f88270186b7df0f9cd671fa4e31624231
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-08-11 13:14:28 +00:00
Yoann Lopes
b8553dae1d Doc: update qml module version to 5.5.
And remove import statements from snippets.

Change-Id: I109beabd445186f96f0750b6f23fb623c125181e
Task-number: QTBUG-47620
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-08-11 13:07:34 +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
6684b4b23b Emit mediaAboutToBeRemoved() before mediaRemoved() in QMediaPlaylist.
When a new playlist's mediaObject is set, the content is cleared and the
mediaRemoved() signal is emitted without a former
mediaAboutToBeRemoved(). This is an issue for QAbstractItemModel
implementations, like the coming QDeclarativePlaylist, which call
beginInsertRow() and endInsertRows() in the respective signal handlers.

Change-Id: I7ec512ff2736e92858df94d9479741e05162e1f0
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-10 12:13:21 +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
Loïc Molinari
414b748b23 Clean up QMediaPlayer documentation.
Change-Id: I2d744542270f283ccd8ba0160aeda7faa56b2b86
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-10 11:19:58 +00:00
Loïc Molinari
6c6d265a89 Added new playlist QML type.
Change-Id: I0788cc9719f427457ad0be9c9a5bfda00451a0c4
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-08-10 09:54:50 +00: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
Nico Vertriest
9ae70447d5 Doc: replace Mac OS X with OS X
Task-number: QTBUG-40759
Change-Id: I11b3aa74d35064371cbbbeba660114e086b16aea
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-07-15 13:57:03 +00:00
Marc Mutz
04e086e336 QCameraViewFinderSettings: add missing include
The header should not depend on indirect includes.
It uses QSize in inline functions, so include the
header.

Change-Id: I3a5fca458ded47c98b7f71749ad75660c6e049e9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-06-14 08:43:46 +00:00
Marc Mutz
3a18580e23 QAbstractVideoFilter: make ctor explicit
Change-Id: If091d751c7e164c0480b48301358833705cd4870
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-06-12 11:14:01 +00:00