Date: Sun, 21 Mar 2004 18:31:27 -0500 (EST) From: John Wehle <john@feith.com> To: multimedia@freebsd.org Cc: u431839553@navab.net Subject: Re: Hauppauge WinTV PVR 250 for FreeBSD 5.2 Message-ID: <200403212331.i2LNVRL14391@jwlab.FEITH.COM>
next in thread | raw e-mail | index | archive | help
> 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@feith.com |
| John Wehle | Fax: 1-215-540-5495 | |
-------------------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200403212331.i2LNVRL14391>
