Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Jun 2006 04:23:44 -0400
From:      "Naram Qashat" <cyberbotx@cyberbotx.com>
To:        <freebsd-multimedia@freebsd.org>
Subject:   bktr problems
Message-ID:  <0aa901c68d30$5acb7e30$fe02a8c0@metroid>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.

------=_NextPart_000_0AA6_01C68D0E.D37E5BD0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

I've been having problems with my bktr-based TV Tuner card.  It's a
Hauppauge WinTV GO-Plus, and a pretty recent model too.  Next is the
messages for the driver upon bootup:

bktr0: <BrookTree 878> mem 0xdc000000-0xdc000fff irq 11 at device 9.0 on
pci1
bktr0: [GIANT-LOCKED]
bktr0: Hauppauge Model 29440  @ %
bktr0: Warning - Unknown Hauppauge Tuner 0xd5
bktr0: Hauppauge WinCast/TV.

Now for my problems:

I'm unable to watch TV with the tuner, only use the component a/v.  I use
FXTV, and for the component a/v, it works great.  But when I try to use it
to watch TV, it was bombing on me.  I can't remember if this started
happening before or after I upgraded from 5.4 to 6.1, but I believe it was
6.1 where the problem really started.  I've attached a gdb log of what I get
from FXTV when I compile it in debug mode and trace it.  When FXTV gets to
the ioctl of TVTUNER_SETCHNL, my system's X freezes, but oddly enough, my
keyboard still works.  But when I try to use CTRL+ALT+F1 to switch back to a
console, the system reboots, either that or I just did it at the same time
it was rebooting anyways.  Prior to having this problem, I was able to get a
signal.  That's one part of the problem.

The other problem was that when I was able to get a signal, it wasn't a very
good one.  Or rather, it was wrong.  Every "channel" up to 24 shows the
exact same thing.  Above channel 24, it's mostly static, and it seems that
sometimes something changes, but there's too much static to tell.  I was
only able to get any signal at all by manually setting hw.bt848.tuner to 1
for Temic NTSC, since the card isn't properly detected at bootup.  None of
the other settings for hw.bt848.tuner work for me.  What could be done about
this?

Naram Qashat

------=_NextPart_000_0AA6_01C68D0E.D37E5BD0
Content-Type: text/plain;
	name="fxtvgdb.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="fxtvgdb.txt"

[kirby /usr/ports/multimedia/fxtv/work/fxtv-1.03]> gdb fxtv=0A=
GNU gdb 6.1.1 [FreeBSD]=0A=
Copyright 2004 Free Software Foundation, Inc.=0A=
GDB is free software, covered by the GNU General Public License, and you =
are=0A=
welcome to change it and/or distribute copies of it under certain =
conditions.=0A=
Type "show copying" to see the conditions.=0A=
There is absolutely no warranty for GDB.  Type "show warranty" for =
details.=0A=
This GDB was configured as "i386-marcel-freebsd"...=0A=
(gdb) break TVSetInitialCaptureDefaults=0A=
Breakpoint 1 at 0x8056c16: file tv.c, line 419.=0A=
(gdb) run=0A=
Starting program: /usr/ports/multimedia/fxtv/work/fxtv-1.03/fxtv=0A=
Xlib:  extension "XFree86-DGA" missing on display ":0.0".=0A=
Xlib:  extension "XFree86-VidModeExtension" missing on display ":0.0".=0A=
=0A=
Breakpoint 1, TVSetInitialCaptureDefaults (c=3D0x80af8a0, p=3D0x80afc30) =
at tv.c:419=0A=
419         TV_DISK                *dsk =3D &G_glob.disk;=0A=
(gdb) next=0A=
428         if ( !TVCAPTUREQueryDriverState( c, &s ) ) {=0A=
(gdb)=0A=
434         if ( !App_res.driver_defaults ) {=0A=
(gdb)=0A=
437             input_format =3D TV_INPUT_NTSCM;=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
440                     input_format =3D formats[i].mode;=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
439                 if ( strcasecmp( App_res.input_format, =
formats[i].str ) =3D=3D 0 )=0A=
(gdb)=0A=
438             for ( i =3D 0; i < XtNumber(formats); i++ )=0A=
(gdb)=0A=
442             TVCAPTURESetInputFormat( c, input_format );=0A=
(gdb)=0A=
443             dsk->video.geom.w =3D c->width_max  / 2;=0A=
(gdb)=0A=
444             dsk->video.geom.h =3D c->height_max / 2;=0A=
(gdb)=0A=
445             dsk->video.fps    =3D c->fps_max;=0A=
(gdb)=0A=
448             if ( App_res.display_fps < 0 )=0A=
(gdb)=0A=
449                 App_res.display_fps =3D c->fps_max;=0A=
(gdb)=0A=
450             App_res.display_fps =3D MAX( 1, MIN( c->fps_max, =
App_res.display_fps ) );=0A=
(gdb)=0A=
453             p->ant_freq_set   =3D 1;=0A=
(gdb)=0A=
454             p->cable_freq_set =3D 1;=0A=
(gdb)=0A=
456             for ( i =3D 0; i < 2; i++ ) {=0A=
(gdb)=0A=
457                 TV_FREQ_SET *set =3D (i =3D=3D 0) ? &p->ant_freq_set=0A=
(gdb)=0A=
461                 str[0] =3D '\0';=0A=
(gdb)=0A=
462                 if ( i =3D=3D 0 )=0A=
(gdb)=0A=
463                     strncat( str, App_res.ant_freq_set  , =
sizeof(str)-1 );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
469                 for ( j =3D 1; ; j++ ) {=0A=
(gdb)=0A=
470                      if ( (p =3D TVCAPTUREGetTunerFreqSetName(c,j)) =
=3D=3D NULL  ) {=0A=
(gdb)=0A=
475                      if ( strstr( str, p ) !=3D NULL ) {=0A=
(gdb)=0A=
476                          *set =3D j;=0A=
(gdb)=0A=
477                          break;=0A=
(gdb)=0A=
456             for ( i =3D 0; i < 2; i++ ) {=0A=
(gdb)=0A=
457                 TV_FREQ_SET *set =3D (i =3D=3D 0) ? &p->ant_freq_set=0A=
(gdb)=0A=
461                 str[0] =3D '\0';=0A=
(gdb)=0A=
462                 if ( i =3D=3D 0 )=0A=
(gdb)=0A=
465                     strncat( str, App_res.cable_freq_set, =
sizeof(str)-1 );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
467                     *p =3D tolower( *p );=0A=
(gdb)=0A=
466                 for ( p =3D str; *p !=3D '\0'; p++ )=0A=
(gdb)=0A=
469                 for ( j =3D 1; ; j++ ) {=0A=
(gdb)=0A=
470                      if ( (p =3D TVCAPTUREGetTunerFreqSetName(c,j)) =
=3D=3D NULL  ) {=0A=
(gdb)=0A=
475                      if ( strstr( str, p ) !=3D NULL ) {=0A=
(gdb)=0A=
469                 for ( j =3D 1; ; j++ ) {=0A=
(gdb)=0A=
470                      if ( (p =3D TVCAPTUREGetTunerFreqSetName(c,j)) =
=3D=3D NULL  ) {=0A=
(gdb)=0A=
475                      if ( strstr( str, p ) !=3D NULL ) {=0A=
(gdb)=0A=
476                          *set =3D j;=0A=
(gdb)=0A=
477                          break;=0A=
(gdb)=0A=
456             for ( i =3D 0; i < 2; i++ ) {=0A=
(gdb)=0A=
483             p->tuner_mode =3D TV_TUNER_MODE_ANTENNA;=0A=
(gdb)=0A=
484             if (( strstr( App_res.tuner_mode, "cable" ) !=3D NULL ) =
||=0A=
(gdb)=0A=
488             if ( p->tuner_mode =3D=3D TV_TUNER_MODE_ANTENNA )=0A=
(gdb)=0A=
489                 TVCAPTURESetTunerFreqSet( c, p->ant_freq_set );=0A=
(gdb) step=0A=
TVCAPTURESetTunerFreqSet (c=3D0x80af8a0, set=3D1) at tvcapture.c:649=0A=
649         larg =3D set;=0A=
(gdb) next=0A=
651         if ( ioctl( c->tfd, TVTUNER_SETTYPE, &larg ) < 0 ) {=0A=
(gdb)=0A=
660             if ( !TVCAPTUREQueryDriverState( c, &s ) ) {=0A=
(gdb)=0A=
664             TVCAPTURESetTunerChannel( c, s.tuner_chan );=0A=
(gdb) step=0A=
TVCAPTURESetTunerChannel (c=3D0x80af8a0, chan_num=3D0) at tvcapture.c:599=0A=
599         TV_INT32 larg =3D chan_num;=0A=
(gdb)=0A=
604         if ( ioctl( c->tfd, BT848_GAUDIO, &old_audio ) < 0 ) {=0A=
(gdb)=0A=
609         if ( ioctl( c->tfd, TVTUNER_SETCHNL, &larg ) < 0 ) {=0A=

------=_NextPart_000_0AA6_01C68D0E.D37E5BD0--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0aa901c68d30$5acb7e30$fe02a8c0>