summaryrefslogtreecommitdiffstats
path: root/src/plugins/qnx/mediaplayer
Commit message (Collapse)AuthorAgeFilesLines
* Remove Blackberry specific code pathsLars Knoll2016-11-144-204/+6
| | | | | Change-Id: I187085984eb1b25d7f3de163dc05122df1259720 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Move qtmultimedia over to the new config systemLars Knoll2016-11-141-1/+1
| | | | | | | | | | | | Use the new configuration system to define external libraries, configure tests and features. Don't use pkg-config outside of the configuration step. And move all command line options over from qtbase, so that we can remove them from there in a second step. Change-Id: I1aa4b557a6aee17eeceb00602005a2d28b426a26 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Yoann Lopes2016-08-011-5/+2
|\ | | | | | | Change-Id: Ic29cb09048003f18ff86d4546cd547be715eaec8
| * QNX: Reset playback position before stopping mediaDan Cape2016-07-041-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change ensures that the next media file to be played back will start playing at position 0. Without this change, it would start playback at the last position of the previous media file. In the play() function, when attempting to play a video, we first go into the loading state which just defers playing until later. Since we set the state to “Playing”, we now accept events from mm-renderer. It sends us a position update which ends up being from the previous video. Since we’re in “Playing” state, we trust this event is right and set our internal m_position variable to that value. Once the media has loaded, play() is called again and then we hit the call setPositionInternal() which seeks the media to our internal m_position (the position we got from mm-renderer). To resolve this, we now will call setPosition in the stop function that will cause mm-renderer to seek to 0 just before it stops playback (as recommended in documentation) so that any events we get from mm-renderer when we move to the “Playing” state will be related to the current media. Change-Id: I8ae35e57dd690bbae1fb996c1feb15ee4addab55 Reviewed-by: James McDonnell <jmcdonnell@qnx.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-102-32/+23
|\| | | | | | | | | | | | | Conflicts: src/plugins/winrt/qwinrtcameracontrol.cpp Change-Id: I45d3042adf19577a72794610fa1c310cb22e26c4
| * QNX: Avoid reading frames faster than they're renderedDan Cape2016-04-272-32/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Updated license headersAntti Kokko2016-01-1918-252/+360
| | | | | | | | | | | | | | | | | | | | | | 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-151-0/+3
|\| | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * 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>
* | QNX plugin: replace foreach with range-based forAnton Kudryavtsev2016-01-151-1/+2
|/ | | | | Change-Id: Ia95da6282ae4dcbeff024655b78788e15ad0e18c Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-0/+2
|\ | | | | | | | | | | | | | | Conflicts: src/multimedia/playback/playlistfileparser.cpp src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp Change-Id: I52950def2b8283ae15797d05d4ead6a1256eba19
| * Fix BlackBerry -qtnamespace buildSergio Martins2015-04-011-0/+2
| | | | | | | | | | | | Change-Id: I717dad59a466cb7a7480bc772d8f6308ca669d54 Task-number: QTBUG-43569 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | QMediaPlayer: handle resource files in a cross-platform way.Yoann Lopes2015-04-072-22/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was the backend's responsibility to handle resource files in an appropriate way. In practice, it was either not handled at all, or implemented in an almost identical manner in every backend that does handle it. This is now dealt with in QMediaPlayer, always passing to the backend something it will be able to play. If the backend has the StreamPlayback capability, we pass a QFile from which it streams the data. If it doesn't, we copy the resource to a temporary file and pass its path to the backend. Task-number: QTBUG-36175 Task-number: QTBUG-42263 Task-number: QTBUG-43839 Change-Id: I57b355c72692d02661baeaf74e66581ca0a0bd1d Reviewed-by: Andrew Knight <qt@panimo.net> Reviewed-by: Peng Wu <peng.wu@intopalo.com> Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Update copyright headersAntti Kokko2015-02-1218-108/+108
|/ | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-10-141-1/+1
|\ | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.3' into 5.4Sergio Ahumada2014-09-261-0/+1
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Iad73368a22c6d4662188e6f357a265d0c26756d0
| * QNX: Fix end of media notificationBernd Weimer2014-09-091-0/+1
| | | | | | | | | | | | | | | | | | When auto-play is on, EndOfMedia would not be emitted. This is due to a workaround for mmrenderer, that wrongly ignored stop events. Once media is played stop events will always have to be processed. Change-Id: I1cfd665bb06638ee3c86807aecc51e78f9baa938 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Update license headers and add new license filesAntti Kokko2014-08-2418-324/+180
|/ | | | | | | | | - 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>
* [QNX] Introduce env variable for default audio sinkAndreas Holzammer2014-04-251-1/+2
| | | | | | | | Make it possible to change the default audio sink via a environment variable. Change-Id: Id0e14318fc99a896b8a41196941b758a31d23600 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QNX: Fix MediaPlayer states handlingFabian Bumberger2014-04-071-3/+4
| | | | | | | | Task-number: QTBUG-37753 Change-Id: I61ff490f061dedd8a9bdc22d76969d9afb9a6795 Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* QNX: Remove most of the CPU overhead for video renderingFabian Bumberger2014-04-012-6/+79
| | | | | | | | | | | | | | 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>
* QNX: Evaluate mm-renderer buffer statusBernd Weimer2014-03-194-15/+38
| | | | | | | | | | | | | | In the playing (or paused) state the media status should reflect the buffer state, it should not stay in the loaded media state. Mm-renderer differentiates between buffer "status" and "level". Unfortunately, QMediaPlayer's buffer status maps to mm-renderer's buffer level. Change-Id: I22ea8dc83cee975fc4aa1a6de4f172def042a9a8 QT-BUG: 37166 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* QNX: Use window group of top-level window for mmrFrank Osterfeld2014-02-191-2/+10
| | | | | | | | | | Pass the top-level window's window group to mm-renderer, as required by mmr. Change-Id: I2a2e8b4aa48f5c2292b03593c6d528068f383b5c Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Fix build error on BlackBerry10Wolfgang Bremer2014-01-161-2/+2
| | | | | | | | | The variable type was changed to QStringRef but the the conversion to QStringRef was left out. Change-Id: I973b0eb5795fa7bcf89ceac809fb3ff607a85913 Reviewed-by: Peter Hartmann <phartmann@blackberry.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Use QStringRef instead of QString whenever possible.Jędrzej Nowacki2014-01-152-9/+9
| | | | | | | That way we reduce count of temporary QString instances. Change-Id: Id806c68ea616828c2355c07b8576616fa6a8da17 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* BlackBerry: Fixed volume settingBernd Weimer2014-01-101-1/+1
| | | | | | | Mute status is taken into account when setting the volume. Change-Id: Id2b9c7f6a1e5b6e4f5d4c82830544394c714b48f Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-12-031-2/+2
|\ | | | | | | Change-Id: I53a7a2a3e096f76d50f2bb3ae125f6022de5c3f5
| * QNX/PPS: Fix end-of-track handlingv5.2.0Frank Osterfeld2013-11-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | The state to check for is actually "stopped", not "STOPPED". Fixes end-of-track detection. Task-number: QTBUG-35189 Change-Id: Ifa2f0635b31ef8c584c1800ef870c0dbef2b1daf Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | BlackBerry: Fix metadata key for "artist"Rafael Roquetto2013-11-281-1/+1
|/ | | | | | | | | | | | | In order to retrieve the metadata information describing the Artist of a given album, Qt queries for AlbumArtist, and not Author. Author actually refers to the person who created the media file (i.e. the encoder in case of a mp3 song), and is also a string list (since more than one author is supported). Task-number: QTBUG-34985 Change-Id: I30b61f83db07ad2274eb79b28d92d772654220de Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QNX: Restructure pluginsFrank Osterfeld2013-11-0919-0/+3090
Now that the MmRenderer implementation is ported to plain QNX, rename the directories and files accordingly: "blackberry" becomes "qnx", replace the Bb prefix with MmRenderer for classes concerned with mm-renderer. The legacy alsa support for plain qnx is now "qnx-audio". Change-Id: I6abd98ecdd713b2d5e554d42224dc30f13772f43 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>