Hauppauge WinTV PVR 250 for FreeBSD 5.2

Julian Elischer julian at elischer.org
Sun Mar 21 17:09:08 PST 2004


If I was building a little TV recorder, and 
wanted to use this driver, is thre a way of telling which Hauppauge
cards I can and can not buy?
Looking on their web page everything seems to be called "WinTV
something"
and model numbers seem to not be used very much...


On Sun, 21 Mar 2004, John Wehle wrote:

> > cxm0: <Conexant iTVC16 MPEG Coder> mem 0xc8000000-0xcbffffff irq 21 at device 11.0 on pci3
> > cxm_iic0: <Conexant iTVC15 / iTVC16 I2C controller> on cxm0
> > iicbb0: <I2C bit-banging driver> on cxm_iic0
> > iicbus0: <Philips I2C bus> on iicbb0 master-only
> > cxm0: LG Innotek TPI8PSB11D tuner
> > cxm0: SAA7115 rev 1 video decoder
> > cxm0: MSP3415G-B8 audio decoder
> > cxm0: IR Remote
> > cxm0: encoder firmware version 0x2040011
> > 
> > No decoder firmware version.
> 
> The iTVC16 which is used on the PVR-250 version 2 doesn't implement
> a decoder which is why the decoder firmware version isn't displayed.
> 
> > When I try cat /dev/cxm0 > file.mpg I get
> > "cat: /dev/cxm0: Device not configured" and dmesg says "cxm0: video 
> > decoder isn't locked".
> 
> The driver defaults to channel 4 which is mapped to 62.25 MHz by the
> BG channel map used by the driver.  Is something broadcast on that
> frequency in your area and do you have a good antenna or cable
> connection attached to the coax connector on the card?
> 
> Enclosed is a little utility for changing channels and selecting the
> input.
> 
> -- John
> ----------------8<----------------------8<----------------------------
> #include <stdio.h>
> #include <fcntl.h>
> #include <sys/types.h>
> #include <sys/ioctl.h>
> #include <machine/ioctl_bt848.h>
> #include <machine/ioctl_meteor.h>
> #include <unistd.h>
> 
> /****************************************************************************/
> /*  setchannel.c  -  Set the channel of the bktr tuner card.                */
> /*                                                                          */
> /*  COMPILE WITH:  cc -o setchannel setchannel.c                            */
> /****************************************************************************/
> 
> static void
> usage()
> {
>   printf("Usage: setchannel <-a {on|off}|-c|-s|-t|-t channel|channel>\n"
>          "  -a  Enable / disable AFC.\n"
>          "  -c  Select composite input.\n"
>          "  -s  Select svideo input.\n"
>          "  -t  Select tuner.\n");
> }
> 
> int main( int argc, char *argv[] )
> {
>   int afc;
>   int c;
>   int status;
>   int tfd;
>   unsigned int channel;
>   unsigned long device;
>   
>   afc = -1;
>   channel = 0;
>   device = 0;
>   status = 0;
> 
>   while ((c = getopt (argc, argv, "a:cst")) != -1)
>     switch (c) {
>       case 'a':
>         if (strcasecmp (optarg, "on") == 0)
>           afc = 1;
>         else if (strcasecmp (optarg, "off") == 0)
>           afc = 0;
>         else {
>           usage ();
>           exit (1);
>           }
>         break;
> 
>       case 'c':
>         device = METEOR_INPUT_DEV2;
>         break;
> 
>       case 's':
>         device = METEOR_INPUT_DEV_SVIDEO;
>         break;
> 
>       case 't':
>         device = METEOR_INPUT_DEV1;
>         break;
> 
>       default:
>         usage ();
>         exit (1);
>     }
> 
>   if ( optind < argc)
>     channel = atoi( argv[optind] );
> 
>   if (afc == -1 && ! channel && ! device) {
>     usage ();
>     exit (1);
>     }
> 
>   tfd = open( "/dev/cxm0", O_RDONLY );
>   if ( tfd < 0 ) {
>     perror( "open() of /dev/cxm0 failed." );
>     exit(1);
>   }
> 
>   if (afc != -1)
>     if ( ioctl( tfd, TVTUNER_SETAFC, &afc ) < 0 ) {
>       perror( "ioctl( tfd, TVTUNER_SETAFC ) failed." );
>       status = 1;
>     }
> 
>   if (device)
>     if ( ioctl( tfd, METEORSINPUT, &device ) < 0 ) {
>       perror( "ioctl( tfd, METEORSINPUT ) failed." );
>       status = 1;
>     }
> 
>   if (channel)
>     if ( ioctl( tfd, TVTUNER_SETCHNL, &channel ) < 0 ) {
>       perror( "ioctl( tfd, TVTUNER_SETCHNL ) failed." );
>       status = 1;
>     }
> 
>   close ( tfd );
>   exit ( status );
> }
> -------------------------------------------------------------------------
> |   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john at feith.com  |
> |    John Wehle    |     Fax: 1-215-540-5495  |                         |
> -------------------------------------------------------------------------
> 
> 



More information about the freebsd-multimedia mailing list