|
|
|
[PATCH] cx88 NTSC VBI fixes | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
Hi, VBI (Closed Caption, CC) capturing never worked in NTSC mode with the cx88 driver. For a client I'd like to get these fixes into the kernel at the next opportunity. They were tested with libzvbi and a patched version of tvtime. Trent Piepho proposed the same fixes: > Yes, I found those bugs as well when I wrote a simple program to make > those pictures of line 21 data. For some reason, someone added a > " -1" to all the start lines that shouldn't be there (at least for > NTSC). The driver is also set to capture just 288*4 = 1152 pixels, > which isn't enough. 63.556 us * 28.636363 MHz = 1820 pixels - 220 > pixel offset = 1600 pixels. > > tvtime still doesn't work when these driver bugs are fixed. The VBI > code in tvtime is stupid, and doesn't check the VBI format _at all_. > It just assumes it will get what the bttv driver has historically > provided. After fixing tvtime, I was able to get it to decode captions > somewhat. Michael Signed-off-by: Michael H. Schimek <mschimek@xxxxxx>
diff -Nurpid v4l-dvb.orig/linux/drivers/media/video/cx88/cx88-core.c v4l-dvb/linux/drivers/media/video/cx88/cx88-core.c
--- v4l-dvb.orig/linux/drivers/media/video/cx88/cx88-core.c Fri Apr 21 03:21:07 2006
+++ v4l-dvb/linux/drivers/media/video/cx88/cx88-core.c Tue May 9 01:16:09 2006
@@ -717,7 +717,7 @@ static unsigned int inline norm_htotal(s
static unsigned int inline norm_vbipack(struct cx88_tvnorm *norm)
{
- return (norm->id & V4L2_STD_625_50) ? 511 : 288;
+ return (norm->id & V4L2_STD_625_50) ? 511 : 400;
}
int cx88_set_scale(struct cx88_core *core, unsigned int width, unsigned int height,
diff -Nurpid v4l-dvb.orig/linux/drivers/media/video/cx88/cx88-vbi.c v4l-dvb/linux/drivers/media/video/cx88/cx88-vbi.c
--- v4l-dvb.orig/linux/drivers/media/video/cx88/cx88-vbi.c Fri Apr 21 03:21:08 2006
+++ v4l-dvb/linux/drivers/media/video/cx88/cx88-vbi.c Tue May 9 01:15:28 2006
@@ -35,8 +35,8 @@ void cx8800_vbi_fmt(struct cx8800_dev *d
if (dev->core->tvnorm->id & V4L2_STD_525_60) {
/* ntsc */
f->fmt.vbi.sampling_rate = 28636363;
- f->fmt.vbi.start[0] = 10 -1;
- f->fmt.vbi.start[1] = 273 -1;
+ f->fmt.vbi.start[0] = 10;
+ f->fmt.vbi.start[1] = 273;
} else if (dev->core->tvnorm->id & V4L2_STD_625_50) {
/* pal */
diff -Nurpid v4l-dvb.orig/linux/drivers/media/video/cx88/cx88.h v4l-dvb/linux/drivers/media/video/cx88/cx88.h
--- v4l-dvb.orig/linux/drivers/media/video/cx88/cx88.h Fri Apr 21 03:21:08 2006
+++ v4l-dvb/linux/drivers/media/video/cx88/cx88.h Tue May 9 01:16:57 2006
@@ -40,7 +40,7 @@
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
#include <linux/mutex.h>
#endif
-#define CX88_VERSION_CODE KERNEL_VERSION(0,0,5)
+#define CX88_VERSION_CODE KERNEL_VERSION(0,0,6)
#ifndef TRUE
# define TRUE (1==1)
-- Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/video4linux-list
[Linux Media] [Older V4L] [Linux DVB] [Video Disk Recorder] [Linux Kernel] [Asterisk] [Photo] [DCCP] [Netdev] [Xorg] [Util Linux NG] [Xfree86] [Free Photo Albums] [Fedora Users] [Fedora Women] [ALSA Users] [ALSA Devel] [SSH] [DVB Maintainers] [Linux USB] [Yosemite Information]
![]() |
![]() |