Commit Graph

8 Commits

Author SHA1 Message Date
Friedemann Kleint
71a6b1b620 DirectShow: Fix MinGW warnings about signedness of comparison.
Use a switch on int instead of else if.

common\evr\evrcustompresenter.cpp: In member function 'virtual bool EVRCustomPresenter::event(QEvent*)':
common\evr\evrcustompresenter.cpp:1882:22: warning: comparison between 'enum QEvent::Type' and 'enum EVRCustomPresenter::PresenterEvents' [-Wenum-compare]
     if (e->type() == StartSurface) {
                      ^
common\evr\evrcustompresenter.cpp:1885:29: warning: comparison between 'enum QEvent::Type' and 'enum EVRCustomPresenter::PresenterEvents' [-Wenum-compare]
     } else if (e->type() == StopSurface) {
                             ^
common\evr\evrcustompresenter.cpp:1888:29: warning: comparison between 'enum QEvent::Type' and 'enum EVRCustomPresenter::PresenterEvents' [-Wenum-compare]
     } else if (e->type() == PresentSample) {

Change-Id: I8533e2c6d9b0a01b7b95e1d8bb119b50d4aabd25
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2016-03-21 08:08:46 +00:00
Mark Brand
bf899dbf4d fix case of included files
Cross-compiling for mingw requires lowercase filenames.

Change-Id: I135deca455ca2ff6bb3969aca990fe9d1c2dd345
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2016-03-18 13:50:09 +00:00
Yoann Lopes
399ec97f10 Windows EVR: show frames when pausing from stopped state.
The QAbstractVideoSurface was started only when calling play(), causing
frames received before (e.g. when pausing from stopped state) to not
be rendered.
The surface is now started as soon as a media type is agreed between
the EVR and the upstream element. Conversely, the surface is stopped
whenever the media type is cleared.

Change-Id: Ia96a07dbd277adce67de5a9cfbf9acc0d33b6497
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2016-03-15 15:35:49 +00:00
Yoann Lopes
59629bef84 Windows EVR: fix EndOfStream event never being sent.
This was causing QMediaPlayer to never go into the EndOfMedia state.

Task-number: QTBUG-50814
Change-Id: I8920cf93db37a834f67b9e0b4abcf5a4934dfe0e
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2016-02-04 10:43:24 +00:00
Yoann Lopes
406f76b903 Windows: fix build with -opengl desktop.
Task-number: QTBUG-50510
Change-Id: Ide1b58061d0fcdd5caf8597af8cfaec2483d712b
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2016-01-18 13:32:39 +00:00
Yoann Lopes
c7397523e7 Windows: Improve EVR presenter.
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>
2016-01-12 15:51:32 +00:00
Yoann Lopes
36549dbe14 DirectShow: use the EVR in the renderer control.
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>
2016-01-12 15:51:24 +00:00
Yoann Lopes
95bd9d58d8 DirectShow: use the EVR in the window control.
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>
2015-11-05 11:34:55 +00:00