summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Check whether current context can be obtained when deleting textures.Friedemann Kleint2014-11-061-2/+6
| | | | | | | | Add a warning in that case. Task-number: QTBUG-41966 Change-Id: I491ee9e13c9504040ab789951656983a736d9203 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* OpenSL ES: improve buffer logicChristian Strømme2014-11-042-8/+27
| | | | | | | | | | | | | 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>
* OpenSL ES: Don't store or return the adjusted volume level.Christian Strømme2014-11-042-4/+2
| | | | | | | | | | 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>
* WMF plugin: Initialize member variable m_stateDirty.Friedemann Kleint2014-10-311-0/+1
| | | | | | | | | 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>
* Add QT_GSTREAMER_CAMERABIN_VIDEOSRC environment variable.Yoann Lopes2014-10-301-2/+34
| | | | | | | | | 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>
* Android: Use the new findClass() method.Christian Strømme2014-10-174-73/+60
| | | | | | | Avoid local caching. Change-Id: I1e30896da664c5a45c38c09412c16cb8ff70c5c7 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-10-142-7/+8
|\ | | | | | | Change-Id: I716fd3acb69e424047691069cd4a781f656d0487
| * QNX: Fix resetting video surface5.3Bernd Weimer2014-09-301-1/+1
| | | | | | | | | | | | | | | | | | 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>
| * WMF: Use media source only when it is initialized.David Schulz2014-09-301-5/+6
| | | | | | | | | | Change-Id: I0efcf6139d0b81194cf25383025f080f8656728c Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| * WMF: Fix null ptr derefernce in MFPlayerSession.David Schulz2014-09-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * AVFoundation: fix build with iOS 8.0 SDK.Yoann Lopes2014-09-291-1/+1
| | | | | | | | | | Change-Id: I9d9b97ad88631ba12a289f7575ca53386e592bd1 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | GStreamer: fix QMediaRecorder::duration() when recording with a camerav5.4.0-beta1Yoann Lopes2014-10-031-6/+14
| | | | | | | | | | | | | | | | | | | | 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>
* | AVFoundation: fix media player video rendering in QML.Yoann Lopes2014-10-012-19/+4
| | | | | | | | | | | | | | | | | | 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>
* | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Sergio Ahumada2014-09-2614-40/+49
|\ \
| * | Merge remote-tracking branch 'origin/5.3' into 5.4Sergio Ahumada2014-09-2614-40/+49
| |\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Iad73368a22c6d4662188e6f357a265d0c26756d0
| | * WMF: fix initializing of media player's volume.Nodir Temirkhodjaev2014-09-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * WMF: fix memory leaks.Nodir Temirkhodjaev2014-09-112-27/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * WMF: fix start time of QAudioProbe's buffers.Yoann Lopes2014-09-091-0/+3
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-40954 Change-Id: Icd1d144dcff3a3191432722da44a263ca286dbb6 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| | * Fix integer overflow in several audio plugins.Yoann Lopes2014-09-0910-10/+10
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-40804 Change-Id: If006cb7db319bb6fda4ce7eb4f907e897b5d9efa Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| | * QNX: Fix end of media notificationBernd Weimer2014-09-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | GStreamer: fix artist-related metadata keys.Yoann Lopes2014-09-261-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | GStreamer: fix QMediaPlayer metadata signals.Yoann Lopes2014-09-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | - 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>
* | | Android: fix some problems with the media player.Yoann Lopes2014-09-263-82/+69
|/ / | | | | | | | | | | | | | | | | | | | | | | | | - 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>
* | Remove QuickTime backend.Yoann Lopes2014-09-2530-4941/+0
| | | | | | | | | | | | | | | | | | | | 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>
* | Android: fix QMediaPlayer's state and mediaStatus signals.Yoann Lopes2014-09-242-3/+53
| | | | | | | | | | | | | | | | | | 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>
* | WMF: fix crash on media player destruction.Yoann Lopes2014-09-241-23/+25
| | | | | | | | | | | | | | | | | | | | 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>
* | WMF: fix video rendering with ANGLE.Yoann Lopes2014-09-241-3/+4
| | | | | | | | | | | | | | | | 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>
* | Ensure pre-roll frames are displayed when gstreamer backend is paused.Andrew den Exter2014-09-122-56/+46
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | OpenSL ES: Be less rigid about tearing down the output device.Christian Strømme2014-09-122-26/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Fixed avfmediaplayersession.mm for OSX 10.10 Yosemite.Jens Cornelis2014-09-111-1/+1
| | | | | | | | | | | | | | | | 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>
* | Implement encoder settings in camerabin backend.Andrew den Exter2014-09-116-0/+111
| | | | | | | | | | | | | | | | | | | | 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>
* | Add necessary includes that were indirectThiago Macieira2014-09-105-0/+5
| | | | | | | | | | | | | | qstringlist.h no longer includes qdatastream.h Change-Id: Iabc231741ab0d8c8edbb4f77a4c6fe45c6a98896 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Fix V4L usage.Yoann Lopes2014-09-092-9/+0
| | | | | | | | | | | | | | | | | | 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>
* | Fix build with QT_OPENGL_DYNAMICAllan Sandfeld Jensen2014-09-091-1/+0
| | | | | | | | | | Change-Id: I4375a808170f3e4888101fea7a833399061a8935 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4v5.4.0-alpha1Yoann Lopes2014-09-0125-138/+301
|\ \
| * | Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-0125-138/+301
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gsttools/qgstreamervideoinputdevicecontrol.cpp src/plugins/gstreamer/camerabin/camerabinserviceplugin.cpp src/plugins/gstreamer/mediacapture/qgstreamercaptureserviceplugin.cpp Change-Id: Ic854589562d2deeaa0ebf75840cb8a2ee32e99de
| | * Restore QWindowsAudio support on wince.Bjoern Breitmeyer2014-08-272-1/+32
| | | | | | | | | | | | | | | | | | | | | Enabled Audio playback with wave device on WindowsCE again. Change-Id: Ic7749821ef8f991a909cbeb29083219ea988f5dc Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * WMF: fix bufferStatus() and availablePlaybackRanges().Yoann Lopes2014-08-251-15/+26
| | | | | | | | | | | | | | | | | | | | | | | | - 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>
| | * AVFoundation: fix some controls not being correctly destroyed on iOS.Yoann Lopes2014-08-254-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * AVFoundation: fix retrieving tracks information from live sources.Yoann Lopes2014-08-252-51/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Android: fix retrieving metadata from assets, qrc and remote files.Yoann Lopes2014-08-257-47/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * OpenSL: Fix QAudioOutput::setNotifyInterval().Christian Strømme2014-08-252-5/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * CoreAudioOutput use timeout when waiting for render threadDyami Caliri2014-08-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Detect V4L availabilityLisandro Damián Nicanor Pérez Meyer2014-08-187-11/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | winrt: Add camera serviceAndrew Knight2014-08-3016-4/+2375
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | winrt: Add media playback serviceAndrew Knight2014-08-2511-1/+1917
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Introducing Windows Runtime backendAndrew Knight2014-08-255-0/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Update license headers and add new license filesAntti Kokko2014-08-24459-8733/+5061
| | | | | | | | | | | | | | | | | | - 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>
* | Only call pa_cvolme set on stream creation if volume explicitly set.Robin Burchell2014-08-042-7/+22
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Implement more full resource policy features.Robin Burchell2014-08-043-18/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>