platform/upstream/qtmultimedia.git
9 years agoRemove private API use from video orientation handler
Andrew Knight [Thu, 4 Dec 2014 10:53:57 +0000 (12:53 +0200)]
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>
9 years agoGStreamer: better camera device name logic.
Yoann Lopes [Thu, 4 Dec 2014 13:45:43 +0000 (14:45 +0100)]
GStreamer: better camera device name logic.

Use the device ID for QCameraInfo::description() when the driver
doesn't provide any display name.

Change-Id: Iff1f17187ecb52262412f85db04d7108fae71717
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoOpenSL ES: volume support for QAudioInput.
Yoann Lopes [Wed, 3 Dec 2014 15:28:48 +0000 (16:28 +0100)]
OpenSL ES: volume support for QAudioInput.

The OpenSL volume interface is not available for audio inputs on
Android so we apply the volume ourselves on the PCM data.

Task-number: QTBUG-42159
Change-Id: If43d8aa576bc70a925681f0db1ca8b40e71f7b29
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
9 years agoFix VideoOutput autoOrientation when switching cameras.
Yoann Lopes [Wed, 3 Dec 2014 12:10:34 +0000 (13:10 +0100)]
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>
9 years agoRemove unused private members
Thiago Macieira [Sun, 23 Nov 2014 15:23:50 +0000 (07:23 -0800)]
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>
9 years agoFix Clang warning about comparison of different signs
Thiago Macieira [Sun, 23 Nov 2014 15:34:58 +0000 (07:34 -0800)]
Fix Clang warning about comparison of different signs

Commit 4d35f66acf90e64e6c174bee9d809713d07fcd7e changed from -1 to ~0 because
ICC complained, but Clang still sees ~0 as int. So force to unsigned.

qgstappsrc.cpp:144:31: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]

Change-Id: I6b0fdf8dc5df157d8e184f22dba44660e60ca3b2
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
9 years agoMerge remote-tracking branch 'origin/5.4.0' into 5.4
Frederik Gladhorn [Fri, 21 Nov 2014 12:45:17 +0000 (13:45 +0100)]
Merge remote-tracking branch 'origin/5.4.0' into 5.4

Change-Id: Iec2c793710c95919975aa3c03144d915ca5fa84f

9 years agoFix bogus videonode plugin handling
Laszlo Agocs [Tue, 18 Nov 2014 13:07:34 +0000 (14:07 +0100)]
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>
9 years agoWinRT: Fix compilation after ANGLE update
Maurice Kalinowski [Mon, 17 Nov 2014 12:51:17 +0000 (13:51 +0100)]
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>
9 years agoCheck whether current context can be obtained when deleting textures.
Friedemann Kleint [Thu, 6 Nov 2014 15:24:57 +0000 (16:24 +0100)]
Check whether current context can be obtained when deleting textures.

Add a warning in that case.

Task-number: QTBUG-41966
Change-Id: I491ee9e13c9504040ab789951656983a736d9203
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
9 years agoOpenSL ES: improve buffer logic
Christian Strømme [Thu, 30 Oct 2014 17:29:38 +0000 (18:29 +0100)]
OpenSL ES: improve buffer logic

Don't use relaxed load and stores, we need to be stricter to avoid
problems with high frequency re-fills of the buffer. If we don't enforce
ordering we might end-up spending more time trying to acquire an open
slot in the buffer. Updating processes bytes is also moved off the
"OpenSL" thread.

Added some comments for improved readability.

Change-Id: Ie27965fc6bf4b8394081ae6419f4933522ada98e
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
9 years agoOpenSL ES: Don't store or return the adjusted volume level.
Christian Strømme [Fri, 31 Oct 2014 12:47:19 +0000 (13:47 +0100)]
OpenSL ES: Don't store or return the adjusted volume level.

According to our own docs we should always return 1.0 (MAX) volume level
if the device doesn't support setting the volume, which is the case
for OpenSL ES on Android.

Task-number: QTBUG-42159
Change-Id: I9144e9e2cd84cc80633c68c5d6fa32b8dbd0fcd5
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
9 years agoDoc: Added the missing screenshot image
Venugopal Shivashankar [Thu, 30 Oct 2014 18:57:30 +0000 (19:57 +0100)]
Doc: Added the missing screenshot image

Change-Id: Ifcef698bd735b7fe7e5f4a92984be07a01f283fb
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
9 years agoWMF plugin: Initialize member variable m_stateDirty.
Friedemann Kleint [Wed, 29 Oct 2014 09:00:56 +0000 (10:00 +0100)]
WMF plugin: Initialize member variable m_stateDirty.

Fix purify warning:
[W] UMR: Uninitialized memory read in MFPlayerControl::refreshState(void) {1 occurrence}

Task-number: QTBUG-41966
Change-Id: I1416f906dcc8c31a528ab7f09a258873fcfe9d1e
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
9 years agoAdd QT_GSTREAMER_CAMERABIN_VIDEOSRC environment variable.
Yoann Lopes [Fri, 17 Oct 2014 14:51:23 +0000 (16:51 +0200)]
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>
9 years agoDoc: Updated the \brief statements
Venu [Fri, 17 Oct 2014 14:25:41 +0000 (16:25 +0200)]
Doc: Updated the \brief statements

Most of them were unnecessarily long.

Change-Id: I8942254c2211adb268e399056435e6acc940616f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
9 years agoAndroid: Use the new findClass() method.
Christian Strømme [Mon, 29 Sep 2014 14:18:49 +0000 (16:18 +0200)]
Android: Use the new findClass() method.

Avoid local caching.

Change-Id: I1e30896da664c5a45c38c09412c16cb8ff70c5c7
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
9 years agoMerge remote-tracking branch 'origin/5.3' into 5.4
Frederik Gladhorn [Tue, 14 Oct 2014 12:05:02 +0000 (14:05 +0200)]
Merge remote-tracking branch 'origin/5.3' into 5.4

Change-Id: I716fd3acb69e424047691069cd4a781f656d0487

9 years agoGStreamer: fix QMediaRecorder::duration() when recording with a camera v5.3.99+beta1
Yoann Lopes [Thu, 2 Oct 2014 12:21:20 +0000 (14:21 +0200)]
GStreamer: fix QMediaRecorder::duration() when recording with a camera

To get the recording duration, we were using the camerabin's position,
which represents the time since it was started, not the time it's been
recording to a file.
We now retrieve the camerabin's filesink position.

Change-Id: I68eeb25d1718666288655d22deea23e25de73b90
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoAVFoundation: fix media player video rendering in QML.
Yoann Lopes [Tue, 30 Sep 2014 14:41:25 +0000 (16:41 +0200)]
AVFoundation: fix media player video rendering in QML.

The AVPlayerLayer was set on the QVideoRendererControl before its
geometry was updated, causing the renderer control to display frames
with an invalid size.

Change-Id: I90e18dce69d4b48a3d7932d44a7eab4fd443f1fb
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoQNX: Fix resetting video surface
Bernd Weimer [Wed, 24 Sep 2014 13:43:46 +0000 (15:43 +0200)]
QNX: Fix resetting video surface

If video surface object is set to 0, it must not be accessed to set a
property on it.

Task-number: QTBUG-40746
Change-Id: I1de0e5495918d3ea06706412fab15bf1af012f36
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
9 years agoWMF: Use media source only when it is initialized.
David Schulz [Thu, 25 Sep 2014 05:18:13 +0000 (07:18 +0200)]
WMF: Use media source only when it is initialized.

Change-Id: I0efcf6139d0b81194cf25383025f080f8656728c
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoWMF: Fix null ptr derefernce in MFPlayerSession.
David Schulz [Thu, 25 Sep 2014 05:15:25 +0000 (07:15 +0200)]
WMF: Fix null ptr derefernce in MFPlayerSession.

Checking the sender of the mediaSourceReady signal to prevent accessing
the incorrect source resolver.

When the source resolver has finished the asynchronous operation and
the source resolver gets recreated in the player at the same time in a
different thread the signal mediaSourceReady still gets emitted from the
old source resolver.

The player assumes that the signal was emitted from the current source
resolver and accesses the unresolved media source in the
handleMediaSourceReady slot.

Task-number: QTBUG-39980
Change-Id: Ic52f6918995aac250048d91f89c520cfea111bd0
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoAVFoundation: fix build with iOS 8.0 SDK.
Yoann Lopes [Mon, 29 Sep 2014 15:46:47 +0000 (17:46 +0200)]
AVFoundation: fix build with iOS 8.0 SDK.

Change-Id: I9d9b97ad88631ba12a289f7575ca53386e592bd1
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
9 years agoUpdated snapshots for qmlvideo example documentation
Tomi Korpipää [Fri, 26 Sep 2014 10:27:55 +0000 (13:27 +0300)]
Updated snapshots for qmlvideo example documentation

Task-number: QTBUG-36287
Change-Id: I9da63560ba92a572d6d3943cfdade0b609469ace
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
9 years agoMerge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Sergio Ahumada [Fri, 26 Sep 2014 13:44:56 +0000 (15:44 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4

9 years agoMerge remote-tracking branch 'origin/5.3' into 5.4
Sergio Ahumada [Fri, 26 Sep 2014 13:28:44 +0000 (15:28 +0200)]
Merge remote-tracking branch 'origin/5.3' into 5.4

Conflicts:
.qmake.conf

Change-Id: Iad73368a22c6d4662188e6f357a265d0c26756d0

9 years agoGStreamer: fix artist-related metadata keys.
Yoann Lopes [Mon, 22 Sep 2014 13:06:14 +0000 (15:06 +0200)]
GStreamer: fix artist-related metadata keys.

QMediaMetaData::AlbumArtist now maps to GST_TAG_ALBUM_ARTIST and
QMediaMetaData::ContributingArtist to GST_TAG_ARTIST.

Change-Id: Ifa2cb90ee8ae09beaee572ad113c05776e699432
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoGStreamer: fix QMediaPlayer metadata signals.
Yoann Lopes [Mon, 22 Sep 2014 12:03:34 +0000 (14:03 +0200)]
GStreamer: fix QMediaPlayer metadata signals.

- metaDataAvailableChanged was never emitted
- metaDataChanged was not emitted when clearing the current media

Change-Id: Ide05056450171a87aeb018be7e0bdea136341946
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoAdd metadata test for qmediaplayerbackend auto-test.
Yoann Lopes [Fri, 19 Sep 2014 10:01:08 +0000 (12:01 +0200)]
Add metadata test for qmediaplayerbackend auto-test.

Change-Id: I419496293b11b6a941af08e9709595458b7ca423
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoAndroid: fix some problems with the media player.
Yoann Lopes [Fri, 19 Sep 2014 07:53:53 +0000 (09:53 +0200)]
Android: fix some problems with the media player.

- Correctly emit positionChanged signal. One of the problems with
  this was that QMediaPlayer automatically sends periodic
  position updates while playing a media. There's no need to have
  the same logic in the backend.
- Seeking after reaching the end of the media now correctly works

Auto tests included.

Change-Id: I6d5ecbae6e05f94a8aac1a0834cf57427adf219b
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoImprove audiorecorder example.
Yoann Lopes [Wed, 24 Sep 2014 14:40:21 +0000 (16:40 +0200)]
Improve audiorecorder example.

- Show actual recording location
- Update control buttons depending on the recorder state instead of
  the status
- Create audio levels using the actual audio format from the audio
  buffers. The format from the QMediaRecorder might not always contain
  the value actually used.

Task-number: QTBUG-36154
Change-Id: I418b4472b0d984f47efb1a1813da6ef440ba9a40
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoUse QCameraInfo in camera example.
Yoann Lopes [Thu, 25 Sep 2014 15:10:08 +0000 (17:10 +0200)]
Use QCameraInfo in camera example.

To replace QCamera::availableDevices(), which is deprecated since 5.3.

Change-Id: I0b1bd6286ec78d6d26ce309d224369989d4a5063
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoQMLVideo Example visual update
Tomi Korpipää [Thu, 25 Sep 2014 09:47:01 +0000 (12:47 +0300)]
QMLVideo Example visual update

Task-number: QTBUG-36287
Change-Id: I797a995c2ccd6f6fec40fbf50f93e297ae15a9b1
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
9 years agoRemove QuickTime backend.
Yoann Lopes [Wed, 24 Sep 2014 16:26:11 +0000 (18:26 +0200)]
Remove QuickTime backend.

The backend was kept only for Mac OS X 10.6 support. AVFoundation is
used in 10.7 and later. Following the 10.6 deprecation plan, the code
is now being removed for Qt 5.4.

Change-Id: I513d00adda35f6012dda548b8d824d158efffb16
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
9 years agoAndroid: fix QMediaPlayer's state and mediaStatus signals.
Yoann Lopes [Tue, 16 Sep 2014 15:30:27 +0000 (17:30 +0200)]
Android: fix QMediaPlayer's state and mediaStatus signals.

Emit signals only after both properties are written to avoid having
incoherent values in signal handlers.

Task-number: QTBUG-40314
Change-Id: I6c8445e61cccf1a9803647329c4fa1f0e452f56d
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoWMF: fix crash on media player destruction.
Yoann Lopes [Tue, 23 Sep 2014 12:46:22 +0000 (14:46 +0200)]
WMF: fix crash on media player destruction.

A race condition could cause a frame to be presented even after the
QAbstractVideoSurface was deleted. We now check that the surface is
valid before presenting a frame.

Task-number: QTBUG-41158
Change-Id: If593469a8267583e499e781336af38d3fbf318fd
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoWMF: fix video rendering with ANGLE.
Yoann Lopes [Tue, 23 Sep 2014 14:47:17 +0000 (16:47 +0200)]
WMF: fix video rendering with ANGLE.

The format of the offscreen surface used for video rendering should be
compatible with the EGL config.

Change-Id: Ic016245ce80c2483771e620c3eed345262d03c44
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoMake the multimedia examples less verbose
Alex Blasche [Thu, 18 Sep 2014 09:33:46 +0000 (11:33 +0200)]
Make the multimedia examples less verbose

Important warnings such as missing services are still printed though.

Task-number: QTBUG-31080
Change-Id: I96fd3837c4edc58c61b97bf950b7cab05ceed014
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoRemove QtSystemInfo dependency from Multimedia examples
Alex Blasche [Thu, 18 Sep 2014 09:06:04 +0000 (11:06 +0200)]
Remove QtSystemInfo dependency from Multimedia examples

QtSystemInfo is not officially supported in Qt5 and its QML API is
currently broken. Inhibition of the screensaver is not essential
for the example anyway.

Task-number: QTBUG-31080
Change-Id: Ia2e7d8de3e2044e11e1681907e61a7207489ad1b
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoRevert "QMediaNetworkPlaylistProvider: Upon error parsing, stop parsing."
Yoann Lopes [Tue, 16 Sep 2014 14:28:12 +0000 (16:28 +0200)]
Revert "QMediaNetworkPlaylistProvider: Upon error parsing, stop parsing."

This reverts commit 0ed18d846c0b425b0c50a2fefd7cc0fc148832c2.
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>
9 years agoEnsure pre-roll frames are displayed when gstreamer backend is paused.
Andrew den Exter [Mon, 11 Aug 2014 06:51:36 +0000 (16:51 +1000)]
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>
9 years agoOpenSL ES: Be less rigid about tearing down the output device.
Christian Strømme [Wed, 10 Sep 2014 09:52:28 +0000 (11:52 +0200)]
OpenSL ES: Be less rigid about tearing down the output device.

We where very strict about tearing down the audio device. While this is
a good strategy to avoid unnecessary resource usage, it also causes
excessive re-allocations, e.g., when transiting from start to stop and
back again. This can increase latency, especially in case where a short
clip is re-played at a high frequency.
This change also decrease the chance of the player ending up in some
unknown state where it drops audio clips without any warning.

Task-number: QTBUG-40864
Change-Id: I1afad4af0622983f0f0c221d91cf794585d8cad2
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoFixed avfmediaplayersession.mm for OSX 10.10 Yosemite.
Jens Cornelis [Fri, 5 Sep 2014 09:13:16 +0000 (11:13 +0200)]
Fixed avfmediaplayersession.mm for OSX 10.10 Yosemite.

Implicit cast caused build to fail. Explicit cast builds fine.

Task-number: QTBUG-41136
Change-Id: I0147c26a0f8b8198d6ed9944311547b81a50bccb
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoRemove unused includes
Christian Strømme [Wed, 10 Sep 2014 08:49:08 +0000 (10:49 +0200)]
Remove unused includes

Change-Id: Ibbce6e9135649d5dce0522320197dbbd0a92b3b9
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoWMF: fix initializing of media player's volume.
Nodir Temirkhodjaev [Sat, 30 Aug 2014 11:41:30 +0000 (16:41 +0500)]
WMF: fix initializing of media player's volume.

According to the docs, MESessionTopologyStatus with status == MF_TOPOSTATUS_READY should be the correct place for the GetService call.

Change-Id: I7fdbedbe43b2191b35b95c7fd9c86940f58daff7
Reviewed-by: Wouter Huysentruit <wouter_huysentruit@hotmail.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoImplement encoder settings in camerabin backend.
Andrew den Exter [Thu, 17 Jul 2014 06:34:30 +0000 (06:34 +0000)]
Implement encoder settings in camerabin backend.

This is not comprehensive since different encoders have different names
and representations for many settings, but it should cover bit rate for
most encoders, and quality and encodingMode for a number of common
encoders.

Change-Id: I0ba4e70c2f234e0deaaa02bdecc0f5198122c1e9
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoWMF: fix memory leaks.
Nodir Temirkhodjaev [Fri, 5 Sep 2014 11:29:41 +0000 (16:29 +0500)]
WMF: fix memory leaks.

Release requested interfaces.

Task-number: QTBUG-32481
Change-Id: I846981f6a7a7ea77588b9322fc41e05e583bdb15
Reviewed-by: Wouter Huysentruit <wouter_huysentruit@hotmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Reviewed-by: Jeff Tranter <jtranter@ics.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
9 years agoAdd necessary includes that were indirect
Thiago Macieira [Thu, 4 Sep 2014 00:41:02 +0000 (17:41 -0700)]
Add necessary includes that were indirect

qstringlist.h no longer includes qdatastream.h

Change-Id: Iabc231741ab0d8c8edbb4f77a4c6fe45c6a98896
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoMake PLS parser more permissive.
Yoann Lopes [Thu, 28 Aug 2014 14:00:15 +0000 (16:00 +0200)]
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>
9 years agoWMF: fix start time of QAudioProbe's buffers.
Yoann Lopes [Tue, 9 Sep 2014 12:59:06 +0000 (14:59 +0200)]
WMF: fix start time of QAudioProbe's buffers.

Task-number: QTBUG-40954
Change-Id: Icd1d144dcff3a3191432722da44a263ca286dbb6
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoFix URL handling in PLS parser.
Yoann Lopes [Wed, 27 Aug 2014 14:25:40 +0000 (16:25 +0200)]
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>
9 years agoFix V4L usage.
Yoann Lopes [Tue, 9 Sep 2014 12:13:20 +0000 (14:13 +0200)]
Fix V4L usage.

ff527de0 was submitted to 5.3 while cddbe873 was submitted to 5.4.
The former's behavior was not preserved when 5.3 got merged into 5.4.

Change-Id: I7435ea30634001ae6e87c316eb8a8ab6f5e988e3
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoFix build with QT_OPENGL_DYNAMIC
Allan Sandfeld Jensen [Mon, 8 Sep 2014 15:07:51 +0000 (17:07 +0200)]
Fix build with QT_OPENGL_DYNAMIC

Change-Id: I4375a808170f3e4888101fea7a833399061a8935
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoQMediaNetworkPlaylistProvider: Upon error parsing, stop parsing.
Andres Gomez [Wed, 30 Jul 2014 14:34:16 +0000 (17:34 +0300)]
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>
9 years agoFix integer overflow in several audio plugins.
Yoann Lopes [Wed, 3 Sep 2014 12:45:50 +0000 (14:45 +0200)]
Fix integer overflow in several audio plugins.

Task-number: QTBUG-40804
Change-Id: If006cb7db319bb6fda4ce7eb4f907e897b5d9efa
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoANGLE is never available on WinCE
Laszlo Agocs [Tue, 9 Sep 2014 09:48:46 +0000 (11:48 +0200)]
ANGLE is never available on WinCE

Change-Id: I853774af533d7f4b37b4789344e531d2688f91f5
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
9 years agoQNX: Fix end of media notification
Bernd Weimer [Wed, 3 Sep 2014 11:46:36 +0000 (13:46 +0200)]
QNX: Fix end of media notification

When auto-play is on, EndOfMedia would not be emitted. This is due to
a workaround for mmrenderer, that wrongly ignored stop events.
Once media is played stop events will always have to be processed.

Change-Id: I1cfd665bb06638ee3c86807aecc51e78f9baa938
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
9 years agoMerge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Yoann Lopes [Mon, 1 Sep 2014 12:19:53 +0000 (14:19 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4

9 years agoMerge remote-tracking branch 'origin/5.3' into 5.4
Frederik Gladhorn [Thu, 28 Aug 2014 14:25:20 +0000 (16:25 +0200)]
Merge remote-tracking branch 'origin/5.3' into 5.4

Conflicts:
src/gsttools/qgstreamervideoinputdevicecontrol.cpp
src/plugins/gstreamer/camerabin/camerabinserviceplugin.cpp
src/plugins/gstreamer/mediacapture/qgstreamercaptureserviceplugin.cpp

Change-Id: Ic854589562d2deeaa0ebf75840cb8a2ee32e99de

9 years agowinrt: Add camera service
Andrew Knight [Fri, 29 Aug 2014 13:59:09 +0000 (16:59 +0300)]
winrt: Add camera service

This adds a basic camera service with viewfinder (video renderer based),
still image capture, and device selection support.

Runtime apps must set the "webcam" and "microphone" device capabilities
in order to access the hardware. This can be done by adding the following
to the .pro file:
    WINRT_MANIFEST.capabilites_device += webcam microphone

[ChangeLog] Enabled basic camera support in the winrt backend.

Change-Id: If4f963ef645d93c757ae23aec9a9c8aae122324f
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoBump version
Frederik Gladhorn [Fri, 29 Aug 2014 09:33:37 +0000 (11:33 +0200)]
Bump version

Change-Id: I123f7fd8e2f88b36a69d3d5713f3b6390db610bc

9 years agoAdded 5.3.2 change file.
Yoann Lopes [Tue, 26 Aug 2014 11:53:55 +0000 (13:53 +0200)]
Added 5.3.2 change file.

Change-Id: I865ae833267c6e91bf61e15acf1acb4292e5c3b2
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoRestore QWindowsAudio support on wince.
Bjoern Breitmeyer [Fri, 22 Aug 2014 12:59:11 +0000 (14:59 +0200)]
Restore QWindowsAudio support on wince.

Enabled Audio playback with wave device on WindowsCE again.

Change-Id: Ic7749821ef8f991a909cbeb29083219ea988f5dc
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoFix little typo in QCameraExposureControl
Samuel Gaist [Thu, 22 May 2014 12:22:49 +0000 (14:22 +0200)]
Fix little typo in QCameraExposureControl

Should not shuld

Change-Id: I97f7e6ce322dc73bc3b1775a336493d95da848a2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
9 years agoWMF: fix bufferStatus() and availablePlaybackRanges().
Yoann Lopes [Mon, 14 Jul 2014 14:44:49 +0000 (16:44 +0200)]
WMF: fix bufferStatus() and availablePlaybackRanges().

- Correctly initialize and clear PROPVARIANT structures
- Return coherent data even when the information is not available

Change-Id: I22b46f95f255cbb740a154c6296a5c3a91e64f67
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoAVFoundation: fix some controls not being correctly destroyed on iOS.
Yoann Lopes [Thu, 5 Jun 2014 13:25:55 +0000 (15:25 +0200)]
AVFoundation: fix some controls not being correctly destroyed on iOS.

This patch also makes sure AVF video layers are removed from their
parent layer when their corresponding Qt video outputs are destroyed.

Task-number: QTBUG-39385
Change-Id: I164cd0da7084f84c0473ed3e396e734acce2a22e
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
9 years agoAVFoundation: fix retrieving tracks information from live sources.
Yoann Lopes [Thu, 8 May 2014 13:22:11 +0000 (15:22 +0200)]
AVFoundation: fix retrieving tracks information from live sources.

For live sources, tracks information is available only after the
AVPlayer changed its status to AVPlayerStatusReadyToPlay. It also
seems to be available only from AVPlayerItem.tracks rather than
AVAsset.tracks.
The audioAvailableChanged() and videoAvailableChanged()
signals are now correclty emitted and the video layer is
correctly positioned for live sources.

Task-number: QTBUG-38666
Change-Id: I8ee015a6ce81694c1fc1e44c679887cf7ccb0fd6
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
9 years agoAndroid: fix retrieving metadata from assets, qrc and remote files.
Yoann Lopes [Thu, 17 Jul 2014 16:41:44 +0000 (18:41 +0200)]
Android: fix retrieving metadata from assets, qrc and remote files.

We need the same logic as for the media player: local files and assets
must be loaded with a FileDescriptor.
Because of a bug in Android API level >= 14, remote files have to be
loaded in different ways depending on the version.

Task-number: QTBUG-40274
Change-Id: I6411b959064d22219cf981a4dc8f4f26cf16f65f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
9 years agoOpenSL: Fix QAudioOutput::setNotifyInterval().
Christian Strømme [Tue, 12 Aug 2014 14:46:50 +0000 (16:46 +0200)]
OpenSL: Fix QAudioOutput::setNotifyInterval().

It was not possible to change the notify interval after calling
start().

Task-number: QTBUG-40208
Change-Id: I82a626003e3bdfe7b7fc88b2f97da492c788877e
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoAndroid: Remove api level test in qtmultimedia.pro
Christian Strømme [Thu, 14 Aug 2014 13:37:28 +0000 (15:37 +0200)]
Android: Remove api level test in qtmultimedia.pro

ANDROID_API_VERSION env. var should take precedence, if set.

Change-Id: I54325852ede27ff5c1bb19b81d3d649605607de9
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoAdd a declaration to QIODevice
Thiago Macieira [Sat, 16 Aug 2014 18:28:06 +0000 (11:28 -0700)]
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>
9 years agowinrt: Add media playback service
Andrew Knight [Thu, 21 Aug 2014 07:55:10 +0000 (10:55 +0300)]
winrt: Add media playback service

This introduces a MediaPlayer service based on the MFEngineEx API. Only
scene graph video rendering is supported at this time. The video renderer
control is abstracted in order to provide a base for future video nodes
which do not source their content from the MF engine.

[ChangeLog] Media player support was added to the winrt backend.

Change-Id: I8155a1030466ea352fad0a87d1ae97a88983760c
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoIntroducing Windows Runtime backend
Andrew Knight [Wed, 20 Aug 2014 19:14:04 +0000 (22:14 +0300)]
Introducing Windows Runtime backend

This lays the foundation for using supported APIs in Media Foundation
for the Windows Runtime family of devies. Due to the narrowing of
supported MF classes, as well as classes that are only available on
Windows 8 and newer, this backend is built as a new plugin rather than
a modification to the existing wmf plugin.

[ChangeLog] Added a new backend plugin, winrt, to support multimedia
within Windows Runtime OSes.

Change-Id: If64ac417127b7400baa5e56fe02b65f909a4dece
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoFix QSGVideoNode rendering of rgb frames with padding.
Daniele E. Domenichelli [Tue, 12 Aug 2014 13:07:23 +0000 (15:07 +0200)]
Fix QSGVideoNode rendering of rgb frames with padding.

Change-Id: I6870cfa51b01b648494e2068be06e52b67403739
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoUpdate license headers and add new license files
Antti Kokko [Thu, 21 Aug 2014 12:10:17 +0000 (15:10 +0300)]
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>
9 years agoCoreAudioOutput use timeout when waiting for render thread
Dyami Caliri [Tue, 22 Jul 2014 18:19:14 +0000 (11:19 -0700)]
CoreAudioOutput use timeout when waiting for render thread

On Snow Leopard (at least), changing the default audio device while
audio is playing can cause CoreAudioOutput to freeze in
audioThreadStop(). It seems that the OS stops calling renderCallback
when the device changes, so audioThreadStop() waits forever.

Change-Id: If7244cc50f12295ff91a979ef50e3bee1273affd
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
9 years agoDetect V4L availability
Lisandro Damián Nicanor Pérez Meyer [Thu, 10 Jul 2014 22:19:37 +0000 (19:19 -0300)]
Detect V4L availability

Do not build related stuff if not found.
Makes GStreamer support available on Hurd.

Task-number: QTBUG-39762
Change-Id: I1f70b6975e5bef99ab2441aac4d90508bc8b64bd
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
9 years agoImprove Magnify and Ripple effects on video shader example
Niels Weber [Mon, 5 May 2014 14:16:05 +0000 (16:16 +0200)]
Improve Magnify and Ripple effects on video shader example

Re-enable Magnify shader.
Use correct coordinates for Magnify and Ripple shader.

Task-number: QTBUG-38121
Change-Id: Ie8d962ba841d074c9ebcf3b86f948848ad6a1812
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
9 years agoSet volume only if volume was explicitly set.
Robin Burchell [Tue, 22 Jul 2014 16:24:41 +0000 (18:24 +0200)]
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>
9 years agoResource policy support for QSoundEffect.
Robin Burchell [Tue, 22 Jul 2014 16:24:33 +0000 (18:24 +0200)]
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>
9 years agoOnly call pa_cvolme set on stream creation if volume explicitly set.
Robin Burchell [Tue, 22 Jul 2014 16:24:22 +0000 (18:24 +0200)]
Only call pa_cvolme set on stream creation if volume explicitly set.

Streams without a custom volume set use suitable volume selected
by the PulseAudio server. This is usually the correct choice, since then
stream-restore module can apply old volume to the stream. Also with
Sailfish explicitly setting the volume to streams breaks system volume.

Change-Id: I75f5bf4e7aaafb4bd55510f5ac4ddf03767d494b
Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com>
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoImplement more full resource policy features.
Robin Burchell [Tue, 22 Jul 2014 16:23:47 +0000 (18:23 +0200)]
Implement more full resource policy features.

 * Handle released by manager properly.

Signal resourcesReleasedByManager is different from signal
handleResourcesLost and needs to be handled separately.
Signal handleResourcesLost means some other client has acquired the
resources, thus the resources are lost from us, but if the other client
frees the resources, we will automatically get the resources back.
With resourcesReleasedByManager we lose the resources, and resource
manager releases them as well (same as if client would call release()),
so only way to re-acquire resources in latter case is calling acquire()
again.

This distinction is useful for example in cases where user is listening
to music with headphones connected and removes the headphones, then the
music player shouldn't continue playback until user requests so. But if
user is listening to music when phone call is received, it is convenient
to resume the playback automatically after the call.

 * Implement availability changed.

Availability changed is information whether resources the client is
interested in are available (no higher priority resource classes have
acquired the resources).

 * Implement missing resources released.

Emit resourcesReleased signal when receiving corresponding signal from
libresource-qt.

 * Add mechanism to change used resource class.

Check for environment for special variable, and if the variable has
proper data, use that as the resource class. Can be set with for example
qputenv("NEMO_RESOURCE_CLASS_OVERRIDE", "game");

Change-Id: I8e92f40cc5c01b6b94f54c3fa0f7a07775e87df0
Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com>
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
9 years agoQMediaNetworkPlaylistProvider: Upon error parsing, stop parsing.
Robin Burchell [Thu, 31 Jul 2014 10:49:16 +0000 (12:49 +0200)]
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>
9 years agoFix build with Mesa EGL
Thiago Macieira [Wed, 30 Jul 2014 05:14:16 +0000 (22:14 -0700)]
Fix build with Mesa EGL

Mesa EGL headers include X11 headers, which may #define Bool.

Change-Id: I17379c24bfb7bac809b92f4c2a41298de00a972c
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
10 years agoMerge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev
Frederik Gladhorn [Tue, 29 Jul 2014 11:01:05 +0000 (13:01 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev

10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Tue, 29 Jul 2014 10:50:59 +0000 (12:50 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Change-Id: I6091afdf3d4ab71462dc42ef29e001ccd8ca627b

10 years agoSupport dynamic opengl32 - ANGLE switching on Windows
Laszlo Agocs [Wed, 5 Feb 2014 14:54:36 +0000 (15:54 +0100)]
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>
10 years agoAdd missing registration of CameraViewfinder QML type.
Yoann Lopes [Tue, 22 Jul 2014 13:44:54 +0000 (15:44 +0200)]
Add missing registration of CameraViewfinder QML type.

Change-Id: If4eedd6298731953a3f86c86f0e61b850ee263aa
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
10 years agoEnsure the system libraries are linked against when -no-opengl is used
Andy Shaw [Thu, 24 Jul 2014 11:50:45 +0000 (13:50 +0200)]
Ensure the system libraries are linked against when -no-opengl is used

Task-number: QTBUG-40406
Change-Id: I1e166a5003f524cdeb4a53d78a382a6b11719b6a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Tue, 22 Jul 2014 18:23:12 +0000 (20:23 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Change-Id: If8e5050901a320f1ff692e842f173c0062bed5fe

10 years agoAdd an EGLImageKHR video node.
Andrew den Exter [Thu, 17 Apr 2014 12:50:13 +0000 (22:50 +1000)]
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>
10 years agoNew camera selection API in QML.
Yoann Lopes [Mon, 10 Feb 2014 18:33:51 +0000 (19:33 +0100)]
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>
10 years agoCoreAudio: make sure audio stops playing when the device is muted.
Yoann Lopes [Wed, 21 May 2014 11:40:42 +0000 (13:40 +0200)]
CoreAudio: make sure audio stops playing when the device is muted.

The audio session's category was set to Playback, which implies that
audio is still audible even after setting the device to silent mode or
locking the screen. This shouldn't be the default behavior.
We now set it to Ambient, which preserves mixing with other apps
but makes sure sound is turned off when it should.

Task-number: QTBUG-39036
Change-Id: Ic36668d73f3179dc38b41023e380e15f8c8517e0
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
10 years agoAndroid: Make sure we check and clear exceptions from the camera.
Christian Strømme [Thu, 10 Jul 2014 14:56:23 +0000 (16:56 +0200)]
Android: Make sure we check and clear exceptions from the camera.

In several places we where ignoring the fact that we might get an
exception from the camera code on Android. Failing to clear them will
cause the application to to terminate.

Task-number: QTBUG-39425
Change-Id: Idfe40e1749f54d551d37dae25912d9ddbc3da01e
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
10 years agoProvide face and orientation info from gstreamer camera backend.
Andrew den Exter [Tue, 8 Jul 2014 05:56:05 +0000 (15:56 +1000)]
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>
10 years agoDirectShow: Refactor camera backend.
Yoann Lopes [Mon, 7 Apr 2014 12:24:51 +0000 (14:24 +0200)]
DirectShow: Refactor camera backend.

Almost entire rewrite of the camera backend. It doesn't provide new
features but is more stable and behave as it should.

- Correctly report camera state and status
- Correctly report if the camera is ready to capture
- Emit imageExposed() signal
- Save captured images in an appropriate directory
- Images can be captured even without a viewport
- Better error handling

Removed the custom QVideoWidgetControl as it doesn't provide anything more
than the QVideoWidget's renderer control fallback.

Task-number: QTBUG-33782
Change-Id: I9baf6f83e7c69619f20a101921f7865a1c90d5e4
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
10 years agoAndroid: fix setting camera parameters from QML.
Yoann Lopes [Tue, 10 Jun 2014 15:34:42 +0000 (17:34 +0200)]
Android: fix setting camera parameters from QML.

We were ignoring new parameter values when the camera was not loaded.
All QML properties that were set at initialization time were therefore
ignored since the camera is not loaded at that point.
We now store all camera parameters and apply them once the camera is
loaded.

Task-number: QTBUG-39307
Change-Id: If66d768941c25cede2aea1b48fb928c4735c10f8
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
10 years agoAVFoundation: correctly pass output URLs to AVCaptureMovieFileOutput.
Yoann Lopes [Fri, 9 May 2014 15:21:29 +0000 (17:21 +0200)]
AVFoundation: correctly pass output URLs to AVCaptureMovieFileOutput.

The URL string passed to NSURL was not fully encoded, causing the
recorder to start with a nil URL, leading to an exception.
We now use QURL::toNSURL() which automatically encode the URL.

Task-number: QTBUG-38668
Change-Id: I06bf881a0a25fb37efd8784ebf518c8b90ecc6b4
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
10 years agoPulseAudio: make plugin more robust.
Yoann Lopes [Thu, 12 Jun 2014 16:48:15 +0000 (18:48 +0200)]
PulseAudio: make plugin more robust.

Handle more thoroughly error cases, such as when the PulseAudio daemon
does not respond or terminates while QAudioInput/QAudioOutput is
active, in which cases it used to crash or hang.

We now correctly emit the error signal and change the state when errors
occur.

Task-number: QTBUG-29742
Change-Id: I173d35aece60d96e578785e1522cf78b24dcb8b8
Reviewed-by: Christian Stromme <christian.stromme@digia.com>