summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Huang <d-huang@ti.com>2016-09-20 16:03:27 -0500
committerVishal Mahaveer <vishalm@ti.com>2016-10-04 16:54:02 -0500
commit660fe110b3709bce2f3ccf719ef27d58d9da4ea7 (patch)
treecc3c3813f3090f7d8f59c2e9712401339e570734
parent63f7bc066300c98e3db6799e5598431fc8a52221 (diff)
downloaddra7xx-660fe110b3709bce2f3ccf719ef27d58d9da4ea7.tar.gz
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 <d-huang@ti.com>
-rw-r--r--camera/V4LCameraAdapter/V4LCameraAdapter.cpp5
1 files changed, 5 insertions, 0 deletions
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;