[libcamera-devel] [PATCH v2 5/8] libcamera: v4l2_device: Use non-interlaced frames

Niklas Söderlund niklas.soderlund at ragnatech.se
Tue Feb 19 12:53:50 CET 2019


Hi Kieran,

Thanks for your patch.

On 2019-02-13 15:10:24 +0000, Kieran Bingham wrote:
> Use V4L2_FIELD_NONE where applicable to disable support for interlaced frames.
> We are unlikely to support interlaced frames on cameras so hardcode this field
> type for now. If we decide to support interlacing later it can be revisited.

I know this have been merged already and I agree with you that for now 
it's OK to hardcode do only use V4L2_FIELD_NONE. I do however think we 
would need to support interlaced formats in the future. Think embedded 
systems trying to do something with vision, there interlaced top/bottom 
fields can be useful to reduce latency to detect motion.

> 
> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
>  src/libcamera/v4l2_device.cpp | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
> index 8c038239cf24..d690be9823f5 100644
> --- a/src/libcamera/v4l2_device.cpp
> +++ b/src/libcamera/v4l2_device.cpp
> @@ -423,6 +423,7 @@ int V4L2Device::setFormatSingleplane(V4L2DeviceFormat *format)
>  	pix->height = format->height;
>  	pix->pixelformat = format->fourcc;
>  	pix->bytesperline = format->planes[0].bpl;
> +	pix->field = V4L2_FIELD_NONE;
>  
>  	ret = ioctl(fd_, VIDIOC_S_FMT, &v4l2Format);
>  	if (ret) {
> @@ -483,6 +484,7 @@ int V4L2Device::setFormatMultiplane(V4L2DeviceFormat *format)
>  	pix->height = format->height;
>  	pix->pixelformat = format->fourcc;
>  	pix->num_planes = format->planesCount;
> +	pix->field = V4L2_FIELD_NONE;
>  
>  	for (unsigned int i = 0; i < pix->num_planes; ++i) {
>  		pix->plane_fmt[i].bytesperline = format->planes[i].bpl;
> @@ -681,6 +683,7 @@ int V4L2Device::queueBuffer(Buffer *buffer)
>  	buf.index = buffer->index();
>  	buf.type = bufferType_;
>  	buf.memory = memoryType_;
> +	buf.field = V4L2_FIELD_NONE;
>  
>  	if (V4L2_TYPE_IS_MULTIPLANAR(buf.type)) {
>  		buf.length = buffer->planes().size();
> -- 
> 2.19.1
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list