summaryrefslogtreecommitdiffstats
path: root/src/plugins/wmf
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/tqtc/lts-5.15.12' into ↵v5.15.12-lts-lgplTarja Sundqvist2023-10-113-1/+35
|\ | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I6a330e383bb573bd7ba6cfea7e8bce3e88de2d7a
| * Windows: Fix cropping for HEVC-encoded videosAndré de la Rocha2022-09-283-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cropping info associated with HEVC-encoded video files was not being applied and as a result some videos could show garbage on the borders of the actual video contents, since instead of the source frames width and height, the sizes in pixels of the buffers used by the encoding algorithm, which are padded to multiples of some power of two, were used. Root cause seems to be a bug in Media Foundation or incompatibility with the Windows HEVC decoder, as the API is returning buffer sizes where sizes of actual video contents should be returned. It works as expected for other video formats. This patch makes the QtMultimedia decoder enforce the actual video dimensions obtained through the file's metadata. Fixes: QTBUG-105381 Change-Id: I2d67c64f07de489edd1d274060eccd5a4d69bafe Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io> Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit 65345a04c67c585c4d38d56cb1416a3033434aaf) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | Revert "Update commercial license headers"v5.15.3-lts-lgplTarja Sundqvist2021-03-2536-748/+748
|/ | | | | | | | | | | This reverts commit 80d46e3a5f64ff2456c40bdba63b6d5c69a32cdd. Revert of commercial license headers is required for Qt 5.15.3 opensource release. Task-number: QTBUG-91108 Change-Id: I5c64ffa120f916711e5cf01c828774f8456dec06 Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
* Update commercial license headersTarja Sundqvist2021-01-2736-748/+748
| | | | | | | | | | | | | | | | Updated header.COMM to files in tqtc-qtmultimedia. Examples, tests or documentation files are not updated. The commercial license header may contain some additional lines so that its line count equals with the earlier license header. Reaso for this is that some autotests use hard coded line numbers and a change in the line count causes failures in tests. Task-number: QTQAINFRA-4171 Change-Id: I86ebf7c3653b55983cefff246c0cb019cbcda8c4 Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
* Fix case of header file includes for building with mingw-w645.14Marius Kittler2020-04-263-3/+3
| | | | | Change-Id: Ie0e6599234c38c5e5a75b681a911f3728871861e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* WMF: Fix memory leak in MFPlayerSession::getStreamTypeVal Doroshchuk2020-04-061-6/+6
| | | | | | | | | Receives a pointer to the IMFMediaTypeHandler interface. The caller must release the interface. Fixes: QTBUG-80037 Change-Id: I69682028a5deea256a79d5d067afe2e60e49c8c5 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* WMF: Fix memory leak in MFPlayerSession::getStreamTypeVaL Doroshchuk2020-02-211-0/+3
| | | | | | | | | Receives a pointer to the IMFMediaTypeHandler interface. The caller must release the interface. Fixes: QTBUG-80037 Change-Id: Id0222c9f8ee0f88db8cd53c9492dce053d0bfb35 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Eradicate the last Q_FOREACH and mark the module cleanMarc Mutz2019-07-111-1/+1
| | | | | | | | | | | | | | | | This one is not trivial in that it isn't clear, a priori, that the loop body doesn't re-enter the class and ends up modifying m_videoProbes. But MFVideoProbeControl::bufferProbed() just schedules a deferred call to QMediaVideoProbeControl::videoFrameProbed() (via QueuedConnection), so this cannot happen, because we end the loop before we re-enter the event loop (if any) on this thread. Reentrancy from a different thread, OTOH, is not possible because we're holding m_videoProbeMutex while looping. Change-Id: I6c1e22cd01112f0b2650e056f0b7f4a392370b84 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Deprecate canonicalUrl and canonicalRequest in QMediaContentVaL Doroshchuk2019-05-131-1/+1
| | | | | | | | | | | Since QMediaContent can contain only one content and media resources are already deprecated, canonicalUrl and canonicalRequest are a bit confusing and outdated. Deprecated and replaced by QMediaContent::request() which already contains the url. Change-Id: I418006e112f49466b0129bf1e6e1ae629c714538 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Windows: Build directshow media player with wmf if availableVal Doroshchuk2019-01-145-22/+4
| | | | | | | | | | | | | | | | | | Removed -mediaplayer-backend configure param. It allows to build directshow media player together with wmf's one, if the last is available. It is useful to switch to another backend without rebuilding. By default directshow media player will be used. [ChangeLog][Platform Specific Changes][Windows] Removed -mediaplayer-backend config param which allowed to build wmf together with DirectShow. Task-number: QTBUG-32783 Change-Id: I486a93d9493407af3793cfe338b35daab7c642db Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2019-01-041-1/+1
|\ | | | | | | Change-Id: I5394a9d75850771068d43d2509b14a3ac4efcf83
| * WMF: Map PKEY_Media_EncodingSettings to QMediaMetaData::DescriptionVaL Doroshchuk2018-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | According to https://docs.microsoft.com/en-us/windows/desktop/medfound/metadata-properties-for-media-files PKEY_Media_EncodingSettings is closed to description. Task-number: QTBUG-72287 Change-Id: I2cafc4b922ffc8ad01db43f8dfb97097f8185501 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Do not use QMediaResource internallyVal Doroshchuk2018-08-304-15/+9
|/ | | | | | | | Removed usage of QMediaResource internally, since it is going to be deprecated. Task-number: QTBUG-28850 Change-Id: I476ae11ac58215aa4df4a76abb0cec3aa44f206a Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix Clang warningsFriedemann Kleint2017-11-021-0/+2
| | | | | | | | evrd3dpresentengine.cpp(52,11): warning: non-portable path to file '<QtGui/qguiapplication.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path] mfstream.cpp(233,13): warning: enumeration value 'msoBegin' not handled in switch [-Wswitch] Change-Id: I5aeb253a11de964090123b1d2c61435e31d488f6 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* WMF: Add support for QMediaMetaData::OrientationSteve Schilz2017-08-311-0/+7
| | | | | | Change-Id: I2cdf41d3d0c60774a9b5cb48eef3ee7850b2cadf Reviewed-by: Christian Stromme <christian.stromme@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Use QT_CONFIG macro to check for featuresLars Knoll2017-02-273-6/+5
| | | | | | | And remove many custom defines. Change-Id: I658cc8430d1d99ed3c0aafe03a77adce76621a29 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* WMF plugin: Prevent detaching of QMediaResourceListHannah von Reth2017-02-062-4/+4
| | | | | | Change-Id: I2bf0fa346a166bdb20ce76b1fd4d7227680810dd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Fix building the WMF pluginYoann Lopes2016-12-131-1/+1
| | | | | | | | | | | | 9df63fd6 made it possible to build only the audio decoder service from the WMF plugin. When that change was merged to 5.8 it was not ported to the new configuration system. Added a new '-mediaplayer-backend' configure option to select the media player backend to use on Windows. '-wmf-backend' is kept for backward compatibility. Change-Id: I902b2e4147f9a05b92118152020afc2638bf41e1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-261-1/+1
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/qnx/qnx.pro sync.profile Change-Id: I353a44578276264a9ffb80820d8c5a0babfa1638
| * Merge remote-tracking branch 'origin/5.6' into 5.75.7Liang Qi2016-11-241-1/+1
| |\ | | | | | | | | | Change-Id: Ic43abb034fa0a65b86a6e3511d29b8231ced5ec2
| | * WMF: Fix copy-and-paste errorChristian Strømme2016-11-171-1/+1
| | | | | | | | | | | | | | | Change-Id: I6e207b49917f0d3ab1ec39b067138eefd6581a49 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Fix compiler warningMaurice Kalinowski2016-11-141-0/+2
| | | | | | | | | | | | | | | Change-Id: I6a0e9cfed72e67fe3d556264b135b6e7c5bf6b9b Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Move qtmultimedia over to the new config systemLars Knoll2016-11-142-4/+5
|/ / | | | | | | | | | | | | | | | | | | | | | | 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-0413-14/+26
|\| | | | | | | Change-Id: Ib038c5e3ebb48c0e46569a35d530fa5ceaf06a32
| * WMF: make it possible to build only the audio decode serviceYoann Lopes2016-11-0212-13/+25
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * WMF: fix incorrect pointer dereferenceYoann Lopes2016-10-211-1/+1
| | | | | | | | | | | | Task-number: QTBUG-56134 Change-Id: I9c8799a96ff08f2657e4879dfbe14de3bfe3d25f 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
| * Merge remote-tracking branch 'origin/5.6.0' into 5.6Frederik Gladhorn2016-03-172-1/+2
| |\ | | | | | | | | | Change-Id: I91fb2886b4ab8f0b9e2e28329cec69dfa2cb5435
| | * [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>
* | | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-071-4/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-02-251-4/+4
| |/ | | | | | | | | | | | | | | 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-1936-504/+720
| | | | | | | | | | | | | | | | | | | | | | 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-1514-3693/+287
|\| | | | | | | | | | | | | | | 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-1210-3477/+92
| | | | | | | | | | | | | | | | | | | | | | 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: correctly handle samples in the video probe transform.Yoann Lopes2015-12-041-56/+29
| | | | | | | | | | | | | | | | | | Set the right flags so the renderer doesn't allocate its samples. We can then just forward the samples we get from the upstream element and avoid a copy. Change-Id: Iafc15b81531a7415823d063c47a326ea6239136f Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * WMF: fix type negotiation in video probe transform.Yoann Lopes2015-12-043-78/+87
| | | | | | | | | | | | | | | | - 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-155-11/+11
|/ | | | | Change-Id: I041496a88ac26d5db6bb65f61ff88a3aea01e3a4 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* DirectShow: use the EVR in the window control.Yoann Lopes2015-11-059-478/+112
| | | | | | | | | | 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>
* WMF: fix start time of buffers provided by QAudioDecoder.Yoann Lopes2015-05-191-1/+2
| | | | | | | | The time was in milliseconds but should be in microseconds. Task-number: QTBUG-45571 Change-Id: I54f07975e7a6233254a338dcde8075f740b5455c Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-154-23/+40
|\ | | | | | | | | | | | | | | 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-142-12/+18
| | | | | | | | | | | | | | | | | | | | 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>
* | Fix uninitialized memory reads in MFAudioDecoderControl.v5.5.0-alpha1Friedemann Kleint2015-03-101-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Initialize all members in constructor. [W] UMR: Uninitialized memory read in MFAudioDecoderControl::handleMediaSourceReady(void) {1 occurrence} Error location MFAudioDecoderControl::handleMediaSourceReady(void) [c:\qt\qt-55-32\qt-55-32\qtmultimedia\src\plugins\wmf\decoder\mfaudiodecodercontrol.cpp:254] [W] UMR: Uninitialized memory read in MFAudioDecoderControl::activatePipeline(void) {1 occurrence} MFAudioDecoderControl::activatePipeline(void) [c:\qt\qt-55-32\qt-55-32\qtmultimedia\src\plugins\wmf\decoder\mfaudiodecodercontrol.cpp:289] Task-number: QTBUG-40571 Change-Id: I6f97cf72284f739ceffcf65162963d00de979ea2 Reviewed-by: Yoann Lopes <yoann.lopes@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>