libcamera: v4l2_device: Use non-interlaced frames

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.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Kieran Bingham 2019-02-13 13:13:33 +00:00
parent 8a46873e04
commit 3e354b00b4

View file

@ -423,6 +423,7 @@ int V4L2Device::setFormatSingleplane(V4L2DeviceFormat *format)
pix->height = format->height; pix->height = format->height;
pix->pixelformat = format->fourcc; pix->pixelformat = format->fourcc;
pix->bytesperline = format->planes[0].bpl; pix->bytesperline = format->planes[0].bpl;
pix->field = V4L2_FIELD_NONE;
ret = ioctl(fd_, VIDIOC_S_FMT, &v4l2Format); ret = ioctl(fd_, VIDIOC_S_FMT, &v4l2Format);
if (ret) { if (ret) {
@ -483,6 +484,7 @@ int V4L2Device::setFormatMultiplane(V4L2DeviceFormat *format)
pix->height = format->height; pix->height = format->height;
pix->pixelformat = format->fourcc; pix->pixelformat = format->fourcc;
pix->num_planes = format->planesCount; pix->num_planes = format->planesCount;
pix->field = V4L2_FIELD_NONE;
for (unsigned int i = 0; i < pix->num_planes; ++i) { for (unsigned int i = 0; i < pix->num_planes; ++i) {
pix->plane_fmt[i].bytesperline = format->planes[i].bpl; pix->plane_fmt[i].bytesperline = format->planes[i].bpl;
@ -679,6 +681,7 @@ int V4L2Device::queueBuffer(Buffer *buffer)
buf.index = buffer->index(); buf.index = buffer->index();
buf.type = bufferType_; buf.type = bufferType_;
buf.memory = memoryType_; buf.memory = memoryType_;
buf.field = V4L2_FIELD_NONE;
if (V4L2_TYPE_IS_MULTIPLANAR(buf.type)) { if (V4L2_TYPE_IS_MULTIPLANAR(buf.type)) {
buf.length = buffer->planes().size(); buf.length = buffer->planes().size();