summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/phonon/ds9/videorenderer_evr.h
diff options
context:
space:
mode:
authorAPTX <APTX@321@gmail.com>2009-09-25 00:45:20 (GMT)
committerThierry Bastian <thierry.bastian@nokia.com>2009-11-16 10:59:03 (GMT)
commit4c34411151516badbf0e286c9a477845cb02b1cc (patch)
tree334e10ab771adf37e84361eeb3e8080b44560195 /src/3rdparty/phonon/ds9/videorenderer_evr.h
parentb4790f30d62b00bd1a91ca9de78b3c5738de5fd1 (diff)
downloadQt-4c34411151516badbf0e286c9a477845cb02b1cc.zip
Qt-4c34411151516badbf0e286c9a477845cb02b1cc.tar.gz
Qt-4c34411151516badbf0e286c9a477845cb02b1cc.tar.bz2
Add EVR to the Phonon DirectShow9 (ds9) backend as the default.
EVR stands for Enhanced Video Renderer and uses DXVA2. It was introduced in Windows Vista. Merge-Request: 1606 Reviewed-By: Thierry
Diffstat (limited to 'src/3rdparty/phonon/ds9/videorenderer_evr.h')
-rw-r--r--src/3rdparty/phonon/ds9/videorenderer_evr.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/3rdparty/phonon/ds9/videorenderer_evr.h b/src/3rdparty/phonon/ds9/videorenderer_evr.h
new file mode 100644
index 0000000..055e618
--- /dev/null
+++ b/src/3rdparty/phonon/ds9/videorenderer_evr.h
@@ -0,0 +1,70 @@
+/* This file is part of the KDE project.
+
+Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+
+This library is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 2.1 or 3 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this library. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef PHONON_VIDEORENDERER_EVR_H
+#define PHONON_VIDEORENDERER_EVR_H
+
+#include "abstractvideorenderer.h"
+#include "compointer.h"
+
+#include <Mfidl.h>
+
+QT_BEGIN_NAMESPACE
+
+#ifndef QT_NO_PHONON_VIDEO
+
+namespace Phonon
+{
+ namespace DS9
+ {
+ class VideoRendererEVR : public AbstractVideoRenderer
+ {
+ public:
+ VideoRendererEVR(QWidget *target);
+ ~VideoRendererEVR();
+
+ //Implementation from AbstractVideoRenderer
+ void repaintCurrentFrame(QWidget *target, const QRect &rect);
+ void notifyResize(const QSize&, Phonon::VideoWidget::AspectRatio, Phonon::VideoWidget::ScaleMode);
+ QSize videoSize() const;
+ QImage snapshot() const;
+ void applyMixerSettings(qreal brightness, qreal contrast, qreal m_hue, qreal saturation);
+ bool isNative() const;
+ private:
+ QWidget *m_target;
+
+ template <typename T> ComPointer<T> getService(REFGUID guidService, REFIID riid) const
+ {
+ ComPointer<IMFGetService> getService(m_filter, IID_IMFGetService);
+ Q_ASSERT(getService);
+ T *ptr = 0;
+ HRESULT hr = getService->GetService(guidService, riid, (void **) &ptr);
+ if (!SUCCEEDED(hr) || ptr == 0)
+ Q_ASSERT(!SUCCEEDED(hr) && ptr != 0);
+ ComPointer<T> service(ptr);
+ return service;
+ }
+ };
+ }
+}
+
+#endif //QT_NO_PHONON_VIDEO
+
+QT_END_NAMESPACE
+
+#endif
+