From 60513c09251ca60371f26911fda55761dfc64b29 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Tue, 9 Aug 2022 02:20:16 +0000 Subject: [PATCH] drm: Unset COLOR_RANGE and COLOR_ENCODING if not YCbCr or unbound --- src/drm.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/drm.cpp b/src/drm.cpp index 96389da..df294b4 100644 --- a/src/drm.cpp +++ b/src/drm.cpp @@ -1391,12 +1391,23 @@ drm_prepare_liftoff( struct drm_t *drm, const struct FrameInfo_t *frameInfo ) liftoff_layer_set_property( drm->lo_layers[ i ], "CRTC_W", crtcW); liftoff_layer_set_property( drm->lo_layers[ i ], "CRTC_H", crtcH); - liftoff_layer_set_property( drm->lo_layers[ i ], "COLOR_ENCODING", drm_get_color_encoding( g_ForcedNV12ColorSpace ) ); - liftoff_layer_set_property( drm->lo_layers[ i ], "COLOR_RANGE", drm_get_color_range( g_ForcedNV12ColorSpace ) ); + if ( frameInfo->layers[i].isYcbcr() ) + { + liftoff_layer_set_property( drm->lo_layers[ i ], "COLOR_ENCODING", drm_get_color_encoding( g_ForcedNV12ColorSpace ) ); + liftoff_layer_set_property( drm->lo_layers[ i ], "COLOR_RANGE", drm_get_color_range( g_ForcedNV12ColorSpace ) ); + } + else + { + liftoff_layer_unset_property( drm->lo_layers[ i ], "COLOR_ENCODING" ); + liftoff_layer_unset_property( drm->lo_layers[ i ], "COLOR_RANGE" ); + } } else { liftoff_layer_set_property( drm->lo_layers[ i ], "FB_ID", 0 ); + + liftoff_layer_unset_property( drm->lo_layers[ i ], "COLOR_ENCODING" ); + liftoff_layer_unset_property( drm->lo_layers[ i ], "COLOR_RANGE" ); } }