From 841bc9aa0ab28dae6c25a2ccce04ad34d1fa160f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertil=20=C3=85kesson?= Date: Mon, 9 Mar 2020 13:47:29 +0100 Subject: [PATCH] Add support for HLG HDR video thumbnails Android added support for correctly applying color transfer for thumbnails of HDR videos with PQ color transfer, this expands it to HLG color transfer. Bug: 151096599 Test: manual - see bug Change-Id: I880b2baeeab49a623fcc6e3568c1569b9d3788e4 --- media/libstagefright/FrameCaptureLayer.cpp | 3 ++- media/libstagefright/FrameDecoder.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/media/libstagefright/FrameCaptureLayer.cpp b/media/libstagefright/FrameCaptureLayer.cpp index 815057df61..d2cfd41fc9 100644 --- a/media/libstagefright/FrameCaptureLayer.cpp +++ b/media/libstagefright/FrameCaptureLayer.cpp @@ -67,7 +67,8 @@ ui::Dataspace translateDataspace(ui::Dataspace dataspace) { bool isHdrY410(const BufferItem &bi) { ui::Dataspace dataspace = translateDataspace(static_cast(bi.mDataSpace)); // pixel format is HDR Y410 masquerading as RGBA_1010102 - return (dataspace == ui::Dataspace::BT2020_ITU_PQ && + return ((dataspace == ui::Dataspace::BT2020_ITU_PQ || + dataspace == ui::Dataspace::BT2020_ITU_HLG) && bi.mGraphicBuffer->getPixelFormat() == HAL_PIXEL_FORMAT_RGBA_1010102); } diff --git a/media/libstagefright/FrameDecoder.cpp b/media/libstagefright/FrameDecoder.cpp index 3c4524b0d6..734f5bb5ae 100644 --- a/media/libstagefright/FrameDecoder.cpp +++ b/media/libstagefright/FrameDecoder.cpp @@ -248,7 +248,8 @@ bool isHDR(const sp &format) { transfer = 0; } return standard == ColorUtils::kColorStandardBT2020 && - transfer == ColorUtils::kColorTransferST2084; + (transfer == ColorUtils::kColorTransferST2084 || + transfer == ColorUtils::kColorTransferHLG); } status_t FrameDecoder::init(