From: Andre Noll Date: Thu, 1 Feb 2007 23:16:52 +0000 (+0100) Subject: new feature list, merge of README and FEATURES X-Git-Tag: v0.2.15~46 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=41c4f81a98b916d134c1dcd4593e1c013041a06b;hp=cac5941cd60f5397b424acf7711e7b203fa0483f new feature list, merge of README and FEATURES README and FEATURES contained quite some overlap, so merge them into a single document (README) and change FEATURES to contain only a bullet list. --- diff --git a/FEATURES b/FEATURES index e96676d2..204e332f 100644 --- a/FEATURES +++ b/FEATURES @@ -1,81 +1,30 @@ Features ======== --------------------------------------- -configurable audio streaming software: --------------------------------------- - -para_server streams binary audio data (mp3/ogg/m4a files) over local -and/or remote networks. It supports three builtin streaming methods -(senders): http, dccp, or rtp. - -para_audiod runs on the client side and connects to para_server. The audio -stream is read from the network and sent through any of paraslash's filters -(decoder, volume normalizer,...). The resulting stream is written to an output -plugin (writer), e.g. the alsa writer on linux systems. It is possible to -capture the stream at any position in the filter chain. - -The receiving/filtering/playing software is also available as standalone -command line tools: para_recv, para_filter, and para_write. - ----------------------------------- -configurable audio file selectors: ----------------------------------- - -There are three audio file selectors available: random, playlist -and mysql - -The first two of these are rather simple, and they are always -supported. They allow streaming of randomly selected files or files -given by a playlist respectively. - -The (optional) mysql selector is more involved. It manages -statistics on your audio files, and audio file selection works by -sending a user-defined sql-query to the mysql server. This allows -rather sophisticated configurations and is explained in detail in -README.mysql. - -It is possible to switch between all supported selectors at any time. - ------------------------ -small memory footprint: ------------------------ - -paraslash is lightweight. The stripped binary of para_server with -all its features compiled in (mysql/random/playlist selector, -mp3/ogg/aac support, http/dccp/ortp support) is about 120K on i386 -under Linux. para_audiod is even smaller. - ------------------------ -command line interface: ------------------------ - -paraslash commands are sent to para_server and the response is -dumped to stdout. This can be used by any scripting language -to produce user interfaces with little programming effort. - --------------------------------------- -authentication/encryption via openssl: --------------------------------------- - -All connections between para_server and para_client are encrypted by -default. For each user of paraslash you must create a public/secret -key pair for authentication. The (authenticated) connection is crypted -with a symmetric rc4 session key. - --------------------------------------- -various user interfaces and utilities: --------------------------------------- - - * para_gui. Curses based interface, displays information in a - curses window and can be used to easily control para_server - and para_audiod. - * para_sdl_gui. Shows pictures (on a per song basis) and - other information about the current audio file. Can be used - as a screen saver. - * para_krell. A gkrellm2 plugin that shows small pics and is - able to launch 27 different commands by clicking on the image. - * para_slider. User-friendly stream creator for people who - don't like their keyboard. - * para_dbadm. Simple curses interface for changing attributes. - * para_fade. Simple volume fader and alarm clock. +------------------------------------------------------------------------------ + + * Linux and Mac OS support + * mp3, oggvorbis, aac(m4a) support + * local or remote http, dccp, and ortp network streaming + * volume normalizer + * stream grabbing at any point in the filter chain + * stand-alone command line receiver/decorer/normalizer/player + * sophisticated audio file selectors (mysql, random, playlist) + * small memory footprint + * command line interface for easy scripting in high-level languages + * RSA user authentication + * encrypted communications + * GPL licensed + * written in C + * well documented + * complete API-Reference + * easily extendable due to the modular design + * various user interfaces and utilities: + * para_gui. Curses based interface to easily control server and + client + * para_sdl_gui. Shows images on a per song basis and can be used + as a screen saver. + * para_krell. A gkrellm2 plugin + * para_slider. User-friendly stream creator + * para_dbadm. Simple curses interface for changing attributes. + * para_fade. volume fader and alarm clock. diff --git a/README b/README index acb359a8..54fb9513 100644 --- a/README +++ b/README @@ -12,52 +12,80 @@ It contains the following programs: para_server (obligatory) ----------------------- -This server supports audio streaming of mp3, ogg vorbis and aac files. -It listens on a tcp port and accepts commands such as play, stop, -pause, next from authenticated clients. +para_server streams binary audio data (mp3/ogg/m4a files) over local +and/or remote networks. It listens on a tcp port and accepts commands +such as play, stop, pause, next from authenticated clients. However, +there are many more commands. + +It supports three builtin streaming methods (senders): http, dccp, +or rtp. The audio stream may be sent over the network by three different senders: -The http sender is recommended for public streams that can be played -by any player like mpg123, xmms, winamp... + * The http sender is recommended for public streams that can be played + by any player like mpg123, xmms, itunes, winamp... -The dccp sender is experimental and requires kernel support for the -rather new datagram congestion control protocol. + * The dccp sender is experimental and requires kernel support for the + rather new datagram congestion control protocol. -The ortp sender is recommended for LAN streaming and for private -streams that require authentication. + * The ortp sender is recommended for LAN streaming and for private + streams that require authentication. It is possible to activate more than one sender simultaneously. -para_server needs an "audio file selector" to work, mainly to determine -which song to stream next. There are three selectors available: -random, playlist and mysql. The former chooses audio files randomly -and playlist can handle, well, playlists. Both are always supported. +para_server needs an audio file selector to work, mainly to determine +which audio file to stream next. The following three selectors are +built in: + + * The random selector chooses audio files out of a given directory + by random + + * The playlist selector chooses files from a specified playlist + + * The (optional) mysql selector is more involved. It connects + to a mysql server which holds information on your audio files + and maintains statistics on the available audio files. Audio + file selection works by sending a user-defined sql-query + to the mysql server. This allows rather sophisticated + configurations and is explained in detail in README.mysql. -The optional mysql selector connects to a mysql server which holds -information on your audio files. It has several unusual features, -see README.mysql for details. +It is possible to switch between all supported selectors at any time. + +Despite of all these features, paraslash is lightweight. The +stripped binary of para_server with all its features compiled in +(mysql/random/playlist selector, mp3/ogg/aac support, http/dccp/ortp +support) is about 120K on i386 under Linux. para_audiod (see below) +is even smaller. ------------------------ para_client (obligatory) ----------------------- -The client program to connect to para_server. +The client program to connect to para_server. paraslash commands +are sent to para_server and the response is dumped to stdout. This +can be used by any scripting language to produce user interfaces with +little programming effort. + +All connections between para_server and para_client are encrypted by +default. For each user of paraslash you must create a public/secret +key pair for authentication. The (authenticated) connection is crypted +with a symmetric rc4 session key. ------------------- para_recv (optional) ------------------- -A command line http/dccp/rtp stream grabber. +A command line http/dccp/rtp stream grabber. The http mode of this tool +can be used to receive date from any http streaming source. --------------------- para_filter (optional) --------------------- -A filter program that converts from stdin and writes to stdout. This -one is independent from the rest of paraslash, so it might be useful -also for different purposes. +A filter program that converts from stdin and writes to stdout. It +is completely independent from the rest of paraslash, so it might be +useful also for different purposes. para_filter combines several decoders (mp3, oggvorbis, aac) and a volume normalzer. New filters can be added easily due to the modular @@ -69,20 +97,28 @@ read(2)/write(2)/select(2) etc. functions. para_write (obligatory) ---------------------- -A modular audio stream writer. It supports a simple file writer output plugin -and optional wav/raw players for alsa (linux-only, Debian package: -libasound2-dev) and Mac OS. +A modular audio stream writer. It supports a simple file writer +output plugin and optional wav/raw players for alsa (linux-only, +Debian package: libasound2-dev) and Mac OS. para_write can also be +used as a stand-alone wav or raw audio player. --------------------------------------- para_audiod (optional, but recommended) --------------------------------------- -The local daemon that collects information from para_server. It -starts an appropriate receiver, filter and player as soon as -para_server announces the availability (and the type) of an audio -stream. para_audiod listens on a local socket and sends status -information about para_server and para_audiod to local clients -on request. +The local daemon that collects information from para_server. + +It runs on the client side and connects to para_server. The audio +stream is read from the network and sent through any of paraslash's +filters (decoder, volume normalizer,...). The resulting stream is +written to an output plugin (writer), e.g. the alsa writer on linux +systems. It is possible to capture the stream at any position in the +filter chain. + +para_audiod starts an appropriate receiver, filter and player as soon as +para_server announces the availability (and the type) of an audio stream. +Moreover, it listens on a local socket and sends status information about +para_server and para_audiod to local clients on request. -------------------------------------- para_audioc (optional, but recommended)