From 2b96c113cf7057b556856149114999b973b3f2c2 Mon Sep 17 00:00:00 2001 From: VaL Doroshchuk Date: Thu, 20 Feb 2020 12:57:42 +0100 Subject: Map QVideoFrame::Format_Y8=>QImage::Format_Grayscale8 in QVideoFrame Pick-to: 5.15 Fixes: QTBUG-52455 Change-Id: I30582582935ae0a2c5094db995cba83b62adc767 Reviewed-by: Liang Qi --- src/multimedia/video/qvideoframe.cpp | 5 ++++- src/multimediawidgets/qpaintervideosurface.cpp | 3 ++- tests/auto/unit/qpaintervideosurface/tst_qpaintervideosurface.cpp | 4 ++-- tests/auto/unit/qvideoframe/tst_qvideoframe.cpp | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/multimedia/video/qvideoframe.cpp b/src/multimedia/video/qvideoframe.cpp index fd7b74075..7840eda31 100644 --- a/src/multimedia/video/qvideoframe.cpp +++ b/src/multimedia/video/qvideoframe.cpp @@ -964,6 +964,8 @@ QVideoFrame::PixelFormat QVideoFrame::pixelFormatFromImageFormat(QImage::Format return Format_RGB555; case QImage::Format_RGB888: return Format_RGB24; + case QImage::Format_Grayscale8: + return Format_Y8; default: return Format_Invalid; } @@ -1017,12 +1019,13 @@ QImage::Format QVideoFrame::imageFormatFromPixelFormat(PixelFormat format) case Format_IMC2: case Format_IMC3: case Format_IMC4: - case Format_Y8: case Format_Y16: case Format_Jpeg: case Format_CameraRaw: case Format_AdobeDng: return QImage::Format_Invalid; + case Format_Y8: + return QImage::Format_Grayscale8; case Format_User: default: return QImage::Format_Invalid; diff --git a/src/multimediawidgets/qpaintervideosurface.cpp b/src/multimediawidgets/qpaintervideosurface.cpp index 6ba7cff02..bb194bd61 100644 --- a/src/multimediawidgets/qpaintervideosurface.cpp +++ b/src/multimediawidgets/qpaintervideosurface.cpp @@ -108,7 +108,8 @@ QVideoSurfaceGenericPainter::QVideoSurfaceGenericPainter() m_imagePixelFormats << QVideoFrame::Format_RGB24; m_imagePixelFormats << QVideoFrame::Format_ARGB32 - << QVideoFrame::Format_RGB565; + << QVideoFrame::Format_RGB565 + << QVideoFrame::Format_Y8; } QList QVideoSurfaceGenericPainter::supportedPixelFormats( diff --git a/tests/auto/unit/qpaintervideosurface/tst_qpaintervideosurface.cpp b/tests/auto/unit/qpaintervideosurface/tst_qpaintervideosurface.cpp index be5c85ab9..98ec5fc06 100644 --- a/tests/auto/unit/qpaintervideosurface/tst_qpaintervideosurface.cpp +++ b/tests/auto/unit/qpaintervideosurface/tst_qpaintervideosurface.cpp @@ -253,8 +253,8 @@ void tst_QPainterVideoSurface::supportedFormat_data() << QAbstractVideoBuffer::NoHandle << QVideoFrame::Format_Y8 << QSize(640, 480) - << false - << false; + << true + << true; QTest::newRow("Texture: rgb32 640x480") << QAbstractVideoBuffer::GLTextureHandle << QVideoFrame::Format_RGB32 diff --git a/tests/auto/unit/qvideoframe/tst_qvideoframe.cpp b/tests/auto/unit/qvideoframe/tst_qvideoframe.cpp index 943051435..bb77b7cca 100644 --- a/tests/auto/unit/qvideoframe/tst_qvideoframe.cpp +++ b/tests/auto/unit/qvideoframe/tst_qvideoframe.cpp @@ -975,7 +975,7 @@ void tst_QVideoFrame::formatConversion_data() << QImage::Format_Invalid << QVideoFrame::Format_IMC4; QTest::newRow("QVideoFrame::Format_Y8") - << QImage::Format_Invalid + << QImage::Format_Grayscale8 << QVideoFrame::Format_Y8; QTest::newRow("QVideoFrame::Format_Y16") << QImage::Format_Invalid -- cgit v1.2.3