From: Andrea <audetto@tiscali.it>
To: video4linux-list@redhat.com
Subject: Re: A question about VIDIOC_DQBUF
Date: Tue, 08 Jul 2008 23:14:40 +0100 [thread overview]
Message-ID: <4873E6D0.8050202@tiscali.it> (raw)
In-Reply-To: <4873CBA9.1090603@tiscali.it>
Andrea wrote:
> Hi,
>
> I would like to understand better the way VIDIOC_DQBUF works.
>
...
> Is the following correct?
>
> - First, an application queues a buffer, then it dequeues the buffer.
> - Then again, a buffer is queued and then dequeued.
> - Dequeuing a buffer blocks is the buffer is not ready (unless device
> opened with O_NONBLOCK).
> - Trying to dequeue a buffer without queuing it first is an error, and
> the ioctl VIDIOC_DQBUF should return -EINVAL.
Moreover:
- One can only VIDIOC_DQBUF after calling STREAMON. Before it should return -EINVAL? Block?
- After calling STREAMOFF, VIDIOC_DQBUF should return -EINVAL
>
> <- end of question ->
>
> Now, about pwc: (if the above is correct).
>
> 1) VIDIOC_DQBUF blocks always until a buffer is ready, regardless of
> O_NONBLOCK.
> 2) VIDIOC_DQBUF does not check if a buffer has been previously queued.
> Moreover VIDIOC_QBUF is almost a no-op. It has no way to check if a
> buffer has been queued before VIDIOC_DQBUF.
>
> If I have understood correctly (very unlikely), this is the reason why
> mplayer hangs while stopping the stream with pwc:
>
> while (!ioctl(priv->video_fd, VIDIOC_DQBUF, &buf));
>
This code is not needed because STREAMOFF flushes the buffer queue. Does it not?
> This code should eventually return -EINVAL, while pwc just blocks
> waiting for the next buffer (which never arrives because
> VIDIOC_STREAMOFF has been called).
pwc should return -EINVAL to all ioctl calls after STREAMOFF?
Could someone please tell me where I am right and where I am wrong...
What is the reference implementation? vivi? em28xx?
Andrea
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
next prev parent reply other threads:[~2008-07-08 22:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-08 20:18 A question about VIDIOC_DQBUF Andrea
2008-07-08 22:14 ` Andrea [this message]
2008-07-10 21:02 ` Andrea
2008-07-11 7:31 ` Jean-Francois Moine
2008-07-11 20:03 ` Andrea
[not found] ` <c8b4dbe10807090704t4e98b8cu253fab39a9dd81d@mail.gmail.com>
2008-07-11 19:17 ` Andrea
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4873E6D0.8050202@tiscali.it \
--to=audetto@tiscali.it \
--cc=video4linux-list@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.