summaryrefslogtreecommitdiffstats
path: root/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Vivante: Keep only one frameVaL Doroshchuk2020-05-151-7/+3
| | | | | | | | | | | | | The imx6 vivante implementation of videonode used by qtvideosink holds reference to two frames during rendering. It releases the first frame only when it receives the third frame. This makes jerky playback when frames are not coming at constant rate. It displays the previous frame during video playback. Change-Id: If306bdcd358fac46a1fd0000ccb068424aee813a Reviewed-by: Karim Pinter <karim.pinter@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit f48e16dc45cde8f634823c40aa573b18673cf13d)
* imx: Fallback to copying data if mapping has not succeededVaL Doroshchuk2018-09-251-34/+40
| | | | | | | | | | | | Some formats or data might be unsupported and not possible to use them in glTexDirectVIVMap. If glTexDirectVIVMap returns an error then need to upload data to memory created by the driver using glTexDirectVIV. If at least one such error has occurred, all next video frames will be copied via glTexDirectVIV without trying to map again. Task-number: QTBUG-50927 Change-Id: I0715d4b244139b8d3f49d8bd2fc905f3fd55556c Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Updated license headersAntti Kokko2016-01-191-14/+20
| | | | | | | | | | | 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>
* QSGVivanteVideoMaterial: fix expensive iteration over QMap::values()Anton Kudryavtsev2016-01-151-1/+2
| | | | | Change-Id: I04b0fbe248e33821c93661b684b2e423f57e0f2f Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* videonode: imx6: Ensure the video node excludes padding pixelsCarlos Rafael Giani2015-05-261-3/+36
| | | | | | | | | | Padding rows & columns are included in the video frame that is sent to the VIV direct texture. Scale the UV coordinates to ensure the padding pixels aren't shown. Change-Id: I8b870a95ff786f9f80f42f0cc33f468b0c9c3863 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Update copyright headersAntti Kokko2015-02-121-6/+6
| | | | | | | | | 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-031-43/+91
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Update license headers and add new license filesAntti Kokko2014-08-241-18/+10
| | | | | | | | | - 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>
* Remove C++11 code in iMX6 video node plugin.Yoann Lopes2014-05-301-2/+2
| | | | | | | | | Use Q_FOREACH instead of C++11 range-based For loops. Task-number: QTBUG-38900 Change-Id: I2b9f8444f2ac3ae71811112244c687cab79753c9 Reviewed-by: Thomas Senyk <thomas.senyk@pelagicore.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* videonode: imx6: clear texture cache when the format changesMichael Olbrich2014-03-041-0/+15
| | | | | | | | The old textures won't match anyways. So there is no need to keep them. Change-Id: Id3482333d10cf022d04076ec0f5c7df475c522ae Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* adding zero-copy-QSGVideoNode for imx6Thomas Senyk2014-02-111-0/+196
On imx6 there is a platform-specific API to implement memory-mapping from gstreamer-buffer to opengl-texture. This plugin uses this API to avoid CPU-based-memory-copy. This allows fluid video-playback up to 1080p with very little CPU load. Before even 720p used one cpu-core completely and wasn't fluid. Change-Id: I0c33eb5d475393a65459291ce9290fa0753de4a5 Reviewed-by: Andy Nichols <andy.nichols@digia.com>