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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
Frederik Gladhorn [Thu, 10 Jul 2014 08:14:36 +0000 (10:14 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: I38ebcb3da0e4d2acc9e7108c9579ea98323864e0
Andrew den Exter [Mon, 10 Feb 2014 03:25:39 +0000 (13:25 +1000)]
Implement customFocusPoint in camerabin backend.
Send a regions-of-interest event containing a rectangle surrounding the
focus point to the camera source when the camera's focusPointMode
is QCameraFocus::CustomFocusPoint. Reset the regions-of-interest if the
focusPointMode changes to any other value.
[ChangeLog][GStreamer] Implement customFocusPoint in camerabin backend.
Change-Id: If75405733b18d476dff5467abae3f08271caf06a
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Andrew den Exter [Thu, 17 Apr 2014 12:53:53 +0000 (22:53 +1000)]
Add QML accessors for camera viewfinder properties.
[ChangeLog] Added QML accessors for camera viewfinder properties.
Change-Id: I05a2a6c552aa8606e8dc31a11d1cfdedf66c554f
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Yoann Lopes [Wed, 2 Jul 2014 15:59:19 +0000 (17:59 +0200)]
Fix documentation for QML Camera's cameraStateChanged signal.
The signal name is 'cameraStateChanged' but was documented as
'stateChanged'.
Change-Id: I80279613b55105a925acafc21f67c4a0917906af
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Yoann Lopes [Thu, 12 Jun 2014 16:57:54 +0000 (18:57 +0200)]
Fix AudioOutput example when no audio devices are available.
Don't try to generate audio data with an invalid QAudioFormat, which
can happen when no audio devices are available.
Change-Id: I4de82dbf64def55fee21cf63ef99888a8084bd95
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Andrew den Exter [Sat, 12 Apr 2014 03:12:52 +0000 (13:12 +1000)]
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>
Andrew den Exter [Thu, 23 Jan 2014 07:02:59 +0000 (07:02 +0000)]
Add meta-data accessors to the QML Camera type.
Add write accessors to the properties of QDeclarativeMediaMetaData as
well as additional properties for previously unmapped image keys and
add a metaData property exposing this to QDeclarativeCamera.
[ChangeLog] New metaData property for the QML Camera type.
Change-Id: I4456b7b6120842f7ad9a1b175e42b9fb332adf13
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Thiago Macieira [Fri, 27 Jun 2014 03:40:05 +0000 (20:40 -0700)]
Fix change-of-sign warning
qgstappsrc.cpp(54): warning #68: integer conversion resulted in a change of sign
Change-Id: I0bf8c93cb5e27114a8857dc650ac506152607491
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Jerome Pasion [Fri, 4 Jul 2014 12:46:01 +0000 (14:46 +0200)]
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>
Dyami Caliri [Tue, 17 Jun 2014 14:45:34 +0000 (07:45 -0700)]
QAlsaAudioOutput remove async callback.
The async callback mechanism in ALSA is prone to deadlock.
There was already a timer fallback mechanism that appears to be
sufficient.
Task-number: QTBUG-39677
Change-Id: I44b59e6b16eea1c9c4eeb6967335ce4f468cf3c4
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Dyami Caliri [Wed, 18 Jun 2014 15:44:33 +0000 (08:44 -0700)]
QAlsaAudioInput remove unused async_handler member.
The member 'ahandler' was not used and will not be used. Removing to
avoid confusion.
Change-Id: I35f3659a650f109c564c6308573a211f324e5411
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Yoann Lopes [Tue, 1 Jul 2014 10:34:58 +0000 (12:34 +0200)]
GStreamer: correctly handle URLs from QMediaRecorder::setOutputLocation
Task-number: QTBUG-39949
Change-Id: Idf575b126bd3531655c8abda55c9e04149a4fb85
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Yoann Lopes [Tue, 17 Jun 2014 12:28:20 +0000 (14:28 +0200)]
GStreamer: fix looping a media when it's loaded from qrc.
When playing a media for the second time, the backend resets the
the media by calling setMedia() with the same value.
The problem is that setMedia() clears the previous media, which is
a QFile in this case and is the one we are trying to set again...
The QFile was deleted, causing the current media to be a dangling
pointer.
Change-Id: I6854b40212fd084d1e31e756a040a02ad103b7ba
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Nico Vertriest [Fri, 27 Jun 2014 12:49:13 +0000 (14:49 +0200)]
Doc: link errors
Task-number: QTBUG-34749
Change-Id: I1d107a8700e03ac550fd6611d80a985a36558b22
Reviewed-by: Martin Smith <martin.smith@digia.com>
Kai Koehne [Mon, 30 Jun 2014 09:58:46 +0000 (11:58 +0200)]
Fix compilation with -no-opengl
Change-Id: Ib8f39dcea58018f076d6a3fa733303958c707f1a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Yoann Lopes [Tue, 24 Jun 2014 15:08:03 +0000 (17:08 +0200)]
Android: fix crash when stopping the camera while a recording is active
When unloading the camera, any active recording is automatically
stopped, which in turn triggers the viewfinder to be restarted...
We don't try anymore to restart the viewfinder after stopping recording
unless the camera is still active.
Change-Id: I77e4e3fc8d7116ac660d8bb23f6c400ebed4ffed
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Yoann Lopes [Tue, 24 Jun 2014 15:04:48 +0000 (17:04 +0200)]
Android: fix registering recorded videos with the Android media scanner
Change-Id: I6dfc4e13b8a0bccb1bcfead728f7e1ddb7b58bb4
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Yoann Lopes [Fri, 20 Jun 2014 08:56:59 +0000 (10:56 +0200)]
Android: correctly update camera focus zones.
When setting a null custom focus point, we were correctly resetting
the focus zones but we were not emitting the focusZonesChanged signal,
causing the QML Camera to not update its focus zones.
Change-Id: I59940c4cd2979fa08dc26566dc0f6d19e503f64f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Frederik Gladhorn [Thu, 26 Jun 2014 15:25:12 +0000 (17:25 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
.qmake.conf
Change-Id: Ic2b4c2bf7b985c97d75d70980413da4f569f207a
Andrew den Exter [Wed, 25 Jun 2014 08:41:00 +0000 (18:41 +1000)]
Fix stuttering with RTSP streams.
Set the rtspsrc buffer-mode to 'slave' which is the default in
gstreamer 1.0 and doesn't cause the stuttering apparent with
the default buffer mode.
Change-Id: I4241fbe638c176ad93f441a3f76a1041ef1cb6bb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Frederik Gladhorn [Wed, 25 Jun 2014 08:26:32 +0000 (10:26 +0200)]
Merge remote-tracking branch 'origin/5.3.1' into 5.3
Change-Id: I6abb3fad4e03323919a9ee4dad62082784ac6160
Yoann Lopes [Fri, 13 Jun 2014 14:55:06 +0000 (16:55 +0200)]
Enable both PulseAudio and Alsa plugins on Linux.
It was previously only one or the other, and all Qt packages for linux
were only including the PulseAudio backend.
Now, both will be included; if PulseAudio is available it will be used
by default, otherwise it will fall back to Alsa.
Change-Id: I393c7728ec9741b1b58681608c184cd1b92126b1
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Yoann Lopes [Wed, 18 Jun 2014 14:42:19 +0000 (16:42 +0200)]
Add changelog for 5.3.1.
Change-Id: I197a9c6a0fc623bdb3eafaa5fe970cb6a44546b4
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Oswald Buddenhagen [Tue, 17 Jun 2014 22:36:14 +0000 (00:36 +0200)]
Bump version
Change-Id: I8af8aab3257d70270318a152a73380aebdd41a41
Yoann Lopes [Fri, 13 Jun 2014 14:48:36 +0000 (16:48 +0200)]
Improved audiooutput and audioinput examples.
Always show the default audio device first in the drop-down box.
Change-Id: Icbafa9e316fd330fe7a9801a8e2efef6f20ff054
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Sergio Ahumada [Sat, 14 Jun 2014 19:59:24 +0000 (21:59 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
.qmake.conf
Change-Id: Iecd8d7b94e52a8981526b12cffa40e99870ba62f
Topi Reinio [Wed, 11 Jun 2014 15:13:48 +0000 (17:13 +0200)]
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>
Sergio Ahumada [Wed, 11 Jun 2014 08:05:00 +0000 (10:05 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: I689554fb6e47b8183013de271a776909a05398dc
Yoann Lopes [Tue, 3 Jun 2014 14:50:56 +0000 (16:50 +0200)]
Make multimedia QML types available for the 5.3 import version.
At least one type needs to be registered with the 5.3 version number to
make it known to the QML engine.
Change-Id: Iacfe62650b4194fbb89135fef7cb148309227ce2
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Yoann Lopes [Tue, 3 Jun 2014 14:32:46 +0000 (16:32 +0200)]
Fix static initialization order fiasco in some plugins.
Some static variables were initialized using QMediaMetaData
values, which are also statically initialized.
Task-number: QTBUG-39202
Change-Id: Ibedc0a77d96cdfa575aad122c4ec654e6830e1f7
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Christian Strømme [Wed, 4 Jun 2014 20:30:05 +0000 (22:30 +0200)]
Android: Use a file descriptor for all local media files.
Using a fd is more consistent across different Android versions and
also works with files that are in the applications private storage.
Task-number: QTBUG-39346
Change-Id: I462822459d12d7842d15f1cb7caafc75c18fe32c
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Yoann Lopes [Tue, 20 May 2014 13:52:54 +0000 (15:52 +0200)]
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>
Yoann Lopes [Fri, 16 May 2014 12:17:03 +0000 (14:17 +0200)]
Android: don't start camera preview until the viewfinder is ready.
If no video output is set for a camera, don't try to start the camera
and report an error.
If the video output is not ready, delay starting until it is.
Change-Id: Id08e31a4e795b71ac036a6532e9499ca5670d790
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Yoann Lopes [Fri, 16 May 2014 14:47:41 +0000 (16:47 +0200)]
Android: fix media player's volume.
- Preserve the volume when changing the current media.
- Don't actually set a new volume when the media player is muted.
Intead, save the value to apply it when setMuted(false) is called.
Change-Id: I829eb280406ea35ff82a0c2638b2d19cf1d90643
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Topi Reinio [Wed, 4 Jun 2014 09:08:13 +0000 (11:08 +0200)]
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>
Robin Burchell [Tue, 3 Jun 2014 09:07:23 +0000 (11:07 +0200)]
Handle resource requests through singleton.
Many applications have multiple objects dealing with audio, and each
needs to request audio resources from resource policy manager. Resource
policy manager handles audio resources per-manager. Each ResourceSet
instance creates new manager, which causes applications having multiple
audio objects to fight for the audio resources internally, even though
the streams are played from the same process id.
To overcome this in QtMultimedia applications, handle all ResourceSet
operations through singleton. This way one client has only one manager
id registered, and resource acquiring and releasing can be limited to
only when no resources are acquired or all resources are freed. To
reduce unnecessary noise from resource policy plugin to the clients,
keep track of client states and only notify clients which themselves
request for resources etc.
Change-Id: Ifa4488a9f6298a3f601399e9d339f7bd819be757
Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Christian Strømme [Mon, 12 May 2014 12:38:09 +0000 (14:38 +0200)]
Android: Don't expose java calls in the control classes.
Makes the abstraction more clear.
Change-Id: Ia9a7b0b157e1182158cd26b62775d13f6c5e1727
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Christian Strømme [Thu, 15 May 2014 11:57:34 +0000 (13:57 +0200)]
Make it possible to build multimedia for embedded Android
Change-Id: I3400b18379242ea4d1b4f94f5da6b60c64d551e4
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Christian Strømme [Fri, 9 May 2014 15:32:28 +0000 (17:32 +0200)]
Android: Rename the wrapper classes
Change-Id: I2ce15c8475da3186f128ba59b7c58f9b5b0a67e1
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Yoann Lopes [Mon, 26 May 2014 14:20:49 +0000 (16:20 +0200)]
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>
Yoann Lopes [Wed, 21 May 2014 10:47:03 +0000 (12:47 +0200)]
OpenSL: don't try to enqueue new buffers when the buffer queue is full.
It could lead to corrupted sound since we were overwritting buffers
that weren't played yet.
Task-number: QTBUG-39015
Change-Id: I4c015c5383b813955998145d6316acc8c22f19a3
Reviewed-by: jian liang <jianliang79@gmail.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Yoann Lopes [Mon, 19 May 2014 12:09:23 +0000 (14:09 +0200)]
Remove C++11 code in iMX6 video node plugin.
Use Q_FOREACH instead of C++11 range-based For loops.
Task-number: QTBUG-38900
Change-Id: I2b9f8444f2ac3ae71811112244c687cab79753c9
Reviewed-by: Thomas Senyk <thomas.senyk@pelagicore.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Yoann Lopes [Mon, 19 May 2014 10:48:59 +0000 (12:48 +0200)]
Android: fix calling start() and stop() on the video surface.
We restart the surface when the frame size changes, though we were
not using the correct function to get the surface's current frame size.
This was causing start() and stop() to be called for every frame.
Change-Id: I8ff4b4852cb7fcc92ac3b1b3ad7bf991d7bddc6b
Reviewed-by: Christian Stromme <christian.stromme@digia.com>