summaryrefslogtreecommitdiffstats
path: root/src/plugins/wmf/player
Commit message (Collapse)AuthorAgeFilesLines
* Use QT_CONFIG macro to check for featuresLars Knoll2017-02-271-2/+0
| | | | | | | And remove many custom defines. Change-Id: I658cc8430d1d99ed3c0aafe03a77adce76621a29 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Move qtmultimedia over to the new config systemLars Knoll2016-11-141-1/+2
| | | | | | | | | | | | 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.7Liang Qi2016-11-047-2/+1446
|\ | | | | | | Change-Id: Ib038c5e3ebb48c0e46569a35d530fa5ceaf06a32
| * WMF: make it possible to build only the audio decode serviceYoann Lopes2016-11-027-2/+1401
| | | | | | | | | | | | | | | | | | | | | | | | The WMF plugin can now be built without the media player service. That enables the audio decode service even when DirectShow is used as media player backend. The default configuration on Windows is now: Camera, MediaPlayer -> DirectShow AudioDecode -> WMF Change-Id: Ic6f3c85ed849e0c603719cfb03794e6abd2d52fa Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-212-1/+2
|\| | | | | | | Change-Id: Ieb1a3081907093e31e8c8b7f95993bb3b2173672
| * [Win] Compile fix, the mmdeviceapi.h header can only be included oncev5.6.0-rc1Andy Shaw2016-02-152-1/+2
| | | | | | | | | | Change-Id: Idb9a995c90e6e0e8be392022e2a76b4d8fea853a Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.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-154-127/+174
|\| | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * Windows: Improve EVR presenter.Yoann Lopes2016-01-122-37/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed hard dependency to Angle; it's now required only when rendering to a texture. If Angle is not used, the buffers are now mappable to system memory. This enables HW-accelerated video decoding in QML for non-ANGLE builds. Note that the frame data have to do a round-trip through system memory, which is not ideal but still faster than SW decoding. Task-number: QTBUG-45593 Change-Id: Icc3503142df4e8dbb53b4e11f409b161fd2f9bde Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * DirectShow: use the EVR in the renderer control.Yoann Lopes2016-01-122-19/+91
| | | | | | | | | | | | | | | | | | | | | | As for the window control, the existing code from the WMF plugin has been refactored out and is now shared for both plugins. This enables HW-accelerated video decoding in QML, QGraphicsVideoItem and custom QAbstractVideoSurfaces (Angle is required). Task-number: QTBUG-45593 Change-Id: I1d4dbf5695cdd4dbee93f9f4a957fa4d813aa85d Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * WMF: correctly handle media with multiple streams.Yoann Lopes2015-12-042-75/+90
| | | | | | | | | | | | | | | | Only use the default streams and make sure only one stream of each kind (audio/video) is added to the topology. Change-Id: Ied37174fa722068b4cd1b5f91b60e0cef5c1d7b3 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * WMF: fix type negotiation in video probe transform.Yoann Lopes2015-12-041-16/+3
| | | | | | | | | | | | | | | | - report supported types (same as the video sink) - handle type changes coming from upstream Change-Id: I922fc4869ecac3999e055c39adf1b847127a0012 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | WMF plugin: replace foreach with range-based forAnton Kudryavtsev2016-01-152-7/+7
|/ | | | | Change-Id: I041496a88ac26d5db6bb65f61ff88a3aea01e3a4 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* DirectShow: use the EVR in the window control.Yoann Lopes2015-11-058-469/+107
| | | | | | | | | | Reuse existing code from the WMF plugin, which already uses the EVR. This enables HW-accelerated video decoding when using QMediaPlayer with a QVideoWidget. Task-number: QTBUG-45593 Change-Id: I757e4d53cd2c648aee6ba33a4851a8c6adc62843 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-153-12/+26
|\ | | | | | | | | | | | | | | Conflicts: src/multimedia/playback/playlistfileparser.cpp src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp Change-Id: I52950def2b8283ae15797d05d4ead6a1256eba19
| * WMF: fix reported sample type of 8-bit audio formats.Yoann Lopes2015-04-141-1/+4
| | | | | | | | | | | | | | | | | | | | Always report 8-bit PCM data as unsigned integer. Even though there's no API to actually know that, it's standard on Windows. 8-bit is unsigned and 16-bit is signed. Task-number: QTBUG-45540 Change-Id: I4a3c09084de688ea7afc3bc147508184fb582224 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * Fix compile issue when building with -no-widgetsAndy Shaw2015-04-072-6/+6
| | | | | | | | | | Change-Id: I49a9aa684b0dfbe0e3d9e576aad06d65d6c3ecdd Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * WMF: don't resume playback after doing a seek while paused.Andy Shaw2015-03-311-2/+9
| | | | | | | | | | | | | | Task-number: QTBUG-32746 Change-Id: I5a9ee96324e0ddc65311f47dc887bcb91b036fd2 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * WMF: report the surface's supported formats in the correct order.Yoann Lopes2015-03-241-2/+5
| | | | | | | | | | | | | | | | | | QAbstractVideoSurface::supportedFormats() returns the formats in descending order of preference while IMFMediaTypeHandler expects the list to be in ascending order. Change-Id: I0ecb5a3b228c0cad78c1a84091e3c3cf272f7ebc Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * WMF: fix RGB24 format matching.Yoann Lopes2015-03-181-1/+2
| | | | | | | | | | | | | | | | | | MFVideoFormat_RGB24 has a BGR layout and should therefore be matched to QVideoFrame::Format_BGR24, not Format_RGB24. Task-number: QTBUG-42323 Change-Id: I1749b575b1738168e3d3c0d055dee10f6d870c0c Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-02-131-1/+1
|\| | | | | | | Change-Id: I5575a4ba13212c9bfe73a3de3ef17c6528beafc3
| * Fix some typosSergio Ahumada2015-02-111-1/+1
| | | | | | | | | | Change-Id: Iaf8f50741d3103480668b4a654a202d8a363bc45 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Update copyright headersAntti Kokko2015-02-1218-126/+126
|/ | | | | | | | | 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>
* 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>
* Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-10-141-6/+7
|\ | | | | | | Change-Id: I716fd3acb69e424047691069cd4a781f656d0487
| * 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>
* | Merge remote-tracking branch 'origin/5.3' into 5.4Sergio Ahumada2014-09-261-29/+33
|\| | | | | | | | | | | | | 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-111-26/+30
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-011-15/+26
|\| | | | | | | | | | | | | | | | | Conflicts: src/gsttools/qgstreamervideoinputdevicecontrol.cpp src/plugins/gstreamer/camerabin/camerabinserviceplugin.cpp src/plugins/gstreamer/mediacapture/qgstreamercaptureserviceplugin.cpp Change-Id: Ic854589562d2deeaa0ebf75840cb8a2ee32e99de
| * WMF: fix bufferStatus() and availablePlaybackRanges().Yoann Lopes2014-08-251-15/+26
| | | | | | | | | | | | | | | | - Correctly initialize and clear PROPVARIANT structures - Return coherent data even when the information is not available Change-Id: I22b46f95f255cbb740a154c6296a5c3a91e64f67 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* | Update license headers and add new license filesAntti Kokko2014-08-2418-342/+198
| | | | | | | | | | | | | | | | | | - 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-20/+18
|/ | | | | | Change-Id: I38532db3ab0ad4fcb8dbabd0cbb528f7d8e4ba06 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* WMF: fix video frames' viewport.Yoann Lopes2014-05-151-0/+12
| | | | | | | It was not taken into account at all. Change-Id: I4ce85aba214cb4d89dcd018b1616a2a38094b5a6 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: improve changing playback rate on a media player.Yoann Lopes2014-04-092-6/+48
| | | | | | | | | | | | | | | | | | | | | | When going back to normal rate after playing in fast forward (greater than 2x), playback seemed frozen for some amount of time (up to 8 seconds). When playing in fast forward, only key frames are shown, ignoring all the others. When returning to a normal rate, the source reader will usually be pointing to a key frame in the future compared to the player clock position, meaning that all the frames in between won't be shown until the player clock catches up with the latest key frame that was read. When leaving fast-forward, we now reset the position on the player to force the source reader to point back to the frame at the current clock position and avoid the seamingly frozen playback. Also, emit playbackRateChanged() signal when changing the playback rate. Change-Id: I4f04f0f250083378e94fb4a47f9f917abeaaf24e Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: more reliable video seeking.Yoann Lopes2014-04-081-10/+15
| | | | | | | | | | When seeking, the presentation clock can enter an undefined state until it is started again from the new position. Wait for the clock to be restarted before scheduling the prerolled frames, otherwise these frames might get a wrong presentation time. Change-Id: I02cb3338239775b7ef5d206ec5aa1b26719ac978 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: support playback rate in our custom video sink.Yoann Lopes2014-04-081-15/+99
| | | | | Change-Id: Ic8fde3398813df68d2f77b2542f1fa507c8ea674 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: fix some issues with our custom video sink.Yoann Lopes2014-03-181-5/+42
| | | | | | | | | | | | | | | - When scrubbing, request frames only one at a time. - Discard frames when too late or too much in advance - Fix integer overflow causing undefined behavior [ChangeLog][QtMultimedia][Windows] Fixed video playback playing at twice the normal rate after reaching 3:34. [ChangeLog][QtMultimedia][Windows] Fixed video playback that could freeze after seeking to a different position. Task-number: QTBUG-31800 Change-Id: Ie620c684c58ee790537969ffc40f01610b6745ea Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: remove some debug output.Yoann Lopes2014-03-181-0/+2
| | | | | | Task-number: QTBUG-37539 Change-Id: I5c2f232195de946dce04eb873ac381d0bb9e73b2 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: each media player now has its own volume.Yoann Lopes2014-03-072-28/+26
| | | | | | | | | | | | | | | Instead of setting the volume on the audio session, which is shared by all QMediaPlayers, we now set the volume on the media player's own audio stream. This results in all QMediaPlayers correctly having independent volumes. [ChangeLog][QtMultimedia][Windows] QMediaPlayer::setVolume() does not affect the volume of other QMediaPlayers anymore. Task-number: QTBUG-30317 Change-Id: I8ea8ec47fc86127da01dc5c8247fb6f72c834630 Reviewed-by: Wouter Huysentruit <wouter_huysentruit@hotmail.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Normalize signal & slot signatures in connectionThiago Macieira2014-02-032-2/+2
| | | | | | | Profiling shows Qt Creator spends 2% of its load time normalizing Change-Id: I1a4bef16be79ced35c47da865153ebe1bee22f9c Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* WMF: remove dead code.Yoann Lopes2013-12-111-333/+0
| | | | | Change-Id: Ib3b595263e64336cc5d0482edd890e7b4e534927 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: fix some crashes.Yoann Lopes2013-12-112-3/+8
| | | | | | Task-number: QTBUG-30827 Change-Id: Iafc53f7095ad9c086b3982afb2af045c54497dc9 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: fixed various media player issues.Yoann Lopes2013-12-041-13/+18
| | | | | | | | | - Switch to BufferedMedia only once playback actually started, not when requesting to start. - Report the position to have changed when seeking in stopped state. Change-Id: I930b3e6977cebe5935ed033d0a4d4e1eb899ad2c Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Revert "WMF: fixed MediaPlayer buffering logic."Yoann Lopes2013-12-041-13/+3
| | | | | | | | | | | This reverts commit d599f7319af86265083bae96f21d942aeff24737. This was not the correct logic... According to the documentation, the BufferedMedia status should be set only when in the PlayingState. Change-Id: I36053ebc09c0517fcd2a1a7f2b091fbe8f04f3d0 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Fix WMF Video not playing if no soundcard is availableMarius Wachtler2013-11-261-0/+7
| | | | | | | | | Do not add the AudioEndpoint to the topology if no Audio output device is available. Fixes video not playing if you deactivate your soundcard or have no headphones/speakers plugged in. Change-Id: I9fc2486198a299b3e75af648f69475270968c6f7 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* WMF: emit positionChanged() signal when reaching the end of a media.Yoann Lopes2013-10-291-1/+3
| | | | | | | | This is necessary for QML MediaPlayer to report the correct position at the end of a media. Change-Id: Ifac2a721b850c726305d1a98e360da638b1fa87a Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF: fixed compilation on Windows Vista.Yoann Lopes2013-10-111-5/+16
| | | | | | | | | We were using one function which is available only on Windows 7 (and later). Replace it with Vista-compatible calls. Task-number: QTBUG-32864 Change-Id: I77492a407330c3689dfbf8dc1180894cf7ca5f8d Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* WMF and GStreamer: fixed incorrect frame startTime and endTime.Yoann Lopes2013-08-221-5/+19
| | | | | | | | | | | | The QVideoFrame documentation explicitly says that the time is in microseconds, however the GStreamer backend was setting the time in milliseconds and the WMF backend in 100-nanosecond units. With WMF, the time was missing from the QVideoFrame when presenting it to the video surface. Task-number: QTBUG-31731 Change-Id: I0638d2abf8eed25b3a531db67c19a18703e5b630 Reviewed-by: Andy Nichols <andy.nichols@digia.com>