summaryrefslogtreecommitdiffstats
path: root/src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp')
-rw-r--r--src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp b/src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp
index e2a1952db..f09753cf9 100644
--- a/src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp
+++ b/src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp
@@ -130,13 +130,23 @@ void QWindowsImageCapture::handleVideoFrameChanged(const QVideoFrame &frame)
QImage image = frame.toImage();
+ QSize size = m_settings.resolution();
+ if (size.isValid() && image.size() != size) {
+ image = image.scaled(size, Qt::KeepAspectRatioByExpanding);
+ if (image.size() != size) {
+ int xoff = (image.size().width() - size.width()) / 2;
+ int yoff = (image.size().height() - size.height()) / 2;
+ image = image.copy(xoff, yoff, size.width(), size.height());
+ }
+ }
+
emit imageExposed(m_captureId);
emit imageAvailable(m_captureId, frame);
emit imageCaptured(m_captureId, image);
QMediaMetaData metaData = this->metaData();
metaData.insert(QMediaMetaData::Date, QDateTime::currentDateTime());
- metaData.insert(QMediaMetaData::Resolution, frame.size());
+ metaData.insert(QMediaMetaData::Resolution, size);
emit imageMetadataAvailable(m_captureId, metaData);