1
0
Fork 0

drm_hwcomposer: Fix HDR metadata handling

Remove const qualifiers from luminance data variables.

Set an empty HDR_OUTPUT_METADATA blob to ensure the property is
cleared when switching color modes.

Change-Id: I15d1477a98a1f4e103ef0202c157b8dfb5af8f86
Signed-off-by: Sasha McIntosh <sashamcintosh@google.com>
This commit is contained in:
Sasha McIntosh 2025-03-11 17:58:37 -04:00
parent 7979d2ae8c
commit 7009cc1909
3 changed files with 15 additions and 15 deletions

View file

@ -41,9 +41,9 @@ class EdidWrapper {
types.clear();
};
virtual void GetHdrCapabilities(std::vector<ui::Hdr> &types,
const float * /*max_luminance*/,
const float * /*max_average_luminance*/,
const float * /*min_luminance*/) {
float * /*max_luminance*/,
float * /*max_average_luminance*/,
float * /*min_luminance*/) {
GetSupportedHdrTypes(types);
};
virtual void GetColorModes(std::vector<Colormode> &color_modes) {
@ -75,9 +75,9 @@ class LibdisplayEdidWrapper final : public EdidWrapper {
void GetSupportedHdrTypes(std::vector<ui::Hdr> &types) override;
void GetHdrCapabilities(std::vector<ui::Hdr> &types,
const float *max_luminance,
const float *max_average_luminance,
const float *min_luminance) override;
float *max_luminance,
float *max_average_luminance,
float *min_luminance) override;
void GetColorModes(std::vector<Colormode> &color_modes) override;

View file

@ -53,15 +53,15 @@ void LibdisplayEdidWrapper::GetSupportedHdrTypes(std::vector<ui::Hdr> &types) {
}
void LibdisplayEdidWrapper::GetHdrCapabilities(
std::vector<ui::Hdr> &types, const float *max_luminance,
const float *max_average_luminance, const float *min_luminance) {
std::vector<ui::Hdr> &types, float *max_luminance,
float *max_average_luminance, float *min_luminance) {
GetSupportedHdrTypes(types);
const auto *hdr_static_meta = di_info_get_hdr_static_metadata(info_);
max_luminance = &hdr_static_meta->desired_content_max_luminance;
max_average_luminance = &hdr_static_meta
*max_luminance = hdr_static_meta->desired_content_max_luminance;
*max_average_luminance = hdr_static_meta
->desired_content_max_frame_avg_luminance;
min_luminance = &hdr_static_meta->desired_content_min_luminance;
*min_luminance = hdr_static_meta->desired_content_min_luminance;
}
void LibdisplayEdidWrapper::GetColorModes(std::vector<Colormode> &color_modes) {