summaryrefslogtreecommitdiffstats
path: root/tests/auto/integration/qdeclarativevideooutput/tst_qdeclarativevideooutput.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Expose video surfaces in rendering componentsVaL Doroshchuk2020-01-051-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Currently QVideoWidget, QGraphicsVideoItem and QML Video Output tightly depend on QMediaPlayer, QMediaService etc. Since QMediaService is deprecated and will be removed from Qt6, its usage must be removed from rendering components. * Also it is a part of a task to make all components independent, e.g. without dependencies to another components, like the media player, or video producer. These video consumer components should be reusable without QMediaPlayer too, which today is not possible, and should have responsibility for a single part of the functionality. * It is a part of a task to allow users to decide how to render video, using either video surface or native windows. Introducing QVideoWidget::videoSurface() QGraphicsVideoItem::videoSurface() QDeclarativeVideoOutput::videoSurface() that create a surface, if necessary, and returns the underlying video surface which provides a possibility to render video frames without knowledge of any services and controls. Can be used like: QMediaPlayer->setVideoOutput(QVideoWidget->videoSurface()); or QMediaPlayer->setVideoOutput(QGraphicsVideoItem->videoSurface()); This allows QMediaPlayer to get video frames from a backend, without using QVideoWidget/QGraphicsVideoItem, and to present these frames to provided surface. Moreover, now it is possible to render video frames without QMediaPlayer: QVideoSurfaceFormat format(img.size(), QVideoFrame::Format_ARGB32); videoWidget->videoSurface()->start(format); videoWidget->videoSurface()->present(img); [ChangeLog] Introduced videoSurface property to QVideoWidget, QGraphicsVideoItem and QDeclarativeVideoOutput. Task-number: QTBUG-80431 Change-Id: I49641750537160832e29c297279e72b8288e974c Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Eradicate all but one Q_FOREACH loopMarc Mutz2019-07-111-2/+2
| | | | | | | | | | | | | | | | Q_FOREACH is going to be deprecated, or at the very least banned from use in Qt code. All these are trivial in the sense that the loop body clearly doesn't modify the container over which we iterate, and that the container is const, or trivially marked as such. In one case, replaced Q_FOREACH + delete + clear() with qDeleteAll(qExchange()), in three others, replaced Qt containers with statically-known content with plain C arrays. Change-Id: I718821811370f0cfefac3893283572d39a7d957d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-04-101-15/+6
|\ | | | | | | | | | | | | | | Conflicts: tests/auto/integration/qdeclarativevideooutput/tst_qdeclarativevideooutput.cpp Done-with: Val Doroshchuk <valentyn.doroshchuk@qt.io> Change-Id: I745dd948c1e98180115f85c17bef802351bbdb6b
| * Android: Move inline qml to separate file in testsVal Doroshchuk2019-04-031-14/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Since androiddeployqt is looking for qml modules in qml/js files only, it is unable to deploy qml plugins for inline qml from cpp. Hence modules are never found while compiling inline qml. Fixes tst_QDeclarativeVideoOutputWindow and tst_QDeclarativeVideoOutput Fixes: QTBUG-73597 Fixes: QTBUG-73598 Change-Id: I43dc1ac38522779ff37f04b055a41b2c05eb7619 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | VideoOutput: Introduce flushMode propertyVaL Doroshchuk2018-11-061-0/+20
|/ | | | | | | | | | | | | | | | | | | | | | | | | Added flushMode property to QML VideoOutput element to define what should be shown when flush is requested. Takes affect only for QDeclarativeVideoRendererBackend and when QSGVideoItemSurface is already started. Flushing (passing empty video frame to the surface) is usually performed when EndOfMedia or playback is stopped. Which caused disappearing the content and blinking if playlist is used. Using this property now possible to define what frame (last, first or empty) should be shown when playback is stopped or finished. By default shows empty frame (clears the video output). To show a frame it requires to keep QVideoFrame and thus its data. Task-number: QTBUG-37301 Task-number: QTBUG-49446 Change-Id: I3be5309217b9f543da804e3b616dee9d97fba65f Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Updated license headersAntti Kokko2016-01-201-17/+12
| | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I96559337481456cce6ea909fb7e53877acd352bd Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Update copyright headersAntti Kokko2015-02-121-7/+7
| | | | | | | | | 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>
* Update license headers and add new license filesAntti Kokko2014-08-241-19/+11
| | | | | | | | | - 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>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Yoann Lopes2014-01-301-1/+1
|\ | | | | | | refs/staging/dev
| * Allow plugins to override the QML VideoOutput type.Andrew den Exter2014-01-201-1/+1
| | | | | | | | | | | | | | | | | | 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>
* | Fix MSVC-warnings about unused variable meta in tst_qdeclarativevideooutput.cpp.Friedemann Kleint2014-01-291-4/+2
|/ | | | | Change-Id: If324fd2e65acb7650b1d8dee4964a2c2bb17f876 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>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-241-24/+24
| | | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Id77334cfb15de096941c88e32d04ca07b4eb4709 Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Compile in C++11 mode: the Q_DECLARE_METATYPE must be visibleThiago Macieira2012-08-061-7/+9
| | | | | | | | | | | The error was: tests/auto/integration/qdeclarativevideooutput/tst_qdeclarativevideooutput.cpp:113:62: required from here qmetatype.h:637:5: error: static assertion failed: Type is not registered, please use Q_DECLARE_METATYPE macro to make it know to Qt's meta-object system Change-Id: Id4e29803de646cbad0d401b1fe0e0b38e458d12f Reviewed-by: Michael Goddard <michael.goddard@nokia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
* Support QVideoWindowControl in the QtQuick Video element.Thomas McGuire2012-05-031-0/+1
| | | | | | Change-Id: I953899a3ec92856955d36528057b0d45f9c26394 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
* Fix compilation after qtbase:8f85b84f4eaa85ff5c02ec5e65fd6706a10690b9.Friedemann Kleint2012-04-241-7/+7
| | | | | | | Remove QDeclarative compatibility module code. Change-Id: Ib24c0c027c899e7eb30b3c8550a483d0d8b2b77f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Updated declarative components to use the QML moduleJonas Rabbe2012-03-141-2/+2
| | | | | Change-Id: I4b49466ba5248683c2285f98ce17bc2c24bba515 Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-2/+2
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I20e5215108c6ebd5f8474fed5c3665118e4791e6 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix some surface assignment errors.Michael Goddard2012-01-271-3/+21
| | | | | | | | On destruction and changing sources, make sure we don't clobber the surface property if it's been changed. Change-Id: I3080b98a547911543a391c8bc040792d260782fd Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
* Add a rendered and content rectangle properties to VideoOutput QML.Michael Goddard2012-01-271-0/+692
So you can align controls with an edge of the rendered area. There's also some convenience functions for mapping source to and from destination coordinates. Also tweaked the updateGeometry function to bail out if no input parameters have changed, rather than doing some more boring maths. Added a unit test for a lot of the class, too. Change-Id: I943bb45e4e56356247d5d6deb5d446222edcb7ca Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>