On Tue, Dec 18, 2001 at 12:40:54PM -0800, Billy Biggs wrote:
> > Well why I should I burn my CPU when hardware can do that more
> > efficiently ??
> 
>   We need a field-based API if you're sending interlaced material.

Well I simply couldn't work on every project ;)

> > really very small brightness & constrast values to at least see
> > something which has been remaining image)
> 
>   I'm very interested in these (especially the last, since I've found
> this really annoying and didn't know how to adjust it).
> 
>   Can you send your patches to me?

I'll post it here - it's for the current linux 2.4.17 kernel but with
minor modification should fit into other versions as well
It's quite short so I'm attaching this patch file 

> 
>   Did you post them to video4linux-list?

No but from time to time I'm sending borring message to Gerd and he is
constantly refusing it with the same answer (but at least he already enabled
chrominanece AGC and also added at least support to disable
his automute control lately :)


-- 
  .''`.  Which fundamental human right do you want to give up today?
 : :' :      Debian GNU/Linux maintainer - www.debian.{org,cz}
 `. `'  Zdenek Kabelac  kabi@{debian.org, users.sf.net, fi.muni.cz}
   `-         Resistance is futile. You all will be packaged
--- linux/drivers/media/video/bttv-driver.c.org Sat Dec 15 00:57:10 2001
+++ linux/drivers/media/video/bttv-driver.c     Sat Dec 15 23:11:35 2001
@@ -70,6 +70,7 @@
 static unsigned int gbufsize = BTTV_MAX_FBUF;
 static unsigned int combfilter = 0;
 static unsigned int lumafilter = 0;
+static unsigned int scloop = 0x40 + 0x18 /* Filter */ + /* 0x20 Low Color */ + 0x80 
+/* Peak */;
 static int video_nr = -1;
 static int radio_nr = -1;
 static int vbi_nr = -1;
@@ -98,6 +99,8 @@
 MODULE_PARM_DESC(gbufsize,"size of the capture buffers, default is 0x208000");
 MODULE_PARM(combfilter,"i");
 MODULE_PARM(lumafilter,"i");
+MODULE_PARM(scloop,"i");
+MODULE_PARM_DESC(scloop,"turn on ACG & Peak filtering");
 
 MODULE_PARM(video_nr,"i");
 MODULE_PARM(radio_nr,"i");
@@ -476,7 +479,8 @@
         /* max. active video is actually 922, but 924 is divisible by 4 and 3! */
        /* actually, max active PAL with HSCALE=0 is 948, NTSC is 768 - nil */
         { 35468950,
-          924, 576, 1135, 0x7f, 0x72, (BT848_IFORM_PAL_BDGHI|BT848_IFORM_XT1),
+         924, 576, 1135, 0x9f, 0x72, (BT848_IFORM_PAL_BDGHI|BT848_IFORM_XT1),
+         /* 0x9f gives much better image from video source (no overbrighted) */
           1135, 186, 924,
 #ifdef VIDEODAT_HACK
          VBI_MAXLINES*2,
@@ -2608,8 +2612,8 @@
        btv->picture.hue=128<<8;
        btv->picture.contrast=0xd8<<7;
 
-       btwrite(0x00, BT848_E_SCLOOP);
-       btwrite(0x00, BT848_O_SCLOOP);
+       btwrite(scloop, BT848_E_SCLOOP);
+       btwrite(scloop, BT848_O_SCLOOP);
 
        /* clear interrupt status */
        btwrite(0xfffffUL, BT848_INT_STAT);
@@ -2797,13 +2801,13 @@
                        }
                }
 
-               if (astat&BT848_INT_HLOCK) {
-                       if ((dstat&BT848_DSTATUS_HLOC) || (btv->radio))
-                               audio(btv, AUDIO_ON,0);
-                       else
-                               audio(btv, AUDIO_OFF,0);
-               }
-    
+               if (astat&BT848_INT_VPRES) {
+                   if (!btv->radio && !(dstat&BT848_DSTATUS_PRES))
+                       audio(btv, AUDIO_OFF,0);
+               } else if (astat&BT848_INT_HLOCK
+                          && (btv->radio || dstat&BT848_DSTATUS_HLOC))
+                   audio(btv, AUDIO_ON,0);
+
                count++;
                if (count > 20) {
                        btwrite(0, BT848_INT_MASK);

Reply via email to