gstreamer/ext/alsa
Ronald S. Bultje 595cbc2d05 New typefind system: bytestream is now part of the core all plugins have been modified to use this new typefind syste...
Original commit message from CVS:
New typefind system:
* bytestream is now part of the core
* all plugins have been modified to use this new typefind system
* asf typefinding added
* mpeg video stream typefiding removed because it's broken
* duplicate typefind entries removed
* extra id3 typefinding added, because we've seen 4 types of files
(riff/wav, flac, vorbis, mp3) with id3 headers and each of these needs
to work. Instead, I've added an id3 element and let it redo typefiding
after the id3 header. this needs a hack because spider only typefinds
once. We can remove this hack once spider supports multiple typefinds.
* with all this, mp3 typefinding is semi-rewritten
* id3 typefinding in flac/vorbis is removed, it's no longer needed
* fixed spider and gst-typefind to use this, too.
* Other general cleanups
2003-10-01 13:14:45 +00:00
..
gstalsa.1 adding my gstalsa plugin man page as a test. if it works I start commiting some more 2002-06-17 17:09:42 +00:00
gstalsa.c New typefind system: bytestream is now part of the core all plugins have been modified to use this new typefind syste... 2003-10-01 13:14:45 +00:00
gstalsa.h next big bunch of stuff: 2003-05-15 16:32:22 +00:00
Makefile.am Remove redundant plugindir definition 2003-08-10 00:01:58 +00:00
README fixing alsa step 2: complete rewrite of data transfer. The whole stuff is clean enough to go from there now. 2003-02-09 22:47:34 +00:00

0.0 History
-----------

This plugin was originally written by Thomas Nyberg <thomas@codefactory.se> for
ALSA 0.5.x. It was updated and changed quite a bit in September 2001 by Andy
Wingo for use with ALSA 0.9.x. It was rewritten in great part again by Benjamin 
Otte in January/February 2003.

1.0 Introduction
----------------

This plugin was designed for use with ALSA 0.9.x, using other versions most
assuredly will not work.

The plugin will probe which cards and pcm-devices that are availible, and then
it tries to determine their capabilities. This will allow the use of multiple
cards with multiple pcm-devices - at the same time! Since I only have one card
on my system, as of yet, I haven't had the chance to try this out.

2.0 How to use it
-----------------

Since we can have multiple soundcards, each having the same name - and also
multiple pcm-devices on each card, a problem with naming occurs. When
the alsa-plugins are initialized, a factory is created for each card and 
pcm-device on the system. 

On my desktop, I have the following:

wingo@cebreiro:~/src/gstreamer$ gstreamer-inspect alsa
INFO (  339:-1) Initializing GStreamer Core Library
INFO (  339:-1) CPU features: (808009bf) MMX 3DNOW 
Plugin Details:
  Name:         alsa
  Long Name:    Alsa plugin library
  Filename:     /usr/lib/gst/libalsa.so

  ES1370/1_sink: ES1370 DAC2/ADC
  ES1370/2_sink: ES1370 DAC1
  ES1370/1_src: ES1370 DAC2/ADC
  alsasink: default alsa sink
  alsasrc: default alsa src

My particular card has 4 channel out and 2 channel in. As you can see, each of
these devices are stereo. The alsasink and alsasrc elements correspond to the
default alsa devices.

3.0 Where to look for other ALSA drivers
----------------------------------------

ALSA 0.9 isn't very well documented, so we had to rely on a number of different
sources for guidance. Sources of inspiration include JACK's alsa driver 
(available in jack's cvs tree, http://jack.sourceforge.net/), the alsa2 driver 
of mplayer (http://www.mplayerhq.hu) and the pcm.c example from the ALSA library
itself.
(http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html)

4.0 License
-----------

This plugin is licensed under the Lesser General Public License (LGPL). See the
file COPYING in the top source directory.