[PATCH] media: verisilicon: Fix auxiliary buffers allocation size
Benjamin Gaignard
benjamin.gaignard at collabora.com
Mon May 6 07:38:35 PDT 2024
Le 05/04/2024 à 10:13, Benjamin Gaignard a écrit :
>
> Le 04/04/2024 à 20:00, Nicolas Dufresne a écrit :
>> Hi,
>>
>> Le jeudi 28 mars 2024 à 10:34 +0100, Benjamin Gaignard a écrit :
>>> Use v4l2_av1_tile_info->tile_cols to know the number of colons
>>> in the frame. This made auxiliary buffers meory size computation
>>> more accurate.
>> Seems like this is potentially going to impact some conformance
>> tests. Anything
>> to report from fluster results ?
>
> Flusters AV1 score is the same.
> Maybe we have been lucky when allocating memory until now.
> That said the test stream have 8 tile columns which is unusual but
> admitted by AV1 specifications.
Gentle ping,
Regards,
Benjamin
>
> Benjamin
>
>>
>> Nicolas
>>
>>> Signed-off-by: Benjamin Gaignard <benjamin.gaignard at collabora.com>
>>> Fixes: 727a400686a2 ("media: verisilicon: Add Rockchip AV1 decoder")
>>> ---
>>> .../media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git
>>> a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
>>> b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
>>> index cc4483857489..65e8f2d07400 100644
>>> --- a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
>>> +++ b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
>>> @@ -257,7 +257,8 @@ static int
>>> rockchip_vpu981_av1_dec_tiles_reallocate(struct hantro_ctx *ctx)
>>> struct hantro_dev *vpu = ctx->dev;
>>> struct hantro_av1_dec_hw_ctx *av1_dec = &ctx->av1_dec;
>>> struct hantro_av1_dec_ctrls *ctrls = &av1_dec->ctrls;
>>> - unsigned int num_tile_cols = 1 <<
>>> ctrls->tile_group_entry->tile_col;
>>> + const struct v4l2_av1_tile_info *tile_info =
>>> &ctrls->frame->tile_info;
>>> + unsigned int num_tile_cols = tile_info->tile_cols;
>>> unsigned int height = ALIGN(ctrls->frame->frame_height_minus_1
>>> + 1, 64);
>>> unsigned int height_in_sb = height / 64;
>>> unsigned int stripe_num = ((height + 8) + 63) / 64;
>>
More information about the Linux-rockchip
mailing list