Iñaki <[EMAIL PROTECTED]> writes:
> I've developed an aplication on v4l2 but i've a doubt about how to
> sync with the capture of frames. Reading the draft of v4l2 i thought
> VIDIOC_DQBUF blocks aplication user until buffer wainting for was
> filled. When i tried to use DQBUF a buffer it rises an EINVAL with the
> perror "Resource temporarily unavailable"(i haven't opened fd with
> O_NONBLOCK and there is a buffer in queue). I've used select() to
> block the aplication until the buffer is filled and now it's work but
> i want to know if there is another way.
==============================[ cut here ]==============================
--- bttv-0.9.9/video-buf.c~ 2003-03-21 11:16:36.000000000 +0100
+++ bttv-0.9.9/video-buf.c 2003-04-01 09:27:21.000000000 +0200
@@ -586,7 +586,7 @@
if (list_empty(&q->stream))
goto done;
buf = list_entry(q->stream.next, struct videobuf_buffer, stream);
- retval = videobuf_waiton(buf,1,1);
+ retval = videobuf_waiton(buf, file->f_flags & O_NONBLOCK, 1);
if (retval < 0)
goto done;
switch (buf->state) {
==============================[ cut here ]==============================
> Another question is i've tried to change fmt.pix.field from
> V4L2_FIELD_ANY to V4L2_FIELD_ALTERNATE (i'm using the V4L2_MEMORY_MMAP
> and V4L2_BUF_TYPE_VIDEO_CAPTURE with GREYSCALE) to capture in half
> period time but it always rises an Segmentation fault in the second
> buffer (of 2) after VIDIOC_DQBUF call. Does anyone know some reason?
latest bttv version? And you need more that two buffers, otherwise
you will not get full 50 fields/sec rate ...
Gerd
--
Michael Moore for president!
--
video4linux-list mailing list
Unsubscribe mailto:[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list