2023-01-12 13:24:12

by Sebastian Fricke

[permalink] [raw]
Subject: [PATCH v2 05/12] staging: media: rkvdec: Add SPS structure to internal context

Prepare storing the SPS structure for HEVC & H264 in the internal
context of the rkvdec instance. This structure is used to figure out
which capture queue format is appropriate for decoding.

Signed-off-by: Sebastian Fricke <[email protected]>
---
drivers/staging/media/rkvdec/rkvdec.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
index 633335ebb9c4..332126e7b812 100644
--- a/drivers/staging/media/rkvdec/rkvdec.h
+++ b/drivers/staging/media/rkvdec/rkvdec.h
@@ -105,6 +105,7 @@ struct rkvdec_ctx {
struct v4l2_ctrl_handler ctrl_hdl;
struct rkvdec_dev *dev;
void *priv;
+ void *sps;
};

static inline struct rkvdec_ctx *fh_to_rkvdec_ctx(struct v4l2_fh *fh)

--
2.25.1


2023-01-12 16:02:14

by Ezequiel Garcia

[permalink] [raw]
Subject: Re: [PATCH v2 05/12] staging: media: rkvdec: Add SPS structure to internal context

Hi Sebastian,

On Thu, Jan 12, 2023 at 9:56 AM Sebastian Fricke
<[email protected]> wrote:
>
> Prepare storing the SPS structure for HEVC & H264 in the internal
> context of the rkvdec instance. This structure is used to figure out
> which capture queue format is appropriate for decoding.
>
> Signed-off-by: Sebastian Fricke <[email protected]>
> ---
> drivers/staging/media/rkvdec/rkvdec.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
> index 633335ebb9c4..332126e7b812 100644
> --- a/drivers/staging/media/rkvdec/rkvdec.h
> +++ b/drivers/staging/media/rkvdec/rkvdec.h
> @@ -105,6 +105,7 @@ struct rkvdec_ctx {
> struct v4l2_ctrl_handler ctrl_hdl;
> struct rkvdec_dev *dev;
> void *priv;
> + void *sps;

I don't really like re-caching the SPS in the context,
since all the controls are already stored in the context,
via the ctrl_handler.

See hantro_get_ctrl().

Duplicating state can lead to problems and even if we get it
right this time, will be hard to maintain.

Thanks,
Ezequiel

> };
>
> static inline struct rkvdec_ctx *fh_to_rkvdec_ctx(struct v4l2_fh *fh)
>
> --
> 2.25.1

2023-01-16 10:40:05

by Andrzej Pietrasiewicz

[permalink] [raw]
Subject: Re: [PATCH v2 05/12] staging: media: rkvdec: Add SPS structure to internal context

Hi Sebastian,

W dniu 12.01.2023 o 16:02, Ezequiel Garcia pisze:
> Hi Sebastian,
>
> On Thu, Jan 12, 2023 at 9:56 AM Sebastian Fricke
> <[email protected]> wrote:
>>
>> Prepare storing the SPS structure for HEVC & H264 in the internal
>> context of the rkvdec instance. This structure is used to figure out
>> which capture queue format is appropriate for decoding.
>>
>> Signed-off-by: Sebastian Fricke <[email protected]>
>> ---
>> drivers/staging/media/rkvdec/rkvdec.h | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
>> index 633335ebb9c4..332126e7b812 100644
>> --- a/drivers/staging/media/rkvdec/rkvdec.h
>> +++ b/drivers/staging/media/rkvdec/rkvdec.h
>> @@ -105,6 +105,7 @@ struct rkvdec_ctx {
>> struct v4l2_ctrl_handler ctrl_hdl;
>> struct rkvdec_dev *dev;
>> void *priv;
>> + void *sps;
>
> I don't really like re-caching the SPS in the context,
> since all the controls are already stored in the context,
> via the ctrl_handler.
>
> See hantro_get_ctrl().
>
> Duplicating state can lead to problems and even if we get it
> right this time, will be hard to maintain.
>

Also, just looking at this patch is seems a bit too fine-grained
a change to add a member to a driver-internal struct and have no
users at the same time. OTOH Ezequiel has easily spotted it :D

Andrzej

> Thanks,
> Ezequiel
>
>> };
>>
>> static inline struct rkvdec_ctx *fh_to_rkvdec_ctx(struct v4l2_fh *fh)
>>
>> --
>> 2.25.1