summaryrefslogtreecommitdiff
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright headersAntti Kokko2015-02-12509-4290/+3858
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I1c6faa4f59f8eca54f01ef20941fa60161dd7872 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Camera zoom control - version for the AVFoundation pluginTimur Pocheptsov2015-02-055-1/+294
| | | | | | | | AVFCameraZoomControl for AVFoundation plugin (videoZoomFactor in AVCaptureDeviceFormat). iOS only. Change-Id: I585b8df4c2a477971ada7bd81fabbd44f2371d98 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* AVFCameraExposureControl - exposure control for iOSTimur Pocheptsov2015-02-055-2/+756
| | | | | | | | Exposure control, version for AVFoundation plugin (this code is using quite a new API, iOS >=8 only). Change-Id: I6871a758e8dfb98ab46b66d91a44142163e0bb44 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* AVFCameraFocusControl - focus control for iOS / OS XTimur Pocheptsov2015-02-056-3/+474
| | | | | | | Camera focus control for AVFoundation plugin (iOS/OS X). Change-Id: I0a79e7057ecbb66413debb8eac0f48ff679fc7ba Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* iOS video frame render implementation.James Turner2015-02-048-61/+575
| | | | | | | | | | | | Uses CVTextureCache, iOS only for now, OS-X code could be ported but will need further work to support TEXTURE_RECTANGLE in the QVideoNode classes. When we can’t share a context, falls back to an offscreen window, FBO rendering and grabbing a QImage. Change-Id: I23b831fdcc63aeb1b67b7741d8d56779470240d3 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Add video filtering support to VideoOutputLaszlo Agocs2015-02-038-52/+115
| | | | | | | | | | | | | | | | | | | | | | | | | Add the QAbstractVideoFilter base class and integrate it with VideoOutput. This can be used to perform arbitrary filtering or image processing on the frames of a video stream of a VideoOutput element right before the OpenGL texture is provided to the scenegraph by the video node. This opens up the possibility to integrate computer vision frameworks or accelerated image processing with Qt Quick applications that display video streams using Qt Multimedia. Conceptually it is somewhat similar to QVideoProbe, this approach however allows modifying the frame, in real time with tight integration to the scenegraph node, and targets Qt Quick meaning setting up the filter and processing the results of the computations happen completely in QML. [ChangeLog] Added QAbstractVideoFilter that serves as a base class for QML video filtering elements that integrate compute, vision, and image processing frameworks with VideoOutput. Change-Id: Ice1483f8c2daec5a43536978627a7bbb64549480 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devYoann Lopes2015-01-2312-43/+101
|\
| * Merge remote-tracking branch 'origin/5.4' into devYoann Lopes2015-01-1912-43/+101
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/plugins/gstreamer/camerabin/camerabinsession.cpp Change-Id: I66a6f3efc5391013934b6b321073c31f25e1de26
| | * Add resolution and fps on mfw_v4lsrcLaszlo Agocs2015-01-123-5/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for changing resolution and frame rate with mfw_v4lsrc. This is essential for embedded applications that are not happy with the default VGA@30. This makes constructs like the following functional on devices like i.MX6 with MIPI cameras: Camera { viewfinder { resolution: "320x240"; maximumFrameRate: 15 } } Change-Id: Ia297afdb5ca51c6e55ad45dce37fdab7da3a5cfb Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| | * Support YUV420P in the i.MX6 video nodeLaszlo Agocs2015-01-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Camera input is often in this format. Until now the lack of GL_VIV_I420 (which was presumably missing in older versions of the extension?) in the format list resulted in falling back to the built-in i420 node instead of the zero-copy imx6 one. This is now corrected by adding the correct format mapping. Change-Id: I6e891bb3bb07d64ccd5b2d170b052f677c8bd19c Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
| | * Fix: static linking on Linux with both PulseAudio and Alsa pluginsGabriel Hege2014-12-228-38/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed multiply defined symbols when linking statically with both PulseAudio and Alsa plugins enabled: The private classes In/OutputPrivate had identical names and have been renamed. Change-Id: I9415beeeed9fb0e14ead3f0ab906f343b3934341 Task-number: QTBUG-43514 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | Fix initialization orderLaszlo Agocs2015-01-191-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid the following warning: In file included from qgstreamerplayersession.cpp:34:0: qgstreamerplayersession.h: In constructor ‘QGstreamerPlayerSession::QGstreamerPlayerSession(QObject*)’: qgstreamerplayersession.h:203:10: warning: ‘QGstreamerPlayerSession::m_usingColorspaceElement’ will be initialized after [-Wreorder] bool m_usingColorspaceElement; ^ qgstreamerplayersession.h:197:17: warning: ‘GstElement* QGstreamerPlayerSession::m_videoSink’ [-Wreorder] GstElement* m_videoSink; ^ qgstreamerplayersession.cpp:107:1: warning: when initialized here [-Wreorder] QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) ^ Change-Id: Ic4dfe6ead19db8d581cc7de622f478e63524715b Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Rename camera classes to avoid name clash.James Turner2015-01-159-56/+59
| | | | | | | | | | | | | | Change-Id: I08fe8f7e75bdbf2c4975863642072061741b5bc6 Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | AVFImageCaptureControl - invalid connectionTimur Pocheptsov2015-01-081-17/+8
| | | | | | | | | | | | | | | | | | AVCaptureConnection from AVCaptureStillImageOutput becomes invalid as we remove/add AVCaptureDevice. Change-Id: I698ffcc0b91b76cd5d7c25e4b244eaa0aa459159 Task-number: QTBUG-42035 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Add missing includes for QDataStream/QIODevice.Friedemann Kleint2015-01-0710-0/+11
| | | | | | | | | | | | | | | | After qtbase/90e7cc172a7521396bb2d49720ee4ceb9a9390b3, QStringList no longer includes QDataStream. Change-Id: Ibe3e1e6542e1b592adaabe3f8ffd3268efaf289b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-12-176-11/+64
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I31e377cdccf8bf5c1ea8143faf2001ac99608c27
| * winrt: Add missing QAbstractVideoSurface::stop() call.Andrew Knight2014-12-111-2/+4
| | | | | | | | | | | | | | This was preventing the surface from restarting with a different format. Change-Id: I1f86ddb1b16618f167183c7e2fcb32658df578f3 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
| * winrt: Fix encoding propertiesAndrew Knight2014-12-111-4/+17
| | | | | | | | | | | | | | | | | | | | | | These should match the capture mode. Additionally, there was a semantic error preventing the encoding properties from being properly selected. This fixes a bug in which the viewfinder was receiving frames too large for display as an OpenGL texture. Task-number: QTBUG-41065 Change-Id: Ia82c8f44bba1692a219edc5f9d78fc76c3d8a4ba Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
| * winrt: Fix camera auto rotationAndrew Knight2014-12-114-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no Windows Runtime API to find the camera sensor rotation, so assume that phones always have a camera mounting of 270 degrees. Tablet and webcams remain mounted at the default (0 degrees). As the frame is not flipped automatically by the system, the scan line direction is set to BottomToTop for front-facing cameras to achieve compatibility with other platforms. Task-number: QTBUG-41066 Change-Id: Icf17ecd4aca9fa9d5b24d94e5b21b63ee6f21f28 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * OpenSL ES: volume support for QAudioInput.Yoann Lopes2014-12-032-5/+17
| | | | | | | | | | | | | | | | | | 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>
* | Add additional exposure modes to QCameraExposure.Andrew den Exter2014-11-282-9/+122
| | | | | | | | | | | | | | | | | | [ChangeLog][GStreamer][Android] Camera exposure mode extended to support Action, Landscape, NightPortrait, Theatre, Sunset, SteadyPhoto, Fireworks, Party, Candlelight, and Barcode modes. Change-Id: I13d4bb042d27c0bd2ffcd369882b56bbabc84335 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Add a color filter property to QCameraImageProcessing.Andrew den Exter2014-11-282-5/+70
| | | | | | | | | | | | | | [ChangeLog] New color filter property for QCameraImageProcessing. Change-Id: I999e349e3e4f284b533fa62ba50903fbd21cb400 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Add support for face detection focus point mode to camerabin backend.Andrew den Exter2014-11-282-28/+235
| | | | | | | | | | | | | | | | [ChangeLog][GStreamer] Implemented the face detection focus point mode in the gstreamer camerabin backend. Change-Id: Ia582d2fb5e74d5b438aa0038224c5e20e597d53e Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Implement exposure and whitebalance lock for gstreamer camera.Andrew den Exter2014-11-284-18/+227
| | | | | | | | | | Change-Id: I58277d69c18ad2e31cad719a2dd6361c0c2d7e98 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | GStreamer: port to 1.0.Yoann Lopes2014-11-2735-986/+697
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0.10 is still used by default. To enable GStreamer 1.0, pass GST_VERSION=1.0 to qmake for qtmultimedia.pro. Contributions from: Andrew den Exter <andrew.den.exter@qinetic.com.au> Ilya Smelykh <ilya@videoexpertsgroup.com> Jim Hodapp <jim.hodapp@canonical.com> Sergio Schvezov <sergio.schvezov@canonical.com> Change-Id: I72a46d1170a8794a149bdb5e20767afcc5b7587c Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | Merge remote-tracking branch 'origin/5.4' into devYoann Lopes2014-11-275-5/+3
|\ \ | |/ | | | | Change-Id: Iaa608643f6626ed074a9fd374555cc5bc84659d5
| * Remove unused private membersThiago Macieira2014-11-252-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Fix bogus videonode plugin handlingv5.4.0-rc1Laszlo Agocs2014-11-183-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-217-16/+70
|\ \ | |/ | | | | Change-Id: Id87e56ccfc9f33f98c3d06991f6fe9c14d38fbac
| * 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>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-206-80/+68
|\ \ | |/ | | | | Change-Id: Ie44084828edf50050c695ac4dcc1cb532651499c
| * 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>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-0993-5194/+2948
|\ \ \ | |/ / | | | | | | Change-Id: I8b9177d90afac8b834d333efc6c22b6b35dceaf8
| * | 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>