aacdec: detect buffer overrun and return an errror.
[paraslash.git] / FEATURES
1 Features
2 ========
3
4 configurable audio streaming software:
5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 para_server streams binary audio data (mp3/ogg/m4a files)
7 over local and/or remote networks. It supports three builtin
8 streaming methods (senders): http, dccp, or rtp.
9
10 para_audiod runs on the client side and connects to
11 para_server. The audio stream is read from the network and
12 sent through any of paraslash's filters (decoder, volume
13 normalizer,...). The resulting stream is written to an external
14 program's standard in, usually an audio player like para_write,
15 which comes with paraslash and contains an alsa player. It
16 is possible to capture the stream at any position in the
17 filter chain.
18
19 The receiving/filtering/playing software is also available
20 as standalone command line tool: para_recv, para_filter,
21 and para_write.
22
23 configurable audio file selectors:
24 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 There are three audio file selectors available: random,
26 playlist and mysql
27
28 The first two of these are rather simple, and they are always
29 supported. They allow streaming of randomly selected files
30 or files given by a playlist respectively.
31
32 The (optional) mysql selector is more involved. It manages
33 statistics on your audio files, and audio file selection works
34 by sending a user-defined sql-query to the mysql server.
35 This allows rather sophisticated configurations and is
36 explained in detail in README.mysql.
37
38 It is possible to switch between all supported selectors at
39 any time.
40
41 small memory footprint:
42 ~~~~~~~~~~~~~~~~~~~~~~~
43 paraslash is lightweight. The stripped binary of para_server
44 with all its features compiled in (mysql/random/playlist
45 selector, mp3/ogg/aac support, http/dccp/ortp support) is
46 about 120K on i386 under Linux. para_audiod is even smaller.
47
48 command line interface:
49 ~~~~~~~~~~~~~~~~~~~~~~~
50 paraslash commands are sent to para_server and the response is
51 dumped to stdout. This can be used by any scripting language
52 to produce user interfaces with little programming effort.
53
54 authentication/encryption via openssl:
55 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56 All connections between para_server and para_client are
57 encrypted by default. For each user of paraslash you must
58 create a public/secret key pair for authentication. The
59 (authenticated) connection is crypted with a symmetric rc4
60 session key.
61
62 various user interfaces and utilities:
63 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64 o para_gui. Curses based interface, displays information in a
65 curses window and can be used to easily control para_server
66 and para_audiod.
67
68 o para_sdl_gui. Shows pictures (on a per song basis) and
69 other information about the current audio file. Can be used
70 as a screen saver.
71
72 o para_krell. A gkrellm2 plugin that shows small pics and is
73 able to launch 27 different commands by clicking on the image.
74
75 o para_slider. User-friendly stream creator for people who
76 don't like their keyboard.
77
78 o para_dbadm. Simple curses interface for changing attributes.
79
80 o para_fade. Simple volume fader and alarm clock.