NAME
bktr
- Brooktree 848 compatible TV card driver
SYNOPSIS
bktr* at pci? dev ? function ?
radio* at bktr?
options BKTR_OVERRIDE_CARD=n
options BKTR_OVERRIDE_TUNER=n
options BKTR_OVERRIDE_DBX=n
options BKTR_OVERRIDE_MSP=n
options BKTR_SYSTEM_DEFAULT=n
options BKTR_USE_PLL
options BKTR_GPIO_ACCESS
options BKTR_NO_MSP_RESET
DESCRIPTION
This driver supports video capture (frame grabber) and TV tuner cards
based on the
Brooktree
Bt848,
Bt848A,
Bt849A,
Bt878,
and
Bt879
chips.
Supported cards include most cards by
AVerMedia,
Hauppauge,
Leadtek,
Miro,
Pinnacle,
Pixelview,
Terratec,
and some other companies, especially all cards based on the
Brooktree
Bt848,
Bt848A,
Bt849A,
Bt878,
or
Bt879
chips.
A notable exception are the
ATI
All-in-Wonder
cards.
The following kernel configuration options are available:
- options BKTR_OVERRIDE_CARD=n
-
If the card is not recognized correctly by the auto-detection routine,
it can be overridden by setting this option to the appropriate
value.
The following values are allowed:
- 1
-
Pinnacle Systems (Miro) TV,
- 2
-
Hauppauge WinCast/TV,
- 3
-
STB TV/PCI,
- 4
-
Intel Smart Video III and Videologic Captivator PCI,
- 5
-
IMS TV Turbo,
- 6
-
AVerMedia TV/FM,
- 7
-
MMAC Osprey,
- 8
-
NEC PK-UG-X017,
- 9
-
I/O DATA GV-BCTV2/PCI,
- 10
-
Animation Technologies FlyVideo,
- 11
-
Zoltrix TV,
- 12
-
KISS TV/FM PCI,
- 13
-
Video Highway Xtreme,
- 14
-
Askey/Dynalink Magic TView,
- 15
-
Leadtek WinFast TV 2000/VC100,
- 16
-
TerraTec TerraTV+,
and
- 17
-
TerraTec TValue.
- options BKTR_OVERRIDE_TUNER=n
-
If the TV tuner is not recognized correctly by the auto-detection
routine, it can be overridden by setting this option to the
appropriate value.
Known values are:
- 1
-
Temic NTSC,
- 2
-
Temic PAL,
- 3
-
Temic SECAM,
- 4
-
Philips NTSC,
- 5
-
Philips PAL,
- 6
-
Philips SECAM,
- 7
-
Temic PAL I,
- 8
-
Philips PAL I,
- 9
-
Philips FR1236 NTSC FM,
- 10
-
Philips FR1216 PAL FM,
- 11
-
Philips FR1236 SECAM FM,
- 12
-
ALPS TSCH5 NTSC FM,
and
- 13
-
ALPS TSBH1 NTSC.
- options BKTR_OVERRIDE_DBX=n
-
To override detection of the BTSC (dbx) chip, set this to
1
if you have one, or
0
if not.
- options BKTR_OVERRIDE_MSP=n
-
To override detection of the MSP 34xx chip, set this to
1
if you have one, or
0
if not.
- options BKTR_SYSTEM_DEFAULT=n
-
If this option is set to
BROOKTREE_PAL
default to PAL, else to NTSC.
- options BKTR_USE_PLL
-
Default to PLL instead of XTAL.
- options BKTR_GPIO_ACCESS
-
Use
ioctl(
s)
for direct GPIO access.
- options BKTR_NO_MSP_RESET
-
Skip the MSP reset.
This option is handy if you initialize the MSP audio in another
operating system first and then do a soft reboot.
VIDEO CAPTURE INTERFACE
The video capture interface to
bktr
is accessed through the
/dev/bktrN
devices.
The following
ioctl(2)
commands are supported on the Brooktree848 video capture interface:
METEORSFMT
unsigned long *
-
This command sets the video format, also sometimes referred to as the
video norm.
The supported formats are:
METEOR_FMT_NTSC
-
NTSC
METEOR_FMT_PAL
-
PAL
METEOR_FMT_SECAM
-
SECAM
METEOR_FMT_AUTOMODE
-
hardware default
METEORGFMT
unsigned long *
-
This command retrieves the current video format to the
argument.
METEORSETGEO
struct meteor_geomet *
-
This command sets the video properties that affect the bit size of
a frame throught the
argument.
struct meteor_geomet {
u_short rows; /* height in pixels*/
u_short columns; /* width in pixels */
u_short frames;
u_long oformat;
}
The
frames
field is the number of frames to buffer.
Currently only 1 frame is supported for most operations.
The
oformat
field is a bit-field describing the output pixel format
type and which video fields to capture.
The following are supported pixel format types:
.Pp
METEOR_GEO_RGB16
-
16-bit RGB
METEOR_GEO_RGB24
-
24-bit RGB in 32 bits
METEOR_GEO_YUV_PACKED
-
16-bit 4:2:2 YUV
METEOR_GEO_YUV_PLANAR
-
16-bit 4:2:2 YUV
METEOR_GEO_YUV_UNSIGNED
-
unsigned UV
METEOR_GEO_YUV_422
-
METEOR_GEO_YUV_12
-
METEOR_GEO_YUV_9
-
The following are supported field capture modes:
METEOR_GEO_ODD_ONLY
-
only odd fields
METEOR_GEO_EVEN_ONLY
-
only even fields
By default, frames will consist of both the odd and even fields.
METEORGSUPPIXFMT
struct meteor_pixfmt *
-
This command is used interatively to fetch descriptions of supported
output pixel formats into the
argument.
struct meteor_pixfmt {
u_int index;
METEOR_PIXTYPE type;
u_int Bpp; /* bytes per pixel */
u_long masks[3]; /* YUV bit masks */
unsigned swap_bytes :1;
unsigned swap_shorts:1;
};
To query all the supported formats, start with an index field of 0 and
continue with successive encodings (1, 2, ...) until the command returns
an error.
METEORSACTPIXFMT
int *
-
This command sets the active pixel format.
The
argument is the index of the pixel format as returned by
METEORGSUPPIXFMT
.
METEORGACTPIXFMT
int *
-
This command fetches the active pixel format index into the
argument.
METEORSINPUT
unsigned long *
-
This command sets the input port of the Brooktree848 device.
The following are supported input ports:
METEOR_INPUT_DEV0
-
composite (RCA)
METEOR_INPUT_DEV1
-
tuner
METEOR_INPUT_DEV2
-
composite S-video
METEOR_INPUT_DEV3
-
mystery device
METEOR_INPUT_DEV_RGB
-
rgb meteor
METEOR_INPUT_DEV_SVIDEO
-
S-Video
Not all devices built with Brooktree848 chips support the
full list of input ports.
METEORGINPUT
unsigned long *
-
This command retrieves the current input port to the
argument.
METEORSFPS
unsigned short *
-
This command sets the number of frames to grab each second.
Valid frame rates are integers from 0 to 30.
METEORGFPS
unsigned short *
-
This command fetches the number of frames to grab each second into the
argument.
METEORCAPTUR
int *
-
This command controls capturing of video data.
The following are valid arguments:
METEOR_CAP_SINGLE
-
capture one frame
METEOR_CAP_CONTINOUS
-
continuously capture
METEOR_CAP_STOP_CONT
-
stop continuous capture
METEORSSIGNAL
unsigned int *
-
This command controls the signal emission properties of
.
If the
argument is a valid signal, then that signal will be emitted
when either a frame or field capture has completed.
To select between frame or field signalling, the following arguments
are used:
METEOR_SIG_FRAME
-
signal every frame
METEOR_SIG_FIELD
-
signal every field
By default, signals will be generated for every frame.
Generation of signals is terminated with the
METEOR_SIG_MODE_MASK
argument.
TUNER INTERFACE
Most cards supported by this driver feature a hardware television tuner
on the I2C bus.
The tuner interface to
bktr
is accessed through the
/dev/tunerN
devices.
The following
ioctl(2)
commands are supported on the tuner interface:
TVTUNER_SETTYPE
unsigned int *
-
This command sets the tuner's TV channel set, also sometimes called the TV
channel band.
This setting is used to calculate the proper tuning frequencies.
The desired channel set must be selected before attempting to set the tuner
channel or frequency.
The following is a list of valid channel sets:
CHNLSET_NABCST
-
North America broadcast
CHNLSET_CABLEIRC
-
North America IRC cable
CHNLSET_CABLEHRC
-
North America HRC cable
CHNLSET_WEUROPE
-
Western Europe
CHNLSET_JPNBCST
-
Japan broadcast
CHNLSET_JPNCABLE
-
Japan cable
CHNLSET_XUSSR
-
Russia
CHNLSET_AUSTRALIA
-
Australia
CHNLSET_FRANCE
-
France
TVTUNER_GETTYPE
unsigned int *
-
This command fetches the tuner's current channel set to the
argument.
TVTUNER_SETCHNL
unsigned int *
-
This command sets the tuner's frequency to a specified channel in the
current channel set.
TVTUNER_GETCHNL
unsigned int *
-
This command fetches the last selected channel.
Note that it is not necessarily the current channel.
In particular, changing the tuner's frequency by a command other than
TVTUNER_SETCHNL
will not update this setting, and it defaults to 0 on driver
initialization.
TVTUNER_SETFREQ
unsigned int *
-
This command sets the tuner's frequency to 1/16th the value of the
argument, in MHz.
Note that the current channelset is used to determine frequency
offsets when this command is executed.
TVTUNER_GETFREQ
unsigned int *
-
This command fetches the tuner's current frequency to the
argument.
Note that this value is 16 times the actual tuner frequency, in MHz.
BT848_SAUDIO
int *
-
This command controls the audio input port and mute state.
The following is a list of valid arguments:
AUDIO_TUNER
-
tuner audio port
AUDIO_EXTERN
-
external audio port
AUDIO_INTERN
-
internal audio port
AUDIO_MUTE
-
mute audio
AUDIO_UNMUTE
-
unmute audio
BT848_GAUDIO
int *
-
This command fetches the audio input and mute state bits to the
argument.
FILES
/dev/bktr*
-
bktr
driver interface device
/dev/tuner*
-
bktr
tuner interface device
/dev/vbi*
-
teletext interface device
SEE ALSO
options(4),
pci(4),
radio(4),
pkgsrc/audio/xmradio
,
pkgsrc/multimedia/ffmpeg
,
pkgsrc/multimedia/fxtv
HISTORY
The
bktr
driver appeared in
FreeBSD2.2
and
NetBSD1.5.
AUTHORS
The
bktr
driver was originally written by Amancio Hasty for
FreeBSD
and is now maintained by Roger Hardiman.
NetBSD
porting was done by Bernd Ernesti, Berndt Josef Wulf, Matthias
Scheler, and Thomas Klausner.