summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Updated license headersAntti Kokko2016-01-19882-12364/+17656
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I324f65c61171f36641472964d095d72e452afb3a Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into devChristian Strømme2016-01-15126-1941/+4770
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * Windows: Improve EVR presenter.Yoann Lopes2016-01-1211-663/+716
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed hard dependency to Angle; it's now required only when rendering to a texture. If Angle is not used, the buffers are now mappable to system memory. This enables HW-accelerated video decoding in QML for non-ANGLE builds. Note that the frame data have to do a round-trip through system memory, which is not ideal but still faster than SW decoding. Task-number: QTBUG-45593 Change-Id: Icc3503142df4e8dbb53b4e11f409b161fd2f9bde Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * DirectShow: use the EVR in the renderer control.Yoann Lopes2016-01-1219-401/+705
| | | | | | | | | | | | | | | | | | | | | | As for the window control, the existing code from the WMF plugin has been refactored out and is now shared for both plugins. This enables HW-accelerated video decoding in QML, QGraphicsVideoItem and custom QAbstractVideoSurfaces (Angle is required). Task-number: QTBUG-45593 Change-Id: I1d4dbf5695cdd4dbee93f9f4a957fa4d813aa85d Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * Merge remote-tracking branch 'origin/5.5' into 5.6Christian Strømme2016-01-122-2/+9
| |\ | | | | | | | | | Change-Id: Ia563cf734178b821c2aadda8b79b1f09b17de7cd
| | * Android: Don't call restartViewfinder() for audio only recordings.Christian Strømme2016-01-111-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling restartViewfinder() would try to access m_cameraSession without checking if it was valid. This change adds guards around the calls to restartViewfinder(), and one in the function itself. Task-number: QTBUG-50282 Change-Id: I1f2b4d2b2342bf2dc2b7f28a7bcd00e08a0edb44 Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| | * Fix playing sound in loop if sample size is smallPasi Petäjäjärvi2016-01-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If sample size is smaller that current periodsize, then playing sample multiple times in loop will fail. Reason is data offset of sample is set out of the bounds actual sample data size. Change-Id: I81f580cbb8dabf89db0d61528f5f1c9489216e0c Task-number: QTBUG-49838 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Doc: Generate separate listing of Widgets classes in the QHPTopi Reinio2016-01-121-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use the new QHP selection format to separately list the members of Qt Multimedia and Qt Multimedia Widgets modules in the table of contents. Change-Id: I50be80a820111834207967eada0865d212be98a8 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
| * | Doc: Fix documentation warningsTopi Reinio2016-01-085-27/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fix incorrect paths passed to \example command - Fix resulting linking issues - Fix examplesinstallpath in .qdocconf - Remove unnecessary group definition Change-Id: I72a437ac6d297f3c63d4f29a0e3110971d1e330f Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
| * | Android: Media player improvments.Christian Strømme2016-01-081-27/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add locks around the global media player pool to avoid races. And since we don't need any of the features a map provides us, there's no reason to use one. In the most extreme case it's unlikely that there will be more then a couple media players active at one time, so iterating over continuously storage containing only pointers should be at least as fast, if not faster, then a map or a hash (and use less space). Change-Id: Id8d7810b43a9217da402a4b825d7beec891cdf74 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Android: Improve detection of optimal settings for QAudioOutput.Christian Strømme2016-01-085-9/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change will try to detect the optimal buffer size and sample-rate on Android (requires API level 17+). If the device supports low-latency playback, then it's recommended that application developers check the preferred sample-rate through QAudioDeviceInfo::preferredFormat(). On most devices the preferred sample rate seems to be 48 KHz, so this is now the default instead of 44.1 KHz. Note that not all devices supports "proper" low-latency playback, and there are no APIs to retrieve information about how many devices that can be active at the same time; The only remotely quantitative value I've found is "a few"... Change-Id: I0708738b4a31f6bf9e88e9a816679cb688e023f3 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Android: Call release() in AndroidMediaMetadataRetriever's destructor.Christian Strømme2016-01-073-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should be the default when the wrapper is destroyed. Note: It's not possible to re-use the instance after release() is called. Change-Id: I761cac05ed2c2cda49573c69c6803b136892c528 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Android: Make the meta-data reader asyncChristian Strømme2016-01-073-91/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reading the meta-data can be slow and cause the UI to become unresponsive. This is especially noticeable when the media source is loaded from a remote location, or over a slow network. To improve this situation the media-reader is moved off the main thread and we wait until the media is loaded before starting the meta-data extraction. Task-number: QTBUG-46491 Change-Id: I0b9cf2ae6b8e08596a2f0b8fa0042d74604c46f9 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-0715-157/+244
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/wrappers/jni/androidcamera.cpp Change-Id: Ibb34f710b1dfb9a23b378462f31432581c6c26f4
| | * AVFoundation: correctly set the activeFormat on the AVCaptureDevice.Yoann Lopes2015-12-107-38/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the AVCaptureDevice documentation, the device must be locked before starting the capture session to prevent the activeFormat from being overridden. We now do that, but only if we explicitly set an activeFormat. Otherwise the device is not locked, which allows the session to find an appropriate format for the capture device. The device is also locked when enabling video capture, as doing so might also reset the activeFormat. Task-number: QTBUG-49170 Change-Id: I75478fd4bbfec96cd2abd2c3ae2951088b38978e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
| | * QNX: Handling looping properlyRoger Maclean2015-12-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On play, if we're at the end of media, set the position to the beginning. The code was previously setting the position to the last known position, likely just prior to the end which causes the last few frames of video to be played endlessly. Task-number: QTBUG-49668 Change-Id: I9613114294c22152dd66ae7111c38c8cdef5b907 Reviewed-by: Dan Cape <dcape@qnx.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| | * AVFoundation: fix setting up the video capture session.Yoann Lopes2015-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Because of an incorrect 'if' condition, the video capture session was set up twice when starting the camera. Change-Id: I4211a8c77ab9b8086628fb0f12fb28842de830cf Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| | * AVFoundation: fix setting the camera viewfinder resolution.Yoann Lopes2015-12-033-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Image capture resolution and viewfinder resolution must be the same, with the image capture resolution taking precedence over the viewfinder resolution when both are explicitly set. The code was getting the active image capture resolution, instead of the one explicitly requested, to adjust the viewfinder resolution. That effectively made the viewfinder resolution always ignored since the active capture resolution always has a default value. Task-number: QTBUG-49170 Change-Id: I2f3d01366d83a3e28c0a1ea0109663cfdfa75963 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
| | * Android: check for exceptions in some camera operations.Yoann Lopes2015-12-034-2/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not all camera operations are documented to raise exceptions, but they actually might do so depending on the hardware/drivers. Check for exceptions in all functions that could porentially fail and react appropriately. Task-number: QTBUG-49134 Change-Id: I633ca7f2e3aeb6532e1c445735e62135f52cf25f Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| | * alsa: Relax ALSA version checks for 1.1.x to be detected.Raphael Kubo da Costa2015-11-273-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Relax the check for SND_LIB_MINOR and SND_LIB_SUBMINOR so that ALSA 1.1.x is not considered older than 1.0.10. QtMultimedia builds fine with ALSA 1.1. Change-Id: If697c34cc7d9bbe2f2a3413d0c25ac4de4e93b34 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| | * AVFoundation: improve viewfinder settings.Yoann Lopes2015-11-202-110/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Retrieving the supported viewfinder settings don't actually require a video surface, we just need a capture device. The supported settings can now be retrieved without calling QCamera::setSurface(). More generally, all viewfinder settings that don't require a video surface can now be gotten/set before calling setSurface(). Task-number: QTBUG-49170 Change-Id: I39b14eeb40517a9ba399748b5778be8bbc8cfcda Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
| * | DirectShow: fix metadata signals when changing media.Yoann Lopes2016-01-063-12/+29
| | | | | | | | | | | | | | | | | | | | | | | | The metaDataChanged() and metaDataAvailableChanged() signals should be emitted immediately when changing or clearing the current media. Change-Id: I3152e2c32420ba6f11cf6780013e02208a9d6599 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * | DirectShow: fix media player's positionChanged() signal.Yoann Lopes2016-01-064-11/+28
| | | | | | | | | | | | | | | | | | | | | | | | The signal was not emitted at the right time or with incorrect values under certain circumstances. Change-Id: Ib8b1d38381d908399752856db7b0a987c4422bb1 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * | Add virtual dtor to QSGVideoNodeFactoryInterfaceKevin Funk2015-12-222-0/+6
| | | | | | | | | | | | | | | | | | | | | Makes it compile for me Change-Id: Ib79f4c38bb165d3698a94c5d1aafee710423a907 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * | Change the way a playlist is bound to a media object.v5.6.0-beta1Yoann Lopes2015-12-112-8/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous behavior was to simply switch from the internal control to the service's control, discarding anything that was added to the playlist before binding. We now carry over the changes made to the playlist when switching controls. This means the switch is now transparent to the user. When the service's control is read-only, we cannot transfer the items, which means the user must be notified of the items that might have been "lost" during the switch. Auto-test modified to reflect this change. Change-Id: Ibf80b650b06425ddbaeb320b72ac5d3082a25960 Reviewed-by: Jim Hodapp <jim.hodapp@canonical.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | GStreamer: Add color balance and sharpening adjustments using V4L2Denis Shienkov2015-12-103-11/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GStreamer's backend does not implements this features, therefore now is used the V4L2 interface for the contrast, saturation, brightness and the sharpening adjustments. The V4l2 interface works together with the GStreamer and covers the features which are not supported by the GStreamer. Change-Id: I995ed6cb096a29543fb80206384a92c13a1d1af2 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | DirectShow: Get current image processing parameter from the cacheDenis Shienkov2015-12-102-40/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can simplify a code, do not need to call pVideoProcAmp->Get() each time when we want to get current parameter value. It is better to do this once from updateImageProcessingParametersInfos(). In this case we will return desired parameter from the local cache. Change-Id: If33c3882230c9ae817071ace5b792dfe31685a7f Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | DirectShow: Add WhiteBalancePreset and ColorTemperature for the cameraDenis Shienkov2015-12-102-26/+142
| | | | | | | | | | | | | | | Change-Id: I9a646418d6177338735e1eb38967fd092e21e0cf Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | GStreamer: Adjust the camera's manual color temperature through V4L2Denis Shienkov2015-12-106-16/+428
| | | | | | | | | | | | | | | | | | | | | | | | | | | GStreamer does not support setup of manual color temperature for the camera. Now it is implemented through the V4L2 interface, where it is works together with the GStreamer and covers the GStreamer's holes. Change-Id: Icaeadeb4e21ec7865bcfa908bead318d4ead8ba5 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Doc: Move all doc artifacts under one projectVenugopal Shivashankar2015-12-079-87/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | Although the Qt Multimedia module has two submodules, a single project is sufficient to document these submodules, avoiding unnecessary maintenance overhead. Change-Id: I8fab48241b5c9aba35890a8aaa28ce7154f78c45 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
| * | WMF: correctly handle media with multiple streams.Yoann Lopes2015-12-042-75/+90
| | | | | | | | | | | | | | | | | | | | | | | | Only use the default streams and make sure only one stream of each kind (audio/video) is added to the topology. Change-Id: Ied37174fa722068b4cd1b5f91b60e0cef5c1d7b3 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * | WMF: correctly handle samples in the video probe transform.Yoann Lopes2015-12-041-56/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Set the right flags so the renderer doesn't allocate its samples. We can then just forward the samples we get from the upstream element and avoid a copy. Change-Id: Iafc15b81531a7415823d063c47a326ea6239136f Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * | WMF: fix type negotiation in video probe transform.Yoann Lopes2015-12-043-78/+87
| | | | | | | | | | | | | | | | | | | | | | | | - report supported types (same as the video sink) - handle type changes coming from upstream Change-Id: I922fc4869ecac3999e055c39adf1b847127a0012 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * | Android: fix QMediaRecorder crashing the camera server on some devices.Yoann Lopes2015-12-048-12/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some devices require MediaRecorder.setPreviewDisplay() to always be called, even though the Android doc says otherwise. Task-number: QTBUG-37837 Change-Id: I1e9b56f06e7c41bdf684f93b5ec7635f8ae9f379 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * | Android: support non OpenGL video surfaces for the camera.Yoann Lopes2015-12-0428-233/+1179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QCamera can now pass raw frame data to its QAbstractVideoSurface. The now deprecated Android camera API we're using doesn't allow to get frame data without also displaying the frames in a SurfaceView or a SurfaceTexture. To work around that, an invisible dummy SurfaceView is used. This allows to retrieve frames in the NV21, YV12, YUY2 or RGB565 formats, depending on the Android version and on the device. Task-number: QTBUG-35416 Change-Id: I77b4f50505c3b91efb4b2288a57f50398922c0db Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Android: Camera updatesChristian Strømme2015-12-041-35/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | There's no need for callbacks to block any other threads from reading from the camera pool, so use a read/write lock instead. There's also no benefits gained from using a QMap, so use a QHash map instead. Change-Id: Iaac74c0173d2dddc296f5d2c03116724ffdc588c Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | DirectShow: Implement basic QCameraImageProcessingControl interfaceDenis Shienkov2015-12-017-2/+412
| | | | | | | | | | | | | | | | | | | | | | | | This commit implements the contrast, saturation, brightness and sharpening adjustments, using DirectShow backend. Change-Id: I438595550ff804f2a20028b4bc020c566d309127 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | winrt: Fix Lumia 930 black viewfinder.Samuel Nevala2015-11-271-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add Lumia 930 to the camera texture blacklist. Task-number: QTBUG-49660 Change-Id: Icc4cdbb5e5e736b2273c46f0537a62aeaad0c605 Reviewed-by: Matti Malinen <matti.malinen@digia.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
| * | DirectShow: Remove unused static function decibelsToVolume().Friedemann Kleint2015-11-251-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | Fix warning: player\directshowplayercontrol.cpp:56:12: warning: 'int decibelsToVolume(int)' defined but not used [-Wunused-function] Change-Id: Ic482be6b58f675da008a0e0600d73c127871f3d7 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | Doc: Exclude outdated content using \omit commandVenugopal Shivashankar2015-11-251-3/+2
| | | | | | | | | | | | | | | | | | Change-Id: Ifb30e398b57550788dab6955e3eac80949d47248 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
| * | Fix some private headers.Yoann Lopes2015-11-2410-20/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Add missing "We mean it" comment - Add missing '_p' suffix for QtMultimediaQuick_p headers Task-number: QTBUG-49480 Change-Id: I1fd4f8b2fdffecebaebaedaf1b78e1da62c08156 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | | QGstTools: replace foreach with range-based forAnton Kudryavtsev2016-01-155-22/+31
| | | | | | | | | | | | | | | Change-Id: I4e93978fc41788ac7f524c7c290a9ce25452f04e Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | imports: replace foreach with range-based forAnton Kudryavtsev2016-01-153-11/+14
| | | | | | | | | | | | | | | Change-Id: I495438c99337b9423b0a589c1c8d8171d20b0cff Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | QtMultimediaQuickTools: replace foreach with range-based forAnton Kudryavtsev2016-01-152-5/+7
| | | | | | | | | | | | | | | Change-Id: I729375c1de712f1fb7915c95ce9eb7dcd00fe757 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | Camera: replace foreach with range-based forAnton Kudryavtsev2016-01-152-15/+15
| | | | | | | | | | | | | | | Change-Id: Iedaad3bccea7a5d830f713d87240f5f957ae12c5 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | Video, Playback: replace foreach with range-based forAnton Kudryavtsev2016-01-153-5/+9
| | | | | | | | | | | | | | | Change-Id: I46031547447669925cdd747f5ac6259acab9a410 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | Multimedia, MultimediaWidgets: replace foreach with range-based forAnton Kudryavtsev2016-01-156-26/+37
| | | | | | | | | | | | | | | Change-Id: I6d291fb1a46686c9e7d5974c831d4d798de2f03a Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | Gstreamer plugin: replace foreach with range-based forAnton Kudryavtsev2016-01-1514-37/+51
| | | | | | | | | | | | | | | Change-Id: Ic6d0f9d6b45eae1cdadc46783cb6f5bb7c64ac8c Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | Replace foreach with range-based forAnton Kudryavtsev2016-01-153-5/+6
| | | | | | | | | | | | | | | | | | | | | ... in Android, AudioCapture and m3u plugins. Change-Id: If06a97e49cfa4d32a41da2f043710cfdbd8a7b20 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | AVFoundation: replace foreach with range-based forAnton Kudryavtsev2016-01-153-4/+6
| | | | | | | | | | | | | | | Change-Id: I7a2f563f74fc67b55ea9b00f0e87d8ddaa2659c4 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>