From 660fe110b3709bce2f3ccf719ef27d58d9da4ea7 Mon Sep 17 00:00:00 2001 From: David Huang Date: Tue, 20 Sep 2016 16:03:27 -0500 Subject: dra7xx: camera: Zero V4L2 buffer flags Application is supposed to zero the flags field in buffers being queued into the V4L2 drivers. Fixes issue where uninitialized values can pass through to driver level and imitate a V4L2_BUF_FLAG_LAST flag, causing V4L2 to stop dequeueing buffers. Change-Id: I1e4fe74b316dc3ad4777689b7f4e74704833841e Signed-off-by: David Huang --- camera/V4LCameraAdapter/V4LCameraAdapter.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/camera/V4LCameraAdapter/V4LCameraAdapter.cpp b/camera/V4LCameraAdapter/V4LCameraAdapter.cpp index 837a755..b5fa2b7 100644 --- a/camera/V4LCameraAdapter/V4LCameraAdapter.cpp +++ b/camera/V4LCameraAdapter/V4LCameraAdapter.cpp @@ -370,6 +370,7 @@ status_t V4LCameraAdapter::restartPreview () v4l2_buffer buf; buf.index = i; + buf.flags = 0; buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_DMABUF; buf.m.fd = mCameraBuffers[i].dma_buf_fd; @@ -521,6 +522,7 @@ status_t V4LCameraAdapter::fillThisBuffer(CameraBuffer *frameBuf, CameraFrame::F } else { v4l2_buffer buf; buf.index = idx; + buf.flags = 0; buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_DMABUF; buf.m.fd = mCameraBuffers[idx].dma_buf_fd; @@ -785,6 +787,7 @@ status_t V4LCameraAdapter::takePicture() { v4l2_buffer buf; buf.index = i; + buf.flags = 0; buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_MMAP; @@ -933,6 +936,7 @@ status_t V4LCameraAdapter::startPreview() } buf.index = i; + buf.flags = 0; buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_DMABUF; buf.m.fd = mCameraBuffers[i].dma_buf_fd; @@ -1511,6 +1515,7 @@ status_t V4LCameraAdapter::returnBufferToV4L(int id) { status_t ret = NO_ERROR; v4l2_buffer buf; buf.index = id; + buf.flags = 0; buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_DMABUF; buf.m.fd = mCameraBuffers[id].dma_buf_fd; -- cgit v1.2.3