Re: [PATCH v3] media: venus: amend buffer size for bitstream plane

From: Hans Verkuil
Date: Mon Nov 26 2018 - 10:24:04 EST


On 11/26/2018 03:57 PM, Stanimir Varbanov wrote:
> Hi Hans,
>
> On 11/26/18 3:37 PM, Hans Verkuil wrote:
>> On 11/26/2018 11:12 AM, Malathi Gottam wrote:
>>> Accept the buffer size requested by client and compare it
>>> against driver calculated size and set the maximum to
>>> bitstream plane.
>>>
>>> Signed-off-by: Malathi Gottam <mgottam@xxxxxxxxxxxxxx>
>>
>> Sorry, this isn't allowed. It is the driver that sets the sizeimage value,
>> never the other way around.
>
> I think for decoders (OUTPUT queue) and encoders (CAPTURE queue) we
> allowed userspace to set sizeimage for buffers. See [1] Initialization
> paragraph point 2:
>
> ``sizeimage``
> desired size of ``CAPTURE`` buffers; the encoder may adjust it to
> match hardware requirements
>
> Similar patch we be needed for decoder as well.

I may have missed that change since it wasn't present in v1 of the stateful
encoder spec.

Tomasz, what was the reason for this change? I vaguely remember some thread
about this, but I forgot the details. Since this would be a departure of
the current API this should be explained in more detail.

I don't really see the point of requiring userspace to fill this in. For
stateful codecs it can just return some reasonable size. Possibly calculated
using the provided width/height values or (if those are 0) some default value.

Ditto for decoders.

Stanimir, I certainly cannot merge this until this has been fully nailed down
as it would be a departure from the current API.

And looking at the venus patch I do not see how it helps userspace.

Regards,

Hans

>
>>
>> If you need to allocate larger buffers, then use VIDIOC_CREATE_BUFS instead
>> of VIDIOC_REQBUFS.
>>
>> What problem are you trying to solve with this patch?
>>
>> Regards,
>>
>> Hans
>>
>