> On Thursday 18 January 2007 20:58, Martin Dauskardt wrote:
>> ok, it seems as if it is not the pvrinput-plugin (which does only open
> vbi0 for ioctls, without reading from it) but the teletext-plugin.
>>
>> The log with ivtvctl -D3:
>
> Based on the log and a peek at the code I can confirm this is a driver
> bug. If the vbi device is open, but is never read from, then the driver
> erroneously thinks that someone is reading from the vbi device. I'll
> see if I can fix that today.
>
Martin, did this fix this "VBI stream buffers are full" problem for you??
I'm also running VDR/pvrinput (with the v4l2 IOCTL changes)
[EMAIL PROTECTED] pvrinput]$ diff -Naur device.c device.c.org
--- device.c 2007-02-12 10:22:01.000000000 +1300
+++ device.c.org 2007-02-12 10:24:14.000000000 +1300
@@ -404,29 +404,29 @@
struct v4l2_ext_control ctrl;
active = true;
-// if (vbi_fd > 0) {
-//
-// ctrl.id = V4L2_CID_MPEG_STREAM_VBI_FMT;
-// ctrl.value = V4L2_MPEG_STREAM_VBI_FMT_IVTV;
-//
-// ctrls.ctrl_class=V4L2_CTRL_CLASS_MPEG;
-// ctrls.controls=&ctrl;
-// ctrls.count=1;
-//
-// if (ioctl(vbi_fd, VIDIOC_S_EXT_CTRLS, &ctrls) != 0) {
-// log(0, "Error setting vbi mode, %d:%s", errno,
strerror(errno));
-// }
-// else {
-// log(3, "cPvrReadThread::Action:
V4L2_CID_MPEG_STREAM_VBI_FMT successfully set.");
-// }
-//
-// vbifmt.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE;
-// vbifmt.fmt.sliced.service_set = V4L2_SLICED_TELETEXT_B;
-// if (ioctl(vbi_fd, VIDIOC_S_FMT, &vbifmt) < 0) {
-// log(0, "Error setting vbi mode, %d:%s", errno,
strerror(errno));
-// }
-// }
-//
+ if (vbi_fd > 0) {
+
+ ctrl.id = V4L2_CID_MPEG_STREAM_VBI_FMT;
+ ctrl.value = V4L2_MPEG_STREAM_VBI_FMT_IVTV;
+
+ ctrls.ctrl_class=V4L2_CTRL_CLASS_MPEG;
+ ctrls.controls=&ctrl;
+ ctrls.count=1;
+
+ if (ioctl(vbi_fd, VIDIOC_S_EXT_CTRLS, &ctrls) != 0) {
+ log(0, "Error setting vbi mode, %d:%s", errno,
strerror(errno));
+ }
+ else {
+ log(3, "cPvrReadThread::Action:
V4L2_CID_MPEG_STREAM_VBI_FMT successfully set.");
+ }
+
+ vbifmt.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE;
+ vbifmt.fmt.sliced.service_set = V4L2_SLICED_TELETEXT_B;
+ if (ioctl(vbi_fd, VIDIOC_S_FMT, &vbifmt) < 0) {
+ log(0, "Error setting vbi mode, %d:%s", errno,
strerror(errno));
+ }
+ }
+
while (active)
{
r = read(video_fd, buffer, BUFFSIZE);
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel