500 lines
12 KiB
Groff
500 lines
12 KiB
Groff
.\" $NetBSD: bktr.4,v 1.19 2018/08/31 19:36:28 sevan Exp $
|
|
.\"
|
|
.\" Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005 Thomas Klausner
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. The name of the author may not be used to endorse or promote products
|
|
.\" derived from this software without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
|
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
|
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
.\" POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.Dd August 30, 2011
|
|
.Dt BKTR 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm bktr
|
|
.Nd Brooktree 848 compatible TV card driver
|
|
.Sh SYNOPSIS
|
|
.Cd "bktr* at pci? dev ? function ?"
|
|
.Cd radio* at bktr?
|
|
.Pp
|
|
.In dev/ic/bt8xx.h
|
|
.Pp
|
|
.Cd options BKTR_OVERRIDE_CARD=n
|
|
.Cd options BKTR_OVERRIDE_TUNER=n
|
|
.Cd options BKTR_OVERRIDE_DBX=n
|
|
.Cd options BKTR_OVERRIDE_MSP=n
|
|
.Cd options BKTR_SYSTEM_DEFAULT=n
|
|
.Cd options BKTR_USE_PLL
|
|
.Cd options BKTR_GPIO_ACCESS
|
|
.Cd options BKTR_NO_MSP_RESET
|
|
.\" The following options have no effect:
|
|
.\" .Cd options BKTR_430_FX_MODE
|
|
.\" .Cd options BKTR_SIS_VIA_MODE
|
|
.Sh DESCRIPTION
|
|
This driver supports video capture (frame grabber) and TV tuner cards
|
|
based on the
|
|
.Tn Brooktree
|
|
.Tn Bt848 ,
|
|
.Tn Bt848A ,
|
|
.Tn Bt849A ,
|
|
.Tn Bt878 ,
|
|
and
|
|
.Tn Bt879
|
|
chips.
|
|
.Pp
|
|
Note that
|
|
.Nm
|
|
is not part of the
|
|
.Xr dtv 4
|
|
framework.
|
|
.Pp
|
|
Supported cards include most cards by
|
|
.Tn AVerMedia ,
|
|
.Tn Hauppauge ,
|
|
.Tn Leadtek ,
|
|
.Tn Miro ,
|
|
.Tn Pinnacle ,
|
|
.Tn Pixelview ,
|
|
.Tn Terratec ,
|
|
and some other companies, especially all cards based on the
|
|
.Tn Brooktree
|
|
.Tn Bt848 ,
|
|
.Tn Bt848A ,
|
|
.Tn Bt849A ,
|
|
.Tn Bt878 ,
|
|
or
|
|
.Tn Bt879
|
|
chips.
|
|
A notable exception are the
|
|
.Tn ATI
|
|
.Tn All-in-Wonder
|
|
cards.
|
|
.Pp
|
|
The following kernel configuration options are available:
|
|
.Bl -ohang
|
|
.It Cd 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:
|
|
.Bl -tag -width 2n -compact
|
|
.It 1
|
|
Pinnacle Systems (Miro) TV,
|
|
.It 2
|
|
Hauppauge WinCast/TV,
|
|
.It 3
|
|
STB TV/PCI,
|
|
.It 4
|
|
Intel Smart Video III and Videologic Captivator PCI,
|
|
.It 5
|
|
IMS TV Turbo,
|
|
.It 6
|
|
AVerMedia TV/FM,
|
|
.It 7
|
|
MMAC Osprey,
|
|
.It 8
|
|
NEC PK-UG-X017,
|
|
.It 9
|
|
I/O DATA GV-BCTV2/PCI,
|
|
.It 10
|
|
Animation Technologies FlyVideo,
|
|
.It 11
|
|
Zoltrix TV,
|
|
.It 12
|
|
KISS TV/FM PCI,
|
|
.It 13
|
|
Video Highway Xtreme,
|
|
.It 14
|
|
Askey/Dynalink Magic TView,
|
|
.It 15
|
|
Leadtek WinFast TV 2000/VC100,
|
|
.It 16
|
|
TerraTec TerraTV+,
|
|
and
|
|
.It 17
|
|
TerraTec TValue.
|
|
.El
|
|
.It Cd 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:
|
|
.Bl -tag -width 2n -compact
|
|
.It 1
|
|
Temic NTSC,
|
|
.It 2
|
|
Temic PAL,
|
|
.It 3
|
|
Temic SECAM,
|
|
.It 4
|
|
Philips NTSC,
|
|
.It 5
|
|
Philips PAL,
|
|
.It 6
|
|
Philips SECAM,
|
|
.It 7
|
|
Temic PAL I,
|
|
.It 8
|
|
Philips PAL I,
|
|
.It 9
|
|
Philips FR1236 NTSC FM,
|
|
.It 10
|
|
Philips FR1216 PAL FM,
|
|
.It 11
|
|
Philips FR1236 SECAM FM,
|
|
.It 12
|
|
ALPS TSCH5 NTSC FM,
|
|
and
|
|
.It 13
|
|
ALPS TSBH1 NTSC.
|
|
.El
|
|
.It Cd options BKTR_OVERRIDE_DBX=n
|
|
To override detection of the BTSC (dbx) chip, set this to
|
|
.Em 1
|
|
if you have one, or
|
|
.Em 0
|
|
if not.
|
|
.It Cd options BKTR_OVERRIDE_MSP=n
|
|
To override detection of the MSP 34xx chip, set this to
|
|
.Em 1
|
|
if you have one, or
|
|
.Em 0
|
|
if not.
|
|
.It Cd options BKTR_SYSTEM_DEFAULT=n
|
|
If this option is set to
|
|
.Em BROOKTREE_PAL
|
|
default to PAL, else to NTSC.
|
|
.It Cd options BKTR_USE_PLL
|
|
Default to PLL instead of XTAL.
|
|
.It Cd options BKTR_GPIO_ACCESS
|
|
Use
|
|
.Fn ioctl Ns s
|
|
for direct GPIO access.
|
|
.It Cd 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.
|
|
.\" The following options have no effect:
|
|
.\" .It Cd options BKTR_430_FX_MODE
|
|
.\" .It Cd options BKTR_SIS_VIA_MODE
|
|
.El
|
|
.Sh VIDEO CAPTURE INTERFACE
|
|
The video capture interface to
|
|
.Nm
|
|
is accessed through the
|
|
.Pa /dev/bktrN
|
|
devices.
|
|
The following
|
|
.Xr ioctl 2
|
|
commands are supported on the Brooktree848 video capture interface:
|
|
.Bl -tag -width Ds
|
|
.It Dv METEORSFMT Fa "unsigned long *"
|
|
This command sets the video format, also sometimes referred to as the
|
|
video norm.
|
|
The supported formats are:
|
|
.Pp
|
|
.Bl -tag -compact -width 28n
|
|
.It Dv METEOR_FMT_NTSC
|
|
NTSC
|
|
.It Dv METEOR_FMT_PAL
|
|
PAL
|
|
.It Dv METEOR_FMT_SECAM
|
|
SECAM
|
|
.It Dv METEOR_FMT_AUTOMODE
|
|
hardware default
|
|
.El
|
|
.It Dv METEORGFMT Fa "unsigned long *"
|
|
This command retrieves the current video format to the
|
|
.Vt unsigned long *
|
|
argument.
|
|
.It Dv METEORSETGEO Fa "struct meteor_geomet *"
|
|
This command sets the video properties that affect the bit size of
|
|
a frame through the
|
|
.Vt meteor_geomet *
|
|
argument.
|
|
.Bd -literal
|
|
struct meteor_geomet {
|
|
u_short rows; /* height in pixels*/
|
|
u_short columns; /* width in pixels */
|
|
u_short frames;
|
|
u_long oformat;
|
|
}
|
|
.Ed
|
|
.Pp
|
|
The
|
|
.Va frames
|
|
field is the number of frames to buffer.
|
|
Currently only 1 frame is supported for most operations.
|
|
.Pp
|
|
The
|
|
.Va 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
|
|
.Bl -tag -compact -width 28n
|
|
.It Dv METEOR_GEO_RGB16
|
|
16-bit RGB
|
|
.It Dv METEOR_GEO_RGB24
|
|
24-bit RGB in 32 bits
|
|
.It Dv METEOR_GEO_YUV_PACKED
|
|
16-bit 4:2:2 YUV
|
|
.It Dv METEOR_GEO_YUV_PLANAR
|
|
16-bit 4:2:2 YUV
|
|
.It Dv METEOR_GEO_YUV_UNSIGNED
|
|
unsigned UV
|
|
.It Dv METEOR_GEO_YUV_422
|
|
.It Dv METEOR_GEO_YUV_12
|
|
.It Dv METEOR_GEO_YUV_9
|
|
.El
|
|
.Pp
|
|
The following are supported field capture modes:
|
|
.Pp
|
|
.Bl -tag -compact -width 28n
|
|
.It Dv METEOR_GEO_ODD_ONLY
|
|
only odd fields
|
|
.It Dv METEOR_GEO_EVEN_ONLY
|
|
only even fields
|
|
.El
|
|
.Pp
|
|
By default, frames will consist of both the odd and even fields.
|
|
.It Dv METEORGSUPPIXFMT Fa "struct meteor_pixfmt *"
|
|
This command is used interactively to fetch descriptions of supported
|
|
output pixel formats into the
|
|
.Vt meteor_pixfmt *
|
|
argument.
|
|
.Bd -literal
|
|
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;
|
|
};
|
|
.Ed
|
|
.Pp
|
|
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.
|
|
.It Dv METEORSACTPIXFMT Fa "int *"
|
|
This command sets the active pixel format.
|
|
The
|
|
.Vt int *
|
|
argument is the index of the pixel format as returned by
|
|
.Dv METEORGSUPPIXFMT .
|
|
.It Dv METEORGACTPIXFMT Fa "int *"
|
|
This command fetches the active pixel format index into the
|
|
.Vt int *
|
|
argument.
|
|
.It Dv METEORSINPUT Fa "unsigned long *"
|
|
This command sets the input port of the Brooktree848 device.
|
|
The following are supported input ports:
|
|
.Pp
|
|
.Bl -tag -compact -width 28n
|
|
.It Dv METEOR_INPUT_DEV0
|
|
composite (RCA)
|
|
.It Dv METEOR_INPUT_DEV1
|
|
tuner
|
|
.It Dv METEOR_INPUT_DEV2
|
|
composite S-video
|
|
.It Dv METEOR_INPUT_DEV3
|
|
mystery device
|
|
.It Dv METEOR_INPUT_DEV_RGB
|
|
rgb meteor
|
|
.It Dv METEOR_INPUT_DEV_SVIDEO
|
|
S-Video
|
|
.El
|
|
.Pp
|
|
Not all devices built with Brooktree848 chips support the
|
|
full list of input ports.
|
|
.It Dv METEORGINPUT Fa "unsigned long *"
|
|
This command retrieves the current input port to the
|
|
.Vt unsigned long *
|
|
argument.
|
|
.It Dv METEORSFPS Fa "unsigned short *"
|
|
This command sets the number of frames to grab each second.
|
|
Valid frame rates are integers from 0 to 30.
|
|
.It Dv METEORGFPS Fa "unsigned short *"
|
|
This command fetches the number of frames to grab each second into the
|
|
.Vt unsigned short *
|
|
argument.
|
|
.It Dv METEORCAPTUR Fa "int *"
|
|
This command controls capturing of video data.
|
|
The following are valid arguments:
|
|
.Pp
|
|
.Bl -tag -compact -width 28n
|
|
.It Dv METEOR_CAP_SINGLE
|
|
capture one frame
|
|
.It Dv METEOR_CAP_CONTINOUS
|
|
continuously capture
|
|
.It Dv METEOR_CAP_STOP_CONT
|
|
stop continuous capture
|
|
.El
|
|
.It Dv METEORSSIGNAL Fa "unsigned int *"
|
|
This command controls the signal emission properties of
|
|
.Nm .
|
|
If the
|
|
.Vt unsigned int *
|
|
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:
|
|
.Pp
|
|
.Bl -tag -compact -width 28n
|
|
.It Dv METEOR_SIG_FRAME
|
|
signal every frame
|
|
.It Dv METEOR_SIG_FIELD
|
|
signal every field
|
|
.El
|
|
.Pp
|
|
By default, signals will be generated for every frame.
|
|
Generation of signals is terminated with the
|
|
.Dv METEOR_SIG_MODE_MASK
|
|
argument.
|
|
.El
|
|
.Sh TUNER INTERFACE
|
|
Most cards supported by this driver feature a hardware television tuner
|
|
on the I2C bus.
|
|
The tuner interface to
|
|
.Nm
|
|
is accessed through the
|
|
.Pa /dev/tunerN
|
|
devices.
|
|
The following
|
|
.Xr ioctl 2
|
|
commands are supported on the tuner interface:
|
|
.Bl -tag -width Ds
|
|
.It Dv TVTUNER_SETTYPE Fa "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:
|
|
.Pp
|
|
.Bl -tag -compact -width 28n
|
|
.It Dv CHNLSET_NABCST
|
|
North America broadcast
|
|
.It Dv CHNLSET_CABLEIRC
|
|
North America IRC cable
|
|
.It Dv CHNLSET_CABLEHRC
|
|
North America HRC cable
|
|
.It Dv CHNLSET_WEUROPE
|
|
Western Europe
|
|
.It Dv CHNLSET_JPNBCST
|
|
Japan broadcast
|
|
.It Dv CHNLSET_JPNCABLE
|
|
Japan cable
|
|
.It Dv CHNLSET_XUSSR
|
|
Russia
|
|
.It Dv CHNLSET_AUSTRALIA
|
|
Australia
|
|
.It Dv CHNLSET_FRANCE
|
|
France
|
|
.El
|
|
.It Dv TVTUNER_GETTYPE Fa "unsigned int *"
|
|
This command fetches the tuner's current channel set to the
|
|
.Vt unsigned int *
|
|
argument.
|
|
.It Dv TVTUNER_SETCHNL Fa "unsigned int *"
|
|
This command sets the tuner's frequency to a specified channel in the
|
|
current channel set.
|
|
.It Dv TVTUNER_GETCHNL Fa "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
|
|
.Dv TVTUNER_SETCHNL
|
|
will not update this setting, and it defaults to 0 on driver
|
|
initialization.
|
|
.It Dv TVTUNER_SETFREQ Fa "unsigned int *"
|
|
This command sets the tuner's frequency to 1/16th the value of the
|
|
.Vt unsigned int *
|
|
argument, in MHz.
|
|
Note that the current channelset is used to determine frequency
|
|
offsets when this command is executed.
|
|
.It Dv TVTUNER_GETFREQ Fa "unsigned int *"
|
|
This command fetches the tuner's current frequency to the
|
|
.Vt unsigned int *
|
|
argument.
|
|
Note that this value is 16 times the actual tuner frequency, in MHz.
|
|
.It Dv BT848_SAUDIO Fa "int *"
|
|
This command controls the audio input port and mute state.
|
|
The following is a list of valid arguments:
|
|
.Pp
|
|
.Bl -tag -compact -width 18n
|
|
.It Dv AUDIO_TUNER
|
|
tuner audio port
|
|
.It Dv AUDIO_EXTERN
|
|
external audio port
|
|
.It Dv AUDIO_INTERN
|
|
internal audio port
|
|
.It Dv AUDIO_MUTE
|
|
mute audio
|
|
.It Dv AUDIO_UNMUTE
|
|
unmute audio
|
|
.El
|
|
.It Dv BT848_GAUDIO Fa "int *"
|
|
This command fetches the audio input and mute state bits to the
|
|
.Vt int *
|
|
argument.
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width /dev/tuner* -compact
|
|
.It Pa /dev/bktr*
|
|
.Nm
|
|
driver interface device
|
|
.It Pa /dev/tuner*
|
|
.Nm
|
|
tuner interface device
|
|
.It Pa /dev/vbi*
|
|
teletext interface device
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr options 4 ,
|
|
.Xr pci 4 ,
|
|
.Xr radio 4 ,
|
|
.Pa pkgsrc/audio/xmradio ,
|
|
.Pa pkgsrc/multimedia/ffmpeg ,
|
|
.Pa pkgsrc/multimedia/fxtv
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
driver appeared in
|
|
.Fx 2.2
|
|
and
|
|
.Nx 1.5 .
|
|
.Sh AUTHORS
|
|
.An -nosplit
|
|
The
|
|
.Nm
|
|
driver was originally written by
|
|
.An "Amancio Hasty"
|
|
for
|
|
.Fx
|
|
and is now maintained by
|
|
.An "Roger Hardiman" .
|
|
.Nx
|
|
porting was done by
|
|
.An "Bernd Ernesti" ,
|
|
.An "Berndt Josef Wulf" ,
|
|
.An "Matthias Scheler" ,
|
|
and
|
|
.An "Thomas Klausner" .
|