From 54d1d41e105ac708837e92491d528006bc2c5a0f Mon Sep 17 00:00:00 2001 From: "Lin, Ricky" Date: Thu, 21 Mar 2024 14:39:34 +0800 Subject: [PATCH] amd/vpelib: Added JFIF format to RGB output side Added JFIF format to RGB output side, due to geometric scaling will change cs parameter to JFIF. --------- Reviewed-by: Tomson Chang Acked-by: Jack Chih Signed-off-by: rickylin Part-of: --- src/amd/vpelib/src/core/color.c | 7 +++++++ src/amd/vpelib/src/core/inc/geometric_scaling.h | 4 ++++ src/amd/vpelib/src/core/vpelib.c | 1 + 3 files changed, 12 insertions(+) diff --git a/src/amd/vpelib/src/core/color.c b/src/amd/vpelib/src/core/color.c index f89c857475d..398ee7fa412 100644 --- a/src/amd/vpelib/src/core/color.c +++ b/src/amd/vpelib/src/core/color.c @@ -920,6 +920,13 @@ void vpe_color_get_color_space_and_tf( *cs = colorRange == VPE_COLOR_RANGE_FULL ? COLOR_SPACE_2020_RGB_FULLRANGE : COLOR_SPACE_2020_RGB_LIMITEDRANGE; break; + /* VPE doesn't support JFIF format of RGB output, but geometric down scaling will change cs + * parameters to JFIF. Therefore, we need to add JFIF format in RGB output to avoid output + * color check fail. + */ + case VPE_PRIMARIES_JFIF: + *cs = colorRange == VPE_COLOR_RANGE_FULL ? COLOR_SPACE_JFIF : COLOR_SPACE_UNKNOWN; + break; default: break; } diff --git a/src/amd/vpelib/src/core/inc/geometric_scaling.h b/src/amd/vpelib/src/core/inc/geometric_scaling.h index eea73349200..ce5a41d90ab 100644 --- a/src/amd/vpelib/src/core/inc/geometric_scaling.h +++ b/src/amd/vpelib/src/core/inc/geometric_scaling.h @@ -27,6 +27,10 @@ #include #include "vpelib.h" #include "vpe_priv.h" +#include "vpe_types.h" #include "common.h" + +// In order to support geometric down scaling, we will skip gamut and gamma conversion in this +// function. void geometric_scaling_feature_skip(struct vpe_priv *vpe_priv, const struct vpe_build_param *param); diff --git a/src/amd/vpelib/src/core/vpelib.c b/src/amd/vpelib/src/core/vpelib.c index a8236e40ee2..1f6745d893f 100644 --- a/src/amd/vpelib/src/core/vpelib.c +++ b/src/amd/vpelib/src/core/vpelib.c @@ -615,6 +615,7 @@ enum vpe_status vpe_build_commands( */ bufs->cmd_buf.size = vpe_priv->bufs_required.cmd_buf_size; bufs->emb_buf.size = vpe_priv->bufs_required.emb_buf_size; + return VPE_STATUS_OK; } else if ((bufs->cmd_buf.size < vpe_priv->bufs_required.cmd_buf_size) || (bufs->emb_buf.size < vpe_priv->bufs_required.emb_buf_size)) {