From 2d02c753249112ec2eb90704a061bd3af9d2fe9f Mon Sep 17 00:00:00 2001 From: "Agate, Jesse" Date: Thu, 4 Jan 2024 16:51:37 -0500 Subject: [PATCH] amd/vpelib: Add PQ Norm to VPE interface Rename the variable and add PQ Norm to VPE interaface. Reviewed-by: Roy Chan Acked-by: Alan Liu Signed-off-by: Jesse Agate Part-of: --- src/amd/vpelib/inc/vpe_types.h | 1 + src/amd/vpelib/src/core/color.c | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/amd/vpelib/inc/vpe_types.h b/src/amd/vpelib/inc/vpe_types.h index 45cb25c2829..b81310fccf7 100644 --- a/src/amd/vpelib/inc/vpe_types.h +++ b/src/amd/vpelib/inc/vpe_types.h @@ -550,6 +550,7 @@ struct vpe_tonemap_params { enum vpe_transfer_function lut_out_tf; enum vpe_color_primaries lut_in_gamut; enum vpe_color_primaries lut_out_gamut; + uint16_t input_pq_norm_factor; uint16_t lut_dim; uint16_t *lut_data; diff --git a/src/amd/vpelib/src/core/color.c b/src/amd/vpelib/src/core/color.c index 9bd5e3543cf..c47a81b0a9d 100644 --- a/src/amd/vpelib/src/core/color.c +++ b/src/amd/vpelib/src/core/color.c @@ -781,7 +781,7 @@ enum vpe_status vpe_color_update_movable_cm( if (stream_ctx->update_3dlut) { - uint32_t pqNormFactor; + uint32_t pq_norm_factor; struct vpe_color_space tm_out_cs; enum color_space out_lut_cs; enum color_transfer_func tf; @@ -825,11 +825,14 @@ enum vpe_status vpe_color_update_movable_cm( //Blendgam is updated by output vpe_update_output_gamma_sequence if (param->streams[stream_idx].tm_params.shaper_tf == VPE_TF_PQ_NORMALIZED) - pqNormFactor = stream_ctx->stream.hdr_metadata.max_mastering; + if (!param->streams[stream_idx].tm_params.input_pq_norm_factor) + pq_norm_factor = stream_ctx->stream.hdr_metadata.max_mastering; + else + pq_norm_factor = param->streams[stream_idx].tm_params.input_pq_norm_factor; else - pqNormFactor = HDR_PEAK_WHITE; + pq_norm_factor = HDR_PEAK_WHITE; - vpe_color_tm_update_hdr_mult(SHAPER_EXP_MAX_IN, pqNormFactor, + vpe_color_tm_update_hdr_mult(SHAPER_EXP_MAX_IN, pq_norm_factor, &stream_ctx->lut3d_func->hdr_multiplier, enable_3dlut); vpe_color_update_shaper(SHAPER_EXP_MAX_IN, stream_ctx->in_shaper_func, enable_3dlut);