diff options
-rw-r--r-- | src/multimedia/video/qvideoframeformat.cpp | 4 | ||||
-rw-r--r-- | tests/auto/unit/multimedia/qvideoframe/tst_qvideoframe.cpp | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/multimedia/video/qvideoframeformat.cpp b/src/multimedia/video/qvideoframeformat.cpp index cdb1d3c0a..b2c9dc5f1 100644 --- a/src/multimedia/video/qvideoframeformat.cpp +++ b/src/multimedia/video/qvideoframeformat.cpp @@ -743,7 +743,9 @@ QVideoFrameFormat::PixelFormat QVideoFrameFormat::pixelFormatFromImageFormat(QIm case QImage::Format_RGBA8888: return QVideoFrameFormat::Format_RGBA8888; case QImage::Format_RGBA8888_Premultiplied: - return QVideoFrameFormat::Format_ARGB8888_Premultiplied; + // QVideoFrameFormat::Format_RGBA8888_Premultiplied is to be added in 6.8 + // Format_RGBX8888 suits the best as a workaround + return QVideoFrameFormat::Format_RGBX8888; case QImage::Format_RGBX8888: return QVideoFrameFormat::Format_RGBX8888; case QImage::Format_Grayscale8: diff --git a/tests/auto/unit/multimedia/qvideoframe/tst_qvideoframe.cpp b/tests/auto/unit/multimedia/qvideoframe/tst_qvideoframe.cpp index ba1ad233c..43eb8be9a 100644 --- a/tests/auto/unit/multimedia/qvideoframe/tst_qvideoframe.cpp +++ b/tests/auto/unit/multimedia/qvideoframe/tst_qvideoframe.cpp @@ -788,6 +788,11 @@ void tst_QVideoFrame::formatConversion_data() QTest::newRow("QVideoFrameFormat::Format_Jpeg") << QImage::Format_Invalid << QVideoFrameFormat::Format_Jpeg; + QTest::newRow("QVideoFrameFormat::Format_RGBX8888") + << QImage::Format_RGBX8888 << QVideoFrameFormat::Format_RGBX8888; + QTest::newRow("QImage::Format_RGBA8888_Premultiplied => QVideoFrameFormat::Format_RGBX8888 " + "(workaround)") + << QImage::Format_RGBA8888_Premultiplied << QVideoFrameFormat::Format_RGBX8888; } void tst_QVideoFrame::formatConversion() @@ -798,6 +803,12 @@ void tst_QVideoFrame::formatConversion() if (imageFormat != QImage::Format_Invalid) QCOMPARE(QVideoFrameFormat::pixelFormatFromImageFormat(imageFormat), pixelFormat); + if (imageFormat == QImage::Format_RGBA8888_Premultiplied) { + qWarning() << "Workaround: convert QImage::Format_RGBA8888_Premultiplied to " + "QVideoFrameFormat::Format_RGBX8888; to be removed in 6.8"; + return; + } + if (pixelFormat != QVideoFrameFormat::Format_Invalid) QCOMPARE(QVideoFrameFormat::imageFormatFromPixelFormat(pixelFormat), imageFormat); } |