X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=web%2Fmanual.m4;h=3d5bc2ee6327f754b2da031c928c091d8fa049d3;hp=946b9d0953621b23a3a6e30e62c211674d0c6ea5;hb=8a61aff04fa2e8860f7fd3969d58d77c0292155a;hpb=d5738d17b54186db8c9c7f119a03b58382ae9be4 diff --git a/web/manual.m4 b/web/manual.m4 index 946b9d09..3d5bc2ee 100644 --- a/web/manual.m4 +++ b/web/manual.m4 @@ -202,9 +202,10 @@ In any case you'll need git clone git://git.tuebingen.mpg.de/osl - - XREFERENCE(ftp://ftp.gnu.org/pub/gnu/gcc, gcc). The - EMPH(gnu compiler collection) is usually shipped with the - distro. gcc-3.3 or newer is required. + - XREFERENCE(ftp://ftp.gnu.org/pub/gnu/gcc, gcc) or + XREFERENCE(http://clang.llvm.org, clang). All gcc versions + >= 3.3 are currently supported. Clang version 1.1 or newer + should work as well. - XREFERENCE(ftp://ftp.gnu.org/pub/gnu/make, gnu make) is also shipped with the disto. On BSD systems the gnu make @@ -251,6 +252,10 @@ Optional: Linux, you'll need to have ALSA's development package libasound2-dev installed. + - XREFERENCE(http://downloads.xiph.org/releases/ao/, + libao). Needed to build the ao writer (ESD, PulseAudio,...). + Debian package: libao-dev. + Installation ~~~~~~~~~~~~ @@ -280,7 +285,11 @@ might need to tell the configure script where to find them. Try ./configure --help to see a list of options. If the paraslash package was compiled -successfully, execute as root, +successfully, execute (optionally) + + make test + +to run the paraslash test suite. If all tests pass, execute as root make install @@ -307,7 +316,7 @@ following commands: user=bar target=~/.paraslash/server.users - key=~/.paraslash/key.pub.$user + key=~/.paraslash/id_rsa.pub.$user perms=AFS_READ,AFS_WRITE,VSS_READ,VSS_WRITE mkdir -p ~/.paraslash echo "user $user $key $perms" >> $target @@ -315,20 +324,25 @@ following commands: Next, change to the "bar" account on client_host and generate the key pair with the commands - key=~/.paraslash/key.$LOGNAME - mkdir -p ~/.paraslash - (umask 077 && openssl genrsa -out $key 2048) + ssh-keygen -t rsa -b 2048 + # hit enter twice to create a key with no passphrase -para_server only needs to know the public key of the key pair just -created. It can be extracted with +This generates the two files id_rsa and id_rsa.pub in ~/.ssh. Note +that paraslash can also read keys generated by the "openssl genrsa" +command. However, since keys created with ssh-keygen can also be used +for ssh, this method is recommended. - pubkey=~/.paraslash/key.pub.$LOGNAME - openssl rsa -in $key -pubout -out $pubkey +Note that para_server refuses to use a key if it is shorter than 2048 +bits. In particular, the RSA keys of paraslash 0.3.x will not work +with version 0.4.x. Moreover, para_client refuses to use a (private) +key which is world-readable. -Copy the public key just created to server_host (you may skip this step -for a single-user setup, i.e. if foo=bar and server_host=client_host): +para_server only needs to know the public key of the key pair just +created. Copy this public key to server_host: - scp $pubkey foo@server_host:.paraslash/ + src=~/.ssh/id_rsa.pub + dest=.paraslash/id_rsa.pub.$LOGNAME + scp $src foo@server_host:$dest Finally, tell para_client to connect to server_host: @@ -402,9 +416,9 @@ as bar@client_host We will also have to tell para_audiod that it should receive the -audio stream from server_host: +audio stream from server_host via http: - para_audiod -l info -r 'mp3:http -i server_host' + para_audiod -l info -r '.:http -i server_host' You should now be able to listen to the audio stream once para_server starts streaming. To activate streaming, execute @@ -560,19 +574,6 @@ execute. The output of contains in the third column the permissions needed to execute the command. -A new RSA key can be created with - - openssl genrsa -out 2048 - -and the public part may be extracted with - - openssl rsa -in -pubout -out - -Note that para_server refuses to use a key if it is shorter than 2048 -bits. In particular, the RSA keys of paraslash 0.3.x will not work -with version 0.4.x. Moreover, para_client refuses to use a (private) -key which is world-readable. - It is possible to make para_server reread the user_list file by executing the paraslash "hup" command or by sending SIGHUP to the PID of para_server. @@ -1431,8 +1432,7 @@ from being interpreted by para_recv. -> Create a minimal config for para_audiod for HTTP streams: c=$HOME/.paraslash/audiod.conf.min; s=server.foo.com - formats="mp3 ogg aac wma" # remove what you do not have - for f in $formats; do echo receiver \"$f:http -i $s\"; done > $c + echo receiver \".:http -i $s\" > $c para_audiod --config $c ------- @@ -1470,11 +1470,23 @@ the driving application (para_audiod or para_filter). Example: para_filter -f 'mp3dec --ignore-crc' -f 'compress --damp 1' For para_audiod, each audio format has its own set of filters. The -name of the audio format for which the filter should be applied is -used as the prefix for the filter option. Example: +name of the audio format for which the filter should be applied can +be used as the prefix for the filter option. Example: para_audiod -f 'mp3:prebuffer --duration 300' +The "mp3" prefix above is actually interpreted as a POSIX extended +regular expression. Therefore + + para_audiod -f '.:prebuffer --duration 300' + +activates the prebuffer filter for all supported audio formats (because +"." matches all audio formats) while + + para_audiod -f 'wma|ogg:prebuffer --duration 300' + +activates it only for wma and ogg streams. + Decoders ~~~~~~~~ @@ -1500,9 +1512,9 @@ Forward error correction ~~~~~~~~~~~~~~~~~~~~~~~~ As already mentioned REFERENCE(Streaming protocols, earlier), -paraslash uses forward error correction (FEC) for the unreliable -UDP transport. FEC is a technique which was invented already in -1960 by Reed and Solomon and which is widely used for the parity +paraslash uses forward error correction (FEC) for the unreliable UDP +and DCCP transports. FEC is a technique which was invented already +in 1960 by Reed and Solomon and which is widely used for the parity calculations of storage devices (RAID arrays). It is based on the algebraic concept of finite fields, today called Galois fields, in honour of the mathematician Galois (1811-1832). The FEC implementation @@ -1529,7 +1541,7 @@ From these observations it is clear that there are three different FEC parameters: The slice size, the number of data slices k, and the total number of slices n. It is crucial to choose the slice size such that no fragmentation of network packets takes place because -FEC only guards against losses and reodering but fails if slices are +FEC only guards against losses and reordering but fails if slices are received partially. FEC decoding in paralash is performed through the fecdec filter which @@ -1674,6 +1686,11 @@ write the PCM data to a file on the file system rather than playing it through a sound device. It is supported on all platforms and is always compiled in. +*AO*. _Libao_ is a cross-platform audio library which supports a wide +variety of platforms including PulseAudio (gnome), ESD (Enlightened +Sound Daemon), AIX, Solaris and IRIX. The ao writer plays audio +through an output plugin of libao. + Examples ~~~~~~~~ @@ -2028,7 +2045,7 @@ detection of duplicate or reordered packets. Being a connectionless protocol, only minimal internal state about the connection is maintained, which means that there is no protection against packet loss or network congestion. Error checking and correction (if at all) -are performed in the application.' +are performed in the application. *DCCP*. The _Datagram Congestion Control Protocol_ combines the connection-oriented state maintenance known from TCP with the