summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/player
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-04-181-0/+108
|\ | | | | | | Change-Id: I7cd203eec77f3b5689c14b81b0862c5b70bab1a6
| * DirectShow: support audio and video codec metadataYoann Lopes2017-03-201-0/+108
| | | | | | | | | | | | | | | | | | Retrieve the audio and video codec metadata from media files. As the GUID of these codecs are only defined in the WMF API, we have to hardcode them here. Change-Id: I9a057e62d9473f605cf5078d3386c5827784ae28 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-03-105-28/+29
|\| | | | | | | | | | | | | Conflicts: src/plugins/gstreamer/camerabin/camerabincontainer.h Change-Id: I4942d41d69112335fe0c994002f1b32ef3aad051
| * Use QT_CONFIG macro to check for featuresLars Knoll2017-02-274-9/+6
| | | | | | | | | | | | | | And remove many custom defines. Change-Id: I658cc8430d1d99ed3c0aafe03a77adce76621a29 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
| * DirectShow: Port to new configure system (evr, wmsdk)Friedemann Kleint2017-02-035-19/+23
| | | | | | | | | | | | | | | | Replace old legacy defines by QT_CONFIG. Fixes warnings when using MinGW: qtmultimedia/src/multimedia/qtmultimedia-config.h:4:0: warning: "QT_NO_WMSDK" redefined Change-Id: Ifbfc2cea3bf5bfd06d94fd70e6ea4afb6d6fbb4b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | DirectShow: Sanitize DirectShowMediaTypeChristian Strømme2017-01-274-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The DirectShowMediaType is now a thin data wrapper around AM_MEDIA_TYPE and will for the most look and work the same way, with the exception that it cleans up after itself. All utility functions are now static, except clear() which, for convenience, is also provided as a non-static member function. In addition to the changes mentioned above, duplicated methods were removed, conversion for ARGB32 was added, and an attempt to make the usage of AM_MEDIA_TYPE and DirectShowMediaType was made more consistent. Change-Id: Iad32fb8eeabd9d4183e9bd10426cac3963e5d99a Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-121-4/+4
|\| | | | | | | | | | | | | Conflicts: src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp Change-Id: I7c30c2d13fdd07ee07e4449d5d3e256e988d3793
| * Move qtmultimedia over to the new config systemLars Knoll2016-11-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | DirectShow: Use qFuzzyCompare when comparing floating points valuesChristian Strømme2016-11-161-2/+2
| | | | | | | | | | Change-Id: I8b3584a8d1f2039e138e4065de0d546a301b97bb Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | DirectShow: Reduce the size of DirectShowPlayerServiceChristian Strømme2016-11-151-5/+5
|/ | | | | Change-Id: Icde2c43af0128642721d0f7eda79b44eeca1b844 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Yoann Lopes2016-09-012-11/+68
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/multimedia/audio/qaudiosystemplugin.cpp src/plugins/directshow/helpers/directshowobject.cpp src/plugins/directshow/player/directshowiosource.cpp src/plugins/directshow/player/directshowiosource.h Change-Id: I0e4632c7705128f81429ddbcb0d4abbc04858a8b
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-273-11/+77
| |\ | | | | | | | | | Change-Id: I639d42e78a2b85e939c9f8e9dd5da70cdc058857
| | * DirectShow: Restore negotiation of sample type in the io filterChristian Stromme2016-08-233-11/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This functionality was removed in d44a327da4a956f62cc0d51, but is still needed, as we need to negotiate the media type with the input pin; even if we limit the scope to streaming types. Task-number: QTBUG-55264 Change-Id: I7cc02c5ea17cca9912c29c40813314b04b91bd18 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-023-5/+27
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/integration/qsoundeffect/BLACKLIST Change-Id: Icd2edd4410a4ee914d489634d26b262c0c146bf4
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Yoann Lopes2016-08-013-5/+27
| |\| | | | | | | | | | Change-Id: Ic29cb09048003f18ff86d4546cd547be715eaec8
| | * DirectShow: correctly clear surface in EVR presenterYoann Lopes2016-07-062-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | The surface was never cleared in the EVR presenter. It could lead to situations where the presenter would use a destroyed surface. Change-Id: If2223f09f6f8c20c06345bed40803da10dcf4ae3 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * DirectShow: fix deadlock in VideoSurfaceFilterYoann Lopes2016-07-051-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the DirectShow graph is done being built, there's no need to wake up any blocking calls on the main thread since setting a source is done asynchronously anyway. This could cause synchronous operations (like stopping or changing the video output) to end prematurely if called while a source was still being loaded, in turn causing the deadlock. Task-number: QTBUG-54504 Change-Id: I4f534e637bfca6d3020a3bc28725c8c7042941d5 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* | | Merge remote-tracking branch 'origin/5.7' into devEdward Welbourne2016-07-212-130/+42
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/directshow/player/directshowiosource.cpp One side disintermediated filling a vector; the other reduced it to one entry. src/plugins/directshow/player/directshowiosource.h One side renamed a member, the other added another adjacent to it. src/plugins/pulseaudio/qpulseaudioengine.h One side added a header, the other replaced the next with a different header. Change-Id: I3a031975f5af43ca39cca571f215c612f640b7d6
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-302-133/+41
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Blacklisted a few functions in tst_QAudioInput. Conflicts: .qmake.conf src/plugins/avfoundation/camera/avfcameracontrol.mm src/plugins/avfoundation/camera/avfcameraservice.h src/plugins/avfoundation/camera/avfcameraservice.mm src/plugins/avfoundation/camera/avfcamerasession.h src/plugins/avfoundation/camera/avfcamerasession.mm src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.mm src/plugins/avfoundation/camera/avfimagecapturecontrol.mm src/plugins/avfoundation/camera/avfimageencodercontrol.mm src/plugins/avfoundation/camera/avfmediarecordercontrol.h src/plugins/avfoundation/camera/avfmediarecordercontrol.mm tests/auto/integration/qaudioinput/BLACKLIST Task-number: QTBUG-54459 Task-number: QTBUG-49736 Change-Id: I3a1fe8cef50b44d5c2785aaf4cf69fe3f16728e6
| | * DirectShow: fix playing resource files.Yoann Lopes2016-05-202-133/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our custom filter that streams the data into the pipeline was incorrectly negotiating the sample type with the downstream filter. This also fixes playback when passing a QIODevice to QMediaPlayer. Task-number: QTBUG-46899 Change-Id: Iea8b8731d5404c416c8ed0d59cb61958b13b61b0 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | DirectShow: refactor custom renderer filterYoann Lopes2016-07-0618-2364/+609
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor out some of the filter and pin logic into the DirectShowBaseFilter and DirectShowPin abstract classes. This will avoid code duplication when implementing the probe filter. The existing source filter (for qrc files) can also be refactored to use these abstract classes. Change-Id: Iaf141472dea82579ad085b3318624f9a57aa46d8 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | DirectShow: fix media player volume.Yoann Lopes2016-06-141-16/+13
| | | | | | | | | | | | | | | | | | | | | | | | The Qt volume was interpreted as a logarithmic factor but it should actually be linear. Change-Id: I0f3e742e934261742bd96f5e3ca3fb42f310864c Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-131-1/+4
|\| | | | | | | | | | | Change-Id: I773db005bbdc511169917ee35eb5b517e898926b
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-101-1/+4
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/winrt/qwinrtcameracontrol.cpp Change-Id: I45d3042adf19577a72794610fa1c310cb22e26c4
| | * DirectShow: Invoke IGraphBuilder::AddSourceFilter() with local file name.Friedemann Kleint2016-05-031-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When possible, convert the URL to a local file name with native separators. The method seems to accept URLs with file scheme, but fails when passing UNC paths. Task-number: QTBUG-53114 Change-Id: Ib7418090080be8c1b8472e77541e686adaa3a18a Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-061-13/+26
|\| | | | | | | | | | | Change-Id: I8027e798d85ae60dbcb4fbc8592e3992af7546d4
| * | DirectShow: Improve error handling.Friedemann Kleint2016-05-031-13/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | Retrieve COM error via struct _com_error and output a qWarning() whenever a QMediaPlayer::ResourceError occurs. Task-number: QTBUG-53114 Change-Id: I3eceafeade60dd35e6c570499cef6093b49d737d Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Remove Windows CE.Friedemann Kleint2016-04-283-44/+7
|/ / | | | | | | | | | | | | | | Remove #ifdef sections for Q_OS_WINCE and wince .pro file clauses. Task-number: QTBUG-51673 Change-Id: I07ea3a9522d5b6bd8cce6f5256d92e65a699e3f5 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-081-2/+0
|\| | | | | | | Change-Id: I7de78c63b5f81620474c69e5c651202c553a70d7
| * wince: revert flipping Video contentAndreas Holzammer2016-04-061-2/+0
| | | | | | | | | | | | | | | | It turned out in my previous tests, that the codec which I used is buggy and does not play well with this documented behavior. Change-Id: I8aff9f68d449da10de4fa33073d5d5cbe9b2a281 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-2116-26/+93
|\| | | | | | | Change-Id: Ieb1a3081907093e31e8c8b7f95993bb3b2173672
| * Port DirectShow backend to winceAndreas Holzammer2016-03-0916-26/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dshow.h needs to be included before Qt headers as they include the windows header with NOMINMAX macro set. DirectShow header needs min/max macro definition to compile. The min/max macro then conflicts with QDateTime header, hence needs to be undefined again for some occasions. Windows Embedded Compact then defines INTERFACE as macro, which conflicts. Windows Embedded Compact does not support audio end point selection. Feature has been disabled for this platform. Windows Embedded Compact does not support setting meta data, control has been disabled. Windows Embedded Compact does not support VMR, feature was disabled. Direct Show renders always top to buttom. Change-Id: Id17700835e2105fb127b12e3448bea16e3b52546 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Updated license headersAntti Kokko2016-01-1933-462/+660
| | | | | | | | | | | | | | | | | | | | | | 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-1510-51/+92
|\| | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * Windows: Improve EVR presenter.Yoann Lopes2016-01-122-44/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-124-12/+51
| | | | | | | | | | | | | | | | | | | | | | 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>
| * DirectShow: fix metadata signals when changing media.Yoann Lopes2016-01-063-12/+29
| | | | | | | | | | | | | | | | The metaDataChanged() and metaDataAvailableChanged() signals should be emitted immediately when changing or clearing the current media. Change-Id: I3152e2c32420ba6f11cf6780013e02208a9d6599 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * DirectShow: fix media player's positionChanged() signal.Yoann Lopes2016-01-064-11/+28
| | | | | | | | | | | | | | | | The signal was not emitted at the right time or with incorrect values under certain circumstances. Change-Id: Ib8b1d38381d908399752856db7b0a987c4422bb1 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * DirectShow: Remove unused static function decibelsToVolume().Friedemann Kleint2015-11-251-11/+0
| | | | | | | | | | | | | | | | Fix warning: player\directshowplayercontrol.cpp:56:12: warning: 'int decibelsToVolume(int)' defined but not used [-Wunused-function] Change-Id: Ic482be6b58f675da008a0e0600d73c127871f3d7 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | DirectShow plugin: replace foreach with range-based forAnton Kudryavtsev2016-01-154-6/+7
|/ | | | | Change-Id: Id1a0b4d2c3defe254e503079faa8b35eaaba8c08 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* DirectShow: Avoid warning about unresolved error when file is missing.Nodir Temirkhodjaev2015-11-111-0/+1
| | | | | | | AddSourceFilter() can return E_FAIL. Change-Id: Idbd8ec5a4a3c9b9d8fef9ff690cc0169f4027666 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* DirectShow: fix custom renderer reference counting.Yoann Lopes2015-11-062-5/+7
| | | | | Change-Id: Iadefd4d72bdafb982a79b99ee5880dba32f3e920 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* DirectShow: use the EVR in the window control.Yoann Lopes2015-11-0510-37/+175
| | | | | | | | | | 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>
* DirectShow: fix media player seeking.Yoann Lopes2015-11-044-24/+43
| | | | | | | Correctly handle seek requests happening when the media is not playing. Change-Id: I82c508dae41792b75a26e86512da66a4871f6352 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* DirectShow: fix some media player status issue.Yoann Lopes2015-11-041-0/+5
| | | | | | | | Change the status to LoadedMedia if the media position is changed while in the EndOfMedia status. Change-Id: I6614fc184be80b11952b0e45af22ef030cfc36c5 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* DirectShow: clear current video frame when stopping.Yoann Lopes2015-11-041-0/+8
| | | | | Change-Id: I063d8a1b95f3d751f55dfce7fa2cb749177dc906 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* DirectShow: set timestamp on media player frames.Yoann Lopes2015-11-041-4/+18
| | | | | Change-Id: Ie3d395c7ac4a9c1f52c3dedfd5bc3993744aa503 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* DirectShow: fix setting volume when a media is not loaded.Yoann Lopes2015-11-042-38/+26
| | | | | | | Store the pending volume and apply it once the media is loaded. Change-Id: I6998e9139aa3680220faa871b3116409855a1b35 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* [DirectShow] Fix potential memory access violationKonstantin Ritt2015-04-131-0/+3
| | | | | Change-Id: I5da495d255e6fdd3a70c1ed486afb61f157c923e Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* [DirectShow] Fix potention undefined behavior on destructionKonstantin Ritt2015-04-134-3/+8
| | | | | | | | | The exact warning is: > deleting object of polymorphic class type which has non-virtual destructor might cause undefined behavior Change-Id: I8f259def3f1f7f776fb31ace9dfcc7145426f5c0 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>