summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2014-05-14 18:45:37 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-15 15:12:18 +0200
commite9e10b2b1f025c3aa53a8904ec0a65e88fcb2887 (patch)
treebe903d6dfabb240f5b44f9ac60fe9c936d1ce9e0
parent235c863db9c495e820fe7ac53918e74f342b71e6 (diff)
downloadqtmultimedia-e9e10b2b1f025c3aa53a8904ec0a65e88fcb2887.tar.gz
WMF: fix video frames' viewport.
It was not taken into account at all. Change-Id: I4ce85aba214cb4d89dcd018b1616a2a38094b5a6 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
-rw-r--r--src/plugins/wmf/player/mfvideorenderercontrol.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/wmf/player/mfvideorenderercontrol.cpp b/src/plugins/wmf/player/mfvideorenderercontrol.cpp
index 040682965..420473666 100644
--- a/src/plugins/wmf/player/mfvideorenderercontrol.cpp
+++ b/src/plugins/wmf/player/mfvideorenderercontrol.cpp
@@ -572,6 +572,18 @@ namespace
QVideoSurfaceFormat format(QSize(width, height), m_pixelFormats[index]);
m_surfaceFormat = format;
+ MFVideoArea viewport;
+ if (SUCCEEDED(pMediaType->GetBlob(MF_MT_GEOMETRIC_APERTURE,
+ reinterpret_cast<UINT8*>(&viewport),
+ sizeof(MFVideoArea),
+ NULL))) {
+
+ m_surfaceFormat.setViewport(QRect(viewport.OffsetX.value,
+ viewport.OffsetY.value,
+ viewport.Area.cx,
+ viewport.Area.cy));
+ }
+
if (FAILED(pMediaType->GetUINT32(MF_MT_DEFAULT_STRIDE, (UINT32*)&m_bytesPerLine))) {
m_bytesPerLine = getBytesPerLine(format);
}