Buffers can be allocated either by camera driver or by the client. The client decides the whether it or the driver is responsible for allocating the buffer. The total number of buffers available to the client is limited either by the capabilities of the hardware, or by the number of DMA channels the client can allow for the driver to access system memory.Buffers can be allocated either by camera drive