diff options
author | André de la Rocha <andre.rocha@qt.io> | 2022-06-21 19:28:23 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-06-22 15:02:30 +0000 |
commit | f7ce1b957fab0ae9b5bfe2cdc9e7d2893edb3b09 (patch) | |
tree | 598358b0652820a9f412ef989256e659d5811fbc | |
parent | 77805b9af37e8b94e6c3ca669ac502bf06287498 (diff) |
Windows: Ensure captured image respects configured resolution
Task-number: QTBUG-103591
Change-Id: Id04121da04d3cd6efdd1fd2d479b9d3a6c553133
Reviewed-by: Lars Knoll <lars.knoll@gmail.com>
(cherry picked from commit 6381c371c082323343d26b621aa24209945b7091)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/plugins/multimedia/windows/mediacapture/qwindowsimagecapture.cpp | 12 |
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); |