-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.8.3, 6.10.0 Beta2
-
None
In Qt 6.8.3, the setMirrored() and setRotation() methods in QVideoFrame don’t work as expected.
- setRotation() only rotates the canvas (the display area), but doesn’t actually rotate the original video data.
- setMirrored() does nothing at all — no mirror effect is applied.
These features worked fine in Qt 6.5.3.
I tested this using Qt’s Camera example, and the issue still persists,The difference is clearly visible in the attached screenshots.
To verify this issue, you can replace the line
{{}}
m_captureSession.setVideoOutput(ui->viewfinder)
{{}}
in the Camera example’s setCamera() method with the following code:
auto videoSink = ui->viewfinder->videoSink(); if (videoSink) { connect(videoSink, &QVideoSink::videoFrameChanged, [=](const QVideoFrame& videoFrame) { auto frame = videoFrame; frame.setMirrored(true); #if QT_VERSION >= QT_VERSION_CHECK(6, 8, 3) frame.setRotation(QtVideo::Rotation::Clockwise90); #else frame.setRotationAngle(QVideoFrame::Rotation90); #endif videoSink->setVideoFrame(frame); }); m_captureSession.setVideoSink(videoSink); } // m_captureSession.setVideoOutput(ui->viewfinder);
- relates to
-
QTBUG-137173 Windows native multimedia backend does not agree with Windows Media Player when dealing with rotated video
-
- Closed
-