From 0e28edf4f92de1a16d6036f4e9dcdde61278a343 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Wed, 19 Dec 2012 05:38:28 +0000 Subject: 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 --- pjmedia/src/pjmedia-videodev/v4l2_dev.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'pjmedia') 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; -- cgit v1.2.3