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

Reply via email to