[libcamera-devel] [PATCH 3/3] pipeline: raspberrypi: Increase the V4L2BufferCache slot allocations

Umang Jain umang.jain at ideasonboard.com
Wed Nov 10 19:35:07 CET 2021


Hi Naush

Thank you for the patch

On 11/10/21 3:38 PM, Naushir Patuck wrote:
> If a stream is marked as external, double the number of V4L2BufferCache slots
> that are allocated. This is to account for additional buffers that may be
> allocated directly by the application.


One clarification pleease, does this mean applications can still 
allocate more buffers on the fly (i.e. the count can increase in 
future), even after RPi pipeline-handler has started?

>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

Patch looks good so,

Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>

> ---
>   src/libcamera/pipeline/raspberrypi/rpi_stream.cpp | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp b/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp
> index b3265d0e8aab..67901936d6b6 100644
> --- a/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp
> @@ -107,6 +107,14 @@ int Stream::prepareBuffers(unsigned int count)
>   		count = bufferMap_.size();
>   	}
>   
> +	/*
> +	 * If this is an external stream, we must allocate slots for buffers that
> +	 * might be externally allocated. We have no indication of how many buffers
> +	 * may be used, so this might overallocate slots in the buffer cache.
> +	 */
> +	if (isExternal())
> +		count = count * 2;
> +
>   	return dev_->importBuffers(count);
>   }
>   


More information about the libcamera-devel mailing list