summaryrefslogtreecommitdiffstats
path: root/src/qtmultimediaquicktools
Commit message (Collapse)AuthorAgeFilesLines
* Rename the QtMultimediaQuick libraryYoann Lopes2017-05-021-1/+1
| | | | | | | | | Dropped the _p suffix from QtMultimediaQuick_p to be more consistent with other modules. Change-Id: Ibb0bbb2d24bc013df6c5623cba179508c5f1becf Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add missing override and remove redundant virtualAlexander Volkov2016-12-127-39/+39
| | | | | Change-Id: Ifd439abf21877adff57080489324bea729ee5279 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-131-10/+0
|\ | | | | | | Change-Id: I773db005bbdc511169917ee35eb5b517e898926b
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-101-10/+0
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/winrt/qwinrtcameracontrol.cpp Change-Id: I45d3042adf19577a72794610fa1c310cb22e26c4
| | * QNX: Avoid reading frames faster than they're renderedDan Cape2016-04-271-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code would capture frames with a 60Hz timer into two pixmaps alternating pixmaps with each successive frame. Rendering was somewhat disconnected from this, if rendering was unable to occur at 60fps, multiple frames might be copied for each frame rendered. This meant that it might try copying a video frame into a pixmap that was currently being used by the GPU with bad effects. The primary effect being severe flicker on i.mx6 targets. The change is to ensure that we don't read the window data until we're just about to make use of it. This means we don't ever get ahead of ourselves and read the video window once for every frame rendered. The code has been significantly refactored. There is now a class that manages the pixmaps and egl images. This is created on demand and the images are created and destroyed when sizes change. Since this all now occurs in the proper thread, much of the nonsense of setting _q_GLThreadCallback to arrange a call from the render thread is avoided. Remove BlackBerry ifdefs that are no longer used. Change-Id: I4bf5efa4c39c8170e3f55499c167ee10e521e100 Reviewed-by: James McDonnell <jmcdonnell@qnx.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | | Fix missing precision qualifier in YUV 4:2:2 shaders.Yoann Lopes2016-05-022-2/+2
| | | | | | | | | | | | | | | Change-Id: I83ce28670950e0895cc746c4ca30f884aa5a35bc Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | | Implement YUV 4:2:2 8bit support for QtQuickSamuel Gaist2016-04-297-8/+147
|/ / | | | | | | | | | | | | | | | | | | | | This patch implements support for rendering of UYVY and YUYV sources when using QtQuick for preview. [ChangeLog][QtQuick][Rendering] Support for YUV 4:2:2 8bit has been implemented for the QtQuick viewfinder. Change-Id: I4d98f3c44240ee53f7708bc6bd84e7fb83aac069 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-071-4/+3
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/avfoundation/mediaplayer/mediaplayer.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin5/mockserviceplugin5.pro Change-Id: I5742596230dc510ba2a09eba624429bb67179194
| * rely on the automatically defined QT_BUILD_*_LIBOswald Buddenhagen2016-02-251-2/+1
| | | | | | | | | | Change-Id: I8c1c755270aa0a703103925656f7c1b555e4db1f Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-02-251-2/+2
| | | | | | | | | | | | | | | | this fixes static builds by ensuring that all dependencies are exported. Task-number: QTBUG-51071 Change-Id: I8e1554b648327ea2fb342b882ce8e439bd6f271d Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Updated license headersAntti Kokko2016-01-1912-171/+243
| | | | | | | | | | | | | | | | | | | | | | 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-1510-20/+58
|\| | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * Add virtual dtor to QSGVideoNodeFactoryInterfaceKevin Funk2015-12-221-0/+4
| | | | | | | | | | | | | | Makes it compile for me Change-Id: Ib79f4c38bb165d3698a94c5d1aafee710423a907 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Fix some private headers.Yoann Lopes2015-11-249-20/+54
| | | | | | | | | | | | | | | | | | - 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>
* | QtMultimediaQuickTools: replace foreach with range-based forAnton Kudryavtsev2016-01-152-5/+7
|/ | | | | Change-Id: I729375c1de712f1fb7915c95ce9eb7dcd00fe757 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Add missing "We mean it" comments to private headers.Friedemann Kleint2015-10-062-0/+22
| | | | | | Task-number: QTBUG-48595 Change-Id: I1370d9229b0606582cbd828de84ee2717dca3daf Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Doc: update qml module version to 5.5.Yoann Lopes2015-08-111-4/+0
| | | | | | | | | And remove import statements from snippets. Change-Id: I109beabd445186f96f0750b6f23fb623c125181e Task-number: QTBUG-47620 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Add new property to QVideoSurfaceFormat.Yoann Lopes2015-08-071-0/+6
| | | | | | | | | | | | The 'mirrored' property indicates the QVideoFrames need to be mirrored along their vertical axis. This is typically needed for video frames coming from a front camera on a mobile device. This is implemented as a string-based property. In Qt 5.6, this should be replaced by a new public function. Change-Id: Ideb7de81e83f66826f4efb5f2951c4beec13546b Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* Fix video nodes material comparison.Yoann Lopes2015-07-203-0/+11
| | | | | | | | | Don't consider a material equal to another when their texture IDs are not available yet. Change-Id: Id4127d71abb2db33950a206dc722b24ab626e960 Task-number: QTBUG-47205 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Add an env var to disable OpenGL texture-based video frames.Laszlo Agocs2015-06-031-0/+11
| | | | | | | | | | | | | | | | | | Right now we will always use GLTextureHandle frames with Quick. This is great in many cases, but not always. Applications that wish to examine the frames (e.g. via video filters) will sometimes prefer frames in system memory, even if this is slower to display. Add QT_QUICK_NO_TEXTURE_VIDEOFRAMES which can be used to disable texture-based video frames. [ChangeLog] The environment variable QT_QUICK_NO_TEXTURE_VIDEOFRAMES can now be used to disable OpenGL texture based video frames. This can be useful in applications that wish to filter and process the video frames and are not GPU based. Change-Id: I5ca6f6d485d5bc6c2da8d47db563cd910c238ac9 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Initialize the resource, so it can be used from static libraries.Andras Mantia2015-05-201-0/+5
| | | | | Change-Id: If28509a991fb464dc587705ce62af66b528fdd97 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Fix texture unit bug in the YUV video node.Yoann Lopes2015-05-121-1/+2
| | | | | | | | | | fe13f5bb introduced a bug which could leave the active texture unit set to GL_TEXTURE1 or GL_TEXTURE2. When the material is done updating its state, it needs to make sure the active texture unit is reset to 0 since other materials might assume that's the current value. Change-Id: I64a6a0cd9fcecdf0fa483909193f70045ff0e9fe Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Minor refactor of built-in QSGVideoNodes.v5.5.0-beta1Yoann Lopes2015-04-3014-285/+291
| | | | | | | | | | | - Load shader source from resource files. - Correctly report material types: each material can use different shaders depending on the video pixel format but it was reporting a unique material type. This was causing the node to keep using the same shader even if its pixel format changed. Change-Id: Ib903ecd6e7dd1dd56d7cefe255ab7049933df17d Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-1/+1
|\ | | | | | | | | | | | | | | Conflicts: src/multimedia/playback/playlistfileparser.cpp src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp Change-Id: I52950def2b8283ae15797d05d4ead6a1256eba19
| * Fix order of QSGVideoNode_RGB's supported formats.Yoann Lopes2015-03-181-1/+1
| | | | | | | | | | | | | | | | RGB565 should not be the first pick. As a matter of fact it should be the last pick. Change-Id: I4b96fb02093e70d9c642efd79c48358ec7a664b0 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Don't error out when presenting empty frames in QSGVideoItemSurface.Yoann Lopes2015-04-071-4/+0
| | | | | | | | | | | | | | | | | | There's no good reason to do so. Backends can actually provide empty frames, for example when flushing the pipeline or after stopping playback. Change-Id: I687c12b667e31b25e91c3201f59c52a8969d8e05 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | Fix inconsistent overrides. [-Winconsistent-missing-override]Sergio Martins2015-03-222-16/+16
| | | | | | | | | | Change-Id: Icb3e2a640c122424704a8e4b10172ecc7602845a Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Add NV12/NV21 support into SG videonode.Timur Pocheptsov2015-03-204-62/+177
| | | | | | | | | | | | | | | | | | Add new fragment shaders and update declarative render (video node) to support NV12/NV21 pixel format. Task-number: QTBUG-45021 Change-Id: I5d52007f0da56165752268d06efca156f7496b42 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Update copyright headersAntti Kokko2015-02-1212-82/+82
| | | | | | | | | | | | | | | | | | 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>
* | Add video filtering support to VideoOutputLaszlo Agocs2015-02-039-11/+203
|/ | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Migrate to categorized logging in Quick 2 video outputLaszlo Agocs2015-01-092-23/+15
| | | | | | | | | | Enable qt.multimedia.video to get the logs. Also enhance the printing when creating the video node implementation. It is essential to have an easy way to figure out what handle and formats the node in use supports. Change-Id: Idf3a9f076ba03b5e613c19f2347204c841850b45 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Fix VideoOutput autoOrientation when switching cameras.Yoann Lopes2014-12-031-11/+40
| | | | | | | The VideoOutput's camera info was not updated when switching cameras. Change-Id: I23537ce98b08009898eaa26ef14d5b9a746ab5f7 Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
* Fix bogus videonode plugin handlingv5.4.0-rc1Laszlo Agocs2014-11-181-4/+19
| | | | | | | | | | | | | | | | 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>
* 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>
* Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-011-1/+1
|\ | | | | | | | | | | | | | | | | Conflicts: src/gsttools/qgstreamervideoinputdevicecontrol.cpp src/plugins/gstreamer/camerabin/camerabinserviceplugin.cpp src/plugins/gstreamer/mediacapture/qgstreamercaptureserviceplugin.cpp Change-Id: Ic854589562d2deeaa0ebf75840cb8a2ee32e99de
| * Fix QSGVideoNode rendering of rgb frames with padding.Daniele E. Domenichelli2014-08-251-1/+1
| | | | | | | | | | | | Change-Id: I6870cfa51b01b648494e2068be06e52b67403739 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Update license headers and add new license filesAntti Kokko2014-08-2412-226/+130
| | | | | | | | | | | | | | | | | | - 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>
* | Support dynamic opengl32 - ANGLE switching on WindowsLaszlo Agocs2014-07-293-41/+44
| | | | | | | | | | | | Change-Id: I38532db3ab0ad4fcb8dbabd0cbb528f7d8e4ba06 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Add an EGLImageKHR video node.Andrew den Exter2014-07-181-1/+1
| | | | | | | | | | | | | | | | [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>
* | New camera selection API in QML.Yoann Lopes2014-07-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Support per-plane strides and data offsets in QVideoFrame.Andrew den Exter2014-07-081-20/+9
|/ | | | | | | | | | | | 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>
* Fix QSGVideoNode rendering of frames with stride != width.Andrew den Exter2014-05-152-18/+73
| | | | | | | | | | Adjust texture coordinates to not render padding at the end of lines, and better calculate the stride of UV planes. Task-number: QTBUG-38218 Task-number: QTBUG-30447 Change-Id: I7b7577979719c48460b838f7dcc89b9d17741f79 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Doc: Clean up references to Qt System InfoSze Howe Koh2014-05-121-0/+4
| | | | | | | | | The module is not released yet; the current documentation is misleading. Change-Id: Ia20ac8e3504942f6f60b94264f3a12497e09da24 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Fix QSGGeometry object leakLiang Jian2014-04-011-0/+1
| | | | | | | | Set QSGNode::OwnsGeometry flag to QSGVideoNode, otherwise the QSGGeometry object created in QSGVideoNode::setTexturedRectGeometry() will be leaked. Change-Id: I383b4fe2ff8c7921d2c9c101d4d90fac5a08365a Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* QNX: Remove most of the CPU overhead for video renderingFabian Bumberger2014-04-011-0/+10
| | | | | | | | | | | | | | This patch uses the GL_OES_EGL_image extension to create a OpenGL Texture handle for a libscreen pixmap. If the extension is not available it uses the "old" technique as fallback where the image data is copied into a QImage. This reduces the CPU load by more than 70% and allows HD videos to be played jitter-free. Task-number: QTBUG-37752 Change-Id: I4cad22c39390e4cf9eb5be5f0bfe446544a11b9e Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix VideoOutput::autoOrientation documentation.Yoann Lopes2014-03-201-1/+1
| | | | | | | The type was reported to be int instead of bool. Change-Id: I3a76cb76ca70b50060c768f87cf84d8e436d8d7f Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* VideoOutput: fix autoOrientation with a camera source.Yoann Lopes2014-02-281-1/+25
| | | | | | | | | Don't assume the camera frames are always in the same orientation as the display in its primary orientation. We now take into account the camera sensor position and orientation to calculate the viewport orientation. Change-Id: Ib333c87f1804d1010ada42cb757e4fab78d75a04 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Ensure the backend has had its geometry updated.Roger Maclean2014-02-031-0/+3
| | | | | | | | | | When trying to play video in an overlay window, the video fails to be displayed because everything that would cause updateGeometry to be called on the backend has already occurred prior to the backend having been created. Change-Id: Ida3c8feea69b497a18e9f44d7143bed03380d6ae Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Allow plugins to override the QML VideoOutput type.Andrew den Exter2014-01-2012-2/+2592
| | | | | | | | | Move QDeclarativeVideoOutput to the private QtMultimediaQuickTools library to make the QDeclarativeVideoOutputBackend interface implementable by a plugin. Change-Id: I763c483a1fc9ec56dc7b8be0bc71523f029a36ee Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-101-1/+1
| | | | | | Change-Id: Ia8c1c38aba1544603fada8c414cc856f365fd15b Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>