Commit ac5d3db4 authored by Benjamin Gaignard's avatar Benjamin Gaignard Committed by Mauro Carvalho Chehab

media: verisilicon: HEVC: Only propose 10 bits compatible pixels formats

When decoding a 10bits bitstreams HEVC driver should only expose
10bits pixel formats.
To fulfill this requirement it is needed to call hantro_reset_raw_fmt()
when bit depth change and to correctly set match_depth in pixel formats
enumeration.
Signed-off-by: default avatarBenjamin Gaignard <benjamin.gaignard@collabora.com>
Reviewed-by: default avatarNicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: default avatarEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent 3c32d94c
...@@ -325,9 +325,15 @@ static int hantro_hevc_s_ctrl(struct v4l2_ctrl *ctrl) ...@@ -325,9 +325,15 @@ static int hantro_hevc_s_ctrl(struct v4l2_ctrl *ctrl)
struct hantro_ctx, ctrl_handler); struct hantro_ctx, ctrl_handler);
switch (ctrl->id) { switch (ctrl->id) {
case V4L2_CID_STATELESS_HEVC_SPS: case V4L2_CID_STATELESS_HEVC_SPS: {
ctx->bit_depth = ctrl->p_new.p_hevc_sps->bit_depth_luma_minus8 + 8; const struct v4l2_ctrl_hevc_sps *sps = ctrl->p_new.p_hevc_sps;
break; int bit_depth = sps->bit_depth_luma_minus8 + 8;
if (ctx->bit_depth == bit_depth)
return 0;
return hantro_reset_raw_fmt(ctx, bit_depth);
}
default: default:
return -EINVAL; return -EINVAL;
} }
......
...@@ -152,6 +152,7 @@ static const struct hantro_fmt imx8m_vpu_g2_postproc_fmts[] = { ...@@ -152,6 +152,7 @@ static const struct hantro_fmt imx8m_vpu_g2_postproc_fmts[] = {
{ {
.fourcc = V4L2_PIX_FMT_NV12, .fourcc = V4L2_PIX_FMT_NV12,
.codec_mode = HANTRO_MODE_NONE, .codec_mode = HANTRO_MODE_NONE,
.match_depth = true,
.postprocessed = true, .postprocessed = true,
.frmsize = { .frmsize = {
.min_width = FMT_MIN_WIDTH, .min_width = FMT_MIN_WIDTH,
...@@ -165,6 +166,7 @@ static const struct hantro_fmt imx8m_vpu_g2_postproc_fmts[] = { ...@@ -165,6 +166,7 @@ static const struct hantro_fmt imx8m_vpu_g2_postproc_fmts[] = {
{ {
.fourcc = V4L2_PIX_FMT_P010, .fourcc = V4L2_PIX_FMT_P010,
.codec_mode = HANTRO_MODE_NONE, .codec_mode = HANTRO_MODE_NONE,
.match_depth = true,
.postprocessed = true, .postprocessed = true,
.frmsize = { .frmsize = {
.min_width = FMT_MIN_WIDTH, .min_width = FMT_MIN_WIDTH,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment