Transform Plugins - nesciens/xmms2-wiki GitHub Wiki
Overview
XMMS2 uses a flexible plugin concept called transforms (main article: Transforms). Each transform does some work to help decode the input. Transform plugins are assembled into a chain at runtime to decode each song bit-by-bit.
Transform plugins (xforms) can be categorized into the following types (and possibly more): playlists, transports, demuxers, metadata, decoders, effects, outputs, special, and others.
Plugins
Playlists
Playlist xforms parse and load playlist files.
- ASX - Advanced Stream Redirector xform, reads ASX playlists (made popular by Windows Media Player)
- cue - Cuefile xform.
- HTML - HTML xform.
- m3u - M3U xform.
- pls - PLS xform.
- RSS - RSS xform, loads RSS playlists, like podcasts.
- XSPF - XML Shareable Playlist Format xform.
Transports
Transports get raw data as a stream from a source such as a hard disk or internet radio.
- CDDA - Compact Disc Digital Audio xform, reads audio CDs.
- cURL - cURL xform, reads http, https, ftp, and other streams.
- DAAP - Digital Audio Access Protocol xform, reads from DAAP shares (made popular by iTunes)
- file - File xform, reads files from the local filesystem.
- gnomevfs - GnomeVFS xform, uses Gnome's virtual filesystem to access many types of media.
- MMS - Libmms xform, reads from MMS (Microsoft Media Services) streams.
- samba - Samba xform, reads from SMB shares.
Demuxers
Demuxers (short for "demultiplexers") strip away container formats and pass on any relevant information from the container.
- avformat - FFmpeg xform, demuxes asf and amr streams.
- mp4 - MPEG-4 xform, demuxes MPEG-4 container format (made popular by iTunes).
Metadata
Metadata xforms strip out metadata like ID3 tags and vorbis comments from streams.
- icymetaint - ICY xform, extracts info from ICY headers in ShoutCast streams.
- ID3v2 - ID3v2 xform, extracts ID3v2 tags.
- ofa - Libofa xform, MusicDNS fingerprinting.
Decoders
Decoders turn the encoded audio data into raw audio data that can be used by effects and outputs. Many of the decoders also extract metadata.
- avcodec - FFmpeg xform.
- FAAD - Advanced Audio Coding (AAC) xform.
- FLAC - Free Lossless Audio Codec xform.
- mac - Monkey's Audio Codec xform.
- mad - Libmad xform, decodes MP3.
- modplug - Modplug xform, decodes mod files.
- musepack - Musepack Living Audio Compression xform, decodes mpc files.
- sid - Libsidplay2 xform, decodes SID files.
- speex - Speex voice compression xform.
- vorbis - Ogg Vorbis xform.
- wave - Wave xform, decodes .wav files.
Effects
Effects modify the raw audio data before it is sent to the output.
- equalizer - Equalizer xform, to tune different frequency bands to taste.
- replaygain - ReplayGain xform, normalizes audio according to settings stored in the file.
- vocoder - Vocoder xform, produces a cool vocoder effect.
Outputs
Outputs send the raw audio data out, usually to speakers, but also as internet radio streams or to the harddrive.
- ALSA - Advanced Linux Sound Architecture output.
- ao - Libao output.
- coreaudio - Coreaudio output, for Darwin/OSX.
- diskwrite - Diskwriter output, writes wave files to a location on the harddrive.
- ices - Icecast source output, use this to create an icecast stream directly from XMMS2.
- JACK - Jack Audio Connection Kit output, low-latency audio output.
- nms - Neuros OSD output.
- null - Null output, outputs nothing.
- OSS - Open Sound System output.
- sun - Sun output, for OpenBSD.
- waveout - WaveOut output, for Windows.
Special
Special xforms are built into XMMS2 and required for operation. They act as glue between certain xforms.
- converter - Converts between PCM formats, often needed by effects and certain outputs.
- magic - Identifies mimetypes of streams based on certain "magic bytes."
- ringbuf - Ringbuffer xform which can be inserted where there is a mismatch in how frequently a stream is read.
Others
These xforms don't fit in well in the other categories. Usually these are used to help other xforms and have little use on their own.
- nulstripper - Removes null bytes (not audio) at the beginning of streams. This helps the magic xform.
- XML - Used as a helper for XML-based playlist xforms (like RSS and XSPF).