Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer


Intro
=====

people start bugging me about this with questions, looks like I
should write up some documentation for this beast.  That way I
don't have to answer that much mails I hope.  Yes, I'm lazy...


You might have noticed that the bt878 grabber cards have actually
_two_ PCI functions:

$ lspci
[ ... ]
00:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
00:0a.1 Multimedia controller: Brooktree Corporation Bt878 (rev 02)
[ ... ]

The first does video, it is backward compatible to the bt848.  The second
does audio.  btaudio is a driver for the second function.  It's a sound
driver which can be used for recording sound (and _only_ recording, no
playback).  As most TV cards come with a short cable which can be plugged
into your sound card's line-in you probably don't need this driver if all
you want to do is just watching TV...


Driver Status
=============

Still somewhat experimental.  The driver should work stable, i.e. it
should'nt crash your box.  It might not work as expected, have bugs,
not being fully OSS API compliant, ...

Latest versions are available from http://bytesex.org/bttv/, the
driver is in the bttv tarball.  Kernel patches might be available too,
have a look at http://bytesex.org/bttv/listing.html.

The chip knows two different modes.  btaudio registers two dsp
devices, one for each mode.  They can not be used at the same time.


Digital audio mode
==================

The chip gives you 16 bit stereo sound.  The sample rate depends on
the external source which feeds the bt878 with digital sound via I2S
interface.  There is a insmod option (rate) to tell the driver which
sample rate the hardware uses (32000 is the default).

One possible source for digital sound is the msp34xx audio processor
chip which provides digital sound via I2S with 32 kHz sample rate.  My
Hauppauge board works this way.

The Osprey-200 reportly gives you digital sound with 44100 Hz sample
rate.  It is also possible that you get no sound at all.


analog mode (A/D)
=================

You can tell the driver to use this mode with the insmod option "analog=1".
The chip has three analog inputs.  Consequently you'll get a mixer device
to control these.

The analog mode supports mono only.  Both 8 + 16 bit.  Both are _signed_
int, which is uncommon for the 8 bit case.  Sample rate range is 119 kHz
to 448 kHz.  Yes, the number of digits is correct.  The driver supports
downsampling by powers of two, so you can ask for more usual sample rates
like 44 kHz too.

With my Hauppauge I get noisy sound on the second input (mapped to line2
by the mixer device).  Others get a useable signal on line1.


some examples
=============

* read audio data from btaudio (dsp2), send to es1730 (dsp,dsp1):
  $ sox -w -r 32000 -t ossdsp /dev/dsp2 -t ossdsp /dev/dsp

* read audio data from btaudio, send to esound daemon (which might be
  running on another host):
  $ sox -c 2 -w -r 32000 -t ossdsp /dev/dsp2 -t sw - | esdcat -r 32000
  $ sox -c 1 -w -r 32000 -t ossdsp /dev/dsp2 -t sw - | esdcat -m -r 32000


Have fun,

  Gerd

-- 
Gerd Knorr <kraxel@bytesex.org>