[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

[Index of Archives]     [Linux Media]     [Older V4L]     [Linux DVB]     [Video Disk Recorder]     [Linux Kernel]     [Asterisk]     [DCCP]     [Netdev]     [X.org]     [Util Linux]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [SSH]     [DVB Maintainers]     [Linux USB]     [Yosemite Information]
  Powered by Linux