summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2012-12-19 05:38:28 +0000
committerNanang Izzuddin <nanang@teluu.com>2012-12-19 05:38:28 +0000
commit0e28edf4f92de1a16d6036f4e9dcdde61278a343 (patch)
tree03e2231c3377aae9773730f8df847ca148b02937 /pjmedia
parent6d32f4b634ba2cd344a282ba2d38e98f36f4373d (diff)
Fix #1600: V4L2 capture device always re-enqueues buffer with index zero.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4310 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia-videodev/v4l2_dev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia-videodev/v4l2_dev.c b/pjmedia/src/pjmedia-videodev/v4l2_dev.c
index 260799ff..2fa6334f 100644
--- a/pjmedia/src/pjmedia-videodev/v4l2_dev.c
+++ b/pjmedia/src/pjmedia-videodev/v4l2_dev.c
@@ -670,6 +670,7 @@ static pj_status_t vid4lin_stream_get_frame_mmap(vid4lin_stream *stream,
struct v4l2_buffer buf;
pj_time_val time;
pj_status_t status = PJ_SUCCESS;
+ unsigned tmp_idx;
pj_bzero(&buf, sizeof(buf));
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
@@ -697,9 +698,11 @@ static pj_status_t vid4lin_stream_get_frame_mmap(vid4lin_stream *stream,
pj_memcpy(frame->buf, stream->buffers[buf.index].start, buf.bytesused);
on_return:
+ tmp_idx = buf.index;
pj_bzero(&buf, sizeof(buf));
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
+ buf.index = tmp_idx;
xioctl(stream->fd, VIDIOC_QBUF, &buf);
return status;