drm: Unset COLOR_RANGE and COLOR_ENCODING if not YCbCr or unbound

This commit is contained in:
Joshua Ashton 2022-08-09 02:20:16 +00:00 committed by Simon Ser
parent e2bc5d4c71
commit 60513c0925

View file

@ -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" );
}
}