Commit Graph

407 Commits

Author SHA1 Message Date
Yoann Lopes
af2d5a181c Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	.qmake.conf
	src/plugins/gstreamer/camerabin/camerabinsession.cpp

Change-Id: I66a6f3efc5391013934b6b321073c31f25e1de26
2015-01-19 14:45:09 +01: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
Laszlo Agocs
03593d86b8 Support byte ordered QImage formats in pixelFormatFromImageFormat
For QVideoFrame purposes they are equivalent.

Change-Id: I776c60aa8ca848e58499bbd0c1fc25c457d46ef6
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-01-09 11:32:33 +01:00
Frederik Gladhorn
47698fc57f Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	.qmake.conf

Change-Id: I31e377cdccf8bf5c1ea8143faf2001ac99608c27
2014-12-17 16:53:41 +01:00
Andrew Knight
085362ab0f Remove private API use from video orientation handler
The QPA header isn't needed anymore, as nativeOrientation was added as
a QScreen property in 5.2.

Change-Id: I7cd00feae769175fd0c4be65b503e74ee910814a
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2014-12-11 16:13:47 +01:00
Yoann Lopes
3443517265 Fix VideoOutput autoOrientation when switching cameras.
The VideoOutput's camera info was not updated when switching cameras.

Change-Id: I23537ce98b08009898eaa26ef14d5b9a746ab5f7
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
2014-12-03 14:27:35 +01:00
Andrew den Exter
4bdf1561f4 Add additional exposure modes to QCameraExposure.
[ChangeLog][GStreamer][Android] Camera exposure mode extended to support
Action, Landscape, NightPortrait, Theatre, Sunset, SteadyPhoto,
Fireworks, Party, Candlelight, and Barcode modes.

Change-Id: I13d4bb042d27c0bd2ffcd369882b56bbabc84335
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2014-11-28 16:41:30 +01:00
Andrew den Exter
25ad679c25 Add a color filter property to QCameraImageProcessing.
[ChangeLog] New color filter property for QCameraImageProcessing.

Change-Id: I999e349e3e4f284b533fa62ba50903fbd21cb400
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2014-11-28 06:08:11 +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
Yoann Lopes
108dda7a90 GStreamer: port to 1.0.
0.10 is still used by default.
To enable GStreamer 1.0, pass GST_VERSION=1.0 to qmake
for qtmultimedia.pro.

Contributions from:
Andrew den Exter <andrew.den.exter@qinetic.com.au>
Ilya Smelykh <ilya@videoexpertsgroup.com>
Jim Hodapp <jim.hodapp@canonical.com>
Sergio Schvezov <sergio.schvezov@canonical.com>

Change-Id: I72a46d1170a8794a149bdb5e20767afcc5b7587c
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
2014-11-27 23:30:05 +01:00
Thiago Macieira
59f2bf1864 Remove unused private members
One is not used, the others are not even initialized, so don't use the
memory.

qsoundeffect_pulse_p.h:172:20: warning: private field 'm_resourceStatus' is not used [-Wunused-private-field]
qvideowidget_p.h:211:25: warning: private field 'm_aspectRatioMode' is not used [-Wunused-private-field]
qalsaaudioinput.h:156:22: warning: private field 'timestamp' is not used [-Wunused-private-field]
qalsaaudiooutput.h:135:22: warning: private field 'timestamp' is not used [-Wunused-private-field]

Change-Id: I7c9f50d57c4d29ee0dfd7dc086771d721cdb5b05
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2014-11-25 09:49:24 +01:00
Laszlo Agocs
96407d8d89 Fix bogus videonode plugin handling
Each plugin must provide its own unique key. Otherwise we will only ever
see one single plugin.

Right now running on i.MX6 is often broken because the imx6 videonode plugin is
not picked up since only the egl one is seen by the system. With the fix both plugins
provide their own unique key so both become visible.

Additionally, introduce a QT_VIDEONODE environment variable. This is useful to specify
which plugin to use. This is necessary in case multiple custom videonode plugins support
the same formats.

Change-Id: Iaa1988f8436dcb938cb9a95e2e0d68a4e92e113c
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2014-11-18 18:09:09 +01:00
Maurice Kalinowski
b369746ae7 WinRT: Fix compilation after ANGLE update
Header inclusion is not needed, hence remove it for WinRT.

Change-Id: I8117439849143975cad3dc14e36118b8da4621de
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2014-11-17 15:58:59 +01:00
Yoann Lopes
deb13f102a Add QT_GSTREAMER_CAMERABIN_VIDEOSRC environment variable.
It can be used to set which video source element should be used by
the camerabin.

Change-Id: I8d1cd8c4ba6fe5a89817699f645b0997e713aaca
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-10-30 12:57:15 +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
Andrew den Exter
3b20608fe3 Ensure pre-roll frames are displayed when gstreamer backend is paused.
Perform a seek before transitioning from the stopped state to paused or
playing to force the pipeline to resupply the video sink with any
pre-roll buffer it may have previously ignored during loading.  And
don't assume showPrerollFrames to be true if the current state is not
stopped as the policy handling may have prevented an effectual state
change.

Change-Id: I288a70bc4da32f3534eab4b14702ca8f8fdb4222
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-09-12 14:32:42 +02:00
Christian Strømme
e195b7fc05 Remove unused includes
Change-Id: Ibbce6e9135649d5dce0522320197dbbd0a92b3b9
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-09-11 15:09:15 +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
Laszlo Agocs
d00ad751bd ANGLE is never available on WinCE
Change-Id: I853774af533d7f4b37b4789344e531d2688f91f5
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-09-09 12:10:01 +02:00
Samuel Gaist
80ba1d635d Fix little typo in QCameraExposureControl
Should not shuld

Change-Id: I97f7e6ce322dc73bc3b1775a336493d95da848a2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-08-26 15:30:12 +02:00
Thiago Macieira
2205ae322b Add a declaration to QIODevice
It isn't getting #included nor forward-declared at this point. That was
only an indirect inclusion.

qaudiosystem.h:78:24: error: ‘QIODevice’ has not been declared

Change-Id: I5b9121b693bb06414638e8a4664115597da7466f
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-08-25 16:21:16 +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
9be98e09bc Set volume only if volume was explicitly set.
Change-Id: I0d5abab0ffbf61a74c59ce240fd39e756479026b
Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com>
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
2014-08-04 20:38:45 +02:00
Robin Burchell
e316aa6491 Resource policy support for QSoundEffect.
Since sound effects are something short and mixed with other audio, do
not acquire resources explicitly. Follow the resources availability
information to determine when it is ok to play the sound effects.

When client has registered itself to resource manager, client's streams
are classified properly. If no higher priority client has acquired the
resources, isAvailable() is true, and sound effects can be played. We
do not explicitly acquire the resources, since then other clients with
the same resource class would lose the resources, thus not possible to
have second client play music with QMediaPlayer class while our client
would just want to play simple sound effects.

Change-Id: Ib5589349dca6900a8bee616b8ad77e7cb5ec9533
Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com>
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
2014-08-04 20:38:40 +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
Andrew den Exter
39c2694414 Add an EGLImageKHR video node.
[ChangeLog] Added a VideoNode plugin which allows direct rendering of
EGLImageKHR backed video frames.

Change-Id: I36fb6fd27680dbe9c71a446bbd54df95488725f8
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-07-18 16:03:52 +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
cddbe8736d Provide face and orientation info from gstreamer camera backend.
Cleans up duplicate device enumeration code so the devices listed by
the QMediaServiceProviderPlugin are the same as those in the
QVideoInputDeviceControl and includes face and orientation information
if available.

Change-Id: Iaa4c303c973bcf3e0f7c8c2fd7a7de629bccec86
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-07-12 02:46:10 +02:00
Frederik Gladhorn
074bd6ab37 Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: I38ebcb3da0e4d2acc9e7108c9579ea98323864e0
2014-07-10 10:14:36 +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
Jerome Pasion
6048450ed7 Doc: Removing url variable from qdocconf file.
-url inherited from the url variable set in qtbase/doc/global

Change-Id: I5761a583cc1242f31f1beece7da2236c47e3a9bd
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-07-07 11:46:41 +02:00
Nico Vertriest
c9b4793350 Doc: link errors
Task-number: QTBUG-34749
Change-Id: I1d107a8700e03ac550fd6611d80a985a36558b22
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-07-01 13:10:14 +02:00
Sergio Ahumada
d691f5ca2b Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	.qmake.conf

Change-Id: Iecd8d7b94e52a8981526b12cffa40e99870ba62f
2014-06-14 21:59:24 +02:00
Topi Reinio
d415d3256d Doc: Fix qmlclass selector used in documentation config
A recent change (46959875) in qdoc raised QML types from
subnodes to top-level nodes. This change modifies the
documentation configuration file(s) accordingly.

Change-Id: Ie7d09a6d076a044133a8324fa5a5e28c32e7b7a6
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-06-11 19:57:44 +02:00
Yoann Lopes
d71aaca893 Improve default audio plugin selection.
When no audio plugin is marked as default, use the first plugin
available.

Change-Id: Ide8db0fe55f43c4881c24505c1e2821b0fc176f6
Reviewed-by: Dyami Caliri <dyami@dragonframe.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-06-05 11:42:16 +02:00
Topi Reinio
cb6b4e2079 Doc: Remove comment about preliminary API for Qt 5.0
Task-number: QTBUG-39195
Change-Id: I193321a29d06760e4ad5aa2eaca99d98b2e1f65a
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-06-05 09:48:33 +02:00
Yoann Lopes
efa4628e74 Use Q_CONSTRUCTOR_FUNCTION macro to register multimedia meta types.
Task-number: QTBUG-39131
Change-Id: I2493c9e3e6f0065d0441a74ff240d7d91fbe059c
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-05-30 14:47:54 +02:00
Yoann Lopes
9cf77e3bb5 Improve documentation for the QMediaPlayer::bufferStatus property.
The corresponding properties in the Audio and MediaPlayer QML elements
are also updated.

Change-Id: I7104d274d431e7712db2f045c375756e8c2ac03a
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-05-15 12:41:44 +02:00
Yoann Lopes
364258abfc PLS parser: Don't translate entries.
Each entry in a PLS file uses the keywords 'File', 'Title' and 'Length'
in English, it should not be translated to the user's locale...

Task-number: QTBUG-38755
Change-Id: Ibd5bee18a856b3ebc1fdb177241db7a39b65d264
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-05-09 19:48:53 +02:00
Yoann Lopes
5339aed040 Moved QMediaStorageLocation out of the Android plugin.
It's now a private API in the QtMultimedia library in order to be
accessible in other plugins.

Change-Id: I63541de1e8c540cebc210f9037646ce74d866c6f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-05-09 16:33:12 +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
Oswald Buddenhagen
2d94b598d9 make MODULE_PLUGIN_TYPES assignment actually have an effect
it must be done before load()ing qt_plugin.prf.

Change-Id: I0ad31f8d9761b2d059d656c9e4f674c8a7cc88a6
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-04-07 11:51:39 +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
Sergio Ahumada
b6970e2e79 Doc: Fix some documentation warnings
- Can't link to 'QSlider'
- Can't link to 'QImage'

Change-Id: Ifa1a27ca5224959d6dbb4c0055a56114740469f0
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-04-01 10:55:48 +02:00
Yoann Lopes
609d5c681b Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-03-26 19:15:39 +01: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