From: dean <dean@sensoray.com>
To: video4linux-list@redhat.com,
Mauro Carvalho Chehab <mchehab@infradead.org>
Subject: VIVI driver issue with xawtv resize in low resolution mode
Date: Fri, 27 Mar 2009 14:57:22 -0700 [thread overview]
Message-ID: <49CD4BC2.9010702@sensoray.com> (raw)
xawtv and/or libv4l2 is unmapping the V4L2 buffers before stopping the
stream. This causes xawtv and/or libv4l2 to retry VIDIOC_STREAMOFF
multiple times before failing and the stream does not get restarted.
Tested on Ubuntu 8.10 with kernel upgraded to 2.6.29 and with
v4l-dvb-b1596c6517c9.
To reproduce (does not fail if running with XV extensions):
1) load vivi driver
2) xawtv -noxv -nodga -noxv-image -c /dev/video0 (where video0 is vivi
device, xawtv-3.95)
3) Resize the xawtv window.
4) Video output will stop and will not restart.
Should VIDIOC_STREAMOFF return -EINVAL if the stream is already off? Is
it ok to return 0 if the stream was turned off by an user application
unmapping the buffers before stopping the stream? In this example,
videobuf_vm_close in videobuf-vmalloc.c is called before
vidioc_streamoff in vivi.c. videobuf_vm_close stops streaming in
videobuf-vmalloc.c such that -EINVAL is returned on any subsequent
VIDIOC_STREAMOFF ioctls. xawtv will not resume streaming in this case.
This also affects other drivers using videobuf-vmalloc. A possible
workaround is the following(not an official patch) code below:
static int vidioc_streamoff(struct file *file, void *priv, enum
v4l2_buf_type i)
{
struct vivi_fh *fh = priv;
if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
if (i != fh->type)
return -EINVAL;
return videobuf_streamoff(&fh->vb_vidq);
}
to:
static int vidioc_streamoff(struct file *file, void *priv, enum
v4l2_buf_type i)
{
struct vivi_fh *fh = priv;
if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
if (i != fh->type)
return -EINVAL;
(void) videobuf_streamoff(&fh->vb_vidq);
return 0;
}
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
reply other threads:[~2009-03-27 21:57 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=49CD4BC2.9010702@sensoray.com \
--to=dean@sensoray.com \
--cc=mchehab@infradead.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox