Merge branch 'refs/heads/t/opus_cleanup'
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 12 Jun 2016 07:29:21 +0000 (09:29 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 12 Jun 2016 07:32:09 +0000 (09:32 +0200)
Was cooking for two months.

* refs/heads/t/opus_cleanup:
  opus: Make opus_common.[ch] independent of ogg.h.
  opus: Use uint16_t for preskip and gain.

1  2 
NEWS.md

diff --cc NEWS.md
index b95cbb4fc85f8e6d06333466c74004f49122a118,0000000000000000000000000000000000000000..d7b347e155065bf48e3d08edc2ae0246a9ebc3dd
mode 100644,000000..100644
--- /dev/null
+++ b/NEWS.md
@@@ -1,1286 -1,0 +1,1287 @@@
 +NEWS
 +====
 +
 +------------------------------------------
 +current master branch "cascading gradient"
 +------------------------------------------
 +
 +The highlight of this release is the new -m flag for para_afh which
 +lets it modify the meta tags of the given audio file(s). This feature
 +is supported for all audio formats. Many small cleanups and bug fixes
 +not mentioned here have accumulated and are also part of the release.
 +
 +- para_afh learned to modify meta tags of mp3 wma ogg spx
 +  opus flac aac files.
 +- afs commands propagate error codes to the client.
 +- The check command now also checks the attribute table for
 +  inconsistencies.
 +- New -v flag for the version command (print verbose version string)
 +- New option --priority for para_server and para_audiod.
 +- New mood methods: image_id and lyrics_id.
 +- The manual and this NEWS file have been converted to markdown.
 +- Cleanup of the wma decoder and bitstream code.
 +- Improved wide-character support and fixes related to signal handling.
 +- para_gui no longer reports 100% playing time at the stream start.
++- Opus cleanups.
 +
 +Download: [tarball](./releases/paraslash-git.tar.bz2)
 +
 +--------------------------------------
 +0.5.5 (2015-09-20) "magnetic momentum"
 +--------------------------------------
 +
 +Many new features and a lot of other improvements.
 +
 +- On Linux systems, local sockets are now created in the
 +  abstract name space by default. This allows to get rid of
 +  the socket specials in /var/paraslash.
 +- The --user-allow option of para_audiod now accepts also
 +  usernames rather than only user IDs.
 +- New autoconf macros to avoid duplication in configure.ac.
 +- Status items (as shown by para_gui) are updated correctly
 +  when the meta information of the current audio changes.
 +- para_server and para_audiod no longer refuse to start in
 +  the background if no log file is given. Instead, all log
 +  messages go to /dev/null in this case.
 +- Web page cleanup.
 +- New syntax for the -l and -s options of the ls command.
 +  These options should now be specified as -l=v rather than
 +  -lv, for example. The old syntax still works, but support
 +  will be dropped in v0.6.0.
 +
 +Downloads:
 +[tarball](./releases/paraslash-0.5.5.tar.bz2),
 +[signature](./releases/paraslash-0.5.5.tar.bz2.asc)
 +
 +------------------------------------------
 +0.5.4 (2015-01-23) "exponential alignment"
 +------------------------------------------
 +
 +Another cleanup and bugfix release.
 +
 +- New server command: tasks.
 +- Minor cleanups to daemon.c.
 +- New URLs for home page and git services.
 +- Improved error diagnostics for the mvblob commands.
 +- New sender subcommand: status.
 +- Improved help text for server and afs commands.
 +- audiod memory leak fixes.
 +- Miscellaneous improvements to the build system.
 +- oss_writer improvements.
 +- Improved handling of mp3 files with both id3v1 and id3v2 tags.
 +
 +Downloads:
 +[tarball](./releases/paraslash-0.5.4.tar.bz2),
 +[signature](./releases/paraslash-0.5.4.tar.bz2.asc)
 +
 +---------------------------------------------
 +0.5.3 (2014-08-01) "symbolic synchronization"
 +---------------------------------------------
 +
 +Not many new features, but lots of fixes and usability improvements.
 +
 +- para_gui has been converted to use the paraslash scheduler.
 +- Various alsa-related fixes, mostly for the raspberry pi.
 +- Many scheduler improvements and cleanups.
 +- The test suite has been extended to include sanity checks
 +  for the generated man pages.
 +- ao_writer fixes. This writer was in a quite bad shape. Many
 +  serious bugs have been fixed.
 +- new audiod command: version.
 +- Minor improvements to the bitstream API.
 +- The cpsi command now prints a meaningful error message if
 +  none of the given patterns matched any audio file.
 +
 +Downloads:
 +[tarball](./releases/paraslash-0.5.3.tar.bz2),
 +[signature](./releases/paraslash-0.5.3.tar.bz2.asc)
 +
 +----------------------------------------
 +0.5.2 (2014-04-11) "orthogonal interior"
 +----------------------------------------
 +
 +The new sync filter, the AES_CTR128 stream cipher and the overhauled
 +network code are the highlights of this release. It also includes a
 +fair number of smaller fixes and improvements not mentioned here.
 +
 +- The new sync filter synchronizes playback between multiple
 +  clients.
 +- Connections between para_server and para_client are now
 +  encrypted by means of AES rather than RC4 if both sides
 +  support it. RC4 is still available as a fallback. This
 +  feature is fully transparent, i.e. no command line options
 +  are necessary, and a client linked against openssl can
 +  speak with a server linked against libgcrypt and vice versa.
 +- Major cleanup of the networking subsystem.
 +- Improvements to para_fade: the new set mode, multi-channel
 +  initial volumes, better error logging.
 +- The man pages of para_audiod, para_filter, para_recv, and
 +  para_write contain the relevant options for receivers, filters,
 +  writers. This broke in 0.5.0.
 +- ogg/vorbis latency improvements.
 +- Improved user manual.
 +- Minor fixes to avoid clang warnings.
 +
 +Downloads:
 +[tarball](./releases/paraslash-0.5.2.tar.bz2),
 +[signature](./releases/paraslash-0.5.2.tar.bz2.asc)
 +
 +------------------------------------------
 +0.5.1 (2013-12-20) "temporary implication"
 +------------------------------------------
 +
 +Lots of fixes and improvements all over the place, and a major overhaul
 +of the build system.
 +
 +- Audiod improvements and fixes.
 +- Buffer tree robustness improvements.
 +- Cleanup of the mood subsystem.
 +- Fixes and cleanups for the flac decoder.
 +- Latency improvements for the ogg/opus decoder.
 +- Crypto support is now optional. On systems without
 +  openssl/gcrypt, the build succeeds but para_server,
 +  para_audiod, para_client won't be built.
 +- The build system now works for cross-compile setups.
 +- The dependency tree has been flattened, which speeds up
 +  builds and avoids to recreate the man pages on every change.
 +- The error code helper has been rewritten from perl to C,
 +  which further improves build time.
 +- Many small bugs in the build system have been identified
 +  and fixed.
 +
 +Downloads:
 +[tarball](./releases/paraslash-0.5.1.tar.bz2),
 +[signature](./releases/paraslash-0.5.1.tar.bz2.asc)
 +
 +----------------------------------------
 +0.5.0 (2013-08-23) "invertible validity"
 +----------------------------------------
 +
 +Some API-breaking changes, one serious bug fix, and a lot of bike-shedding.
 +
 +- The sideband compatibility code has been removed, hence
 +  sideband connections (introduced in 0.4.11) are now mandatory.
 +- Addblob commands can produce output.
 +- The stat command no longer sends garbage when para_server was
 +  compiled against libgcrypt.
 +- Dependencies for gengetopt files are computed automatically.
 +  This eliminates a constant source of build bugs.
 +- The setatt command now accepts file name patterns rather than only
 +  path names.
 +- overview.pdf is now based on dia, a simple diagram creation program.
 +  The new version is much more detailed and contains descriptions of
 +  the various programs of the paraslash package.
 +- The separator of all multi-word options has been changed from
 +  underscore to dash. For example --log_color becomes --log-color.
 +- Overhauled web pages and the new logo.
 +
 +Downloads:
 +[tarball](./releases/paraslash-0.5.0.tar.bz2),
 +[signature](./releases/paraslash-0.5.0.tar.bz2.asc)
 +
 +--------------------------------------
 +0.4.13 (2013-07-29) "spectral gravity"
 +--------------------------------------
 +
 +One more 0.4.x release before the API-breaking changes for 0.5.0 go
 +in. The main features of this release are the ogg/opus audio format,
 +and UTF-8 support, but it includes also tons of other improvements
 +and fixes all over the place.
 +
 +- New audio format: ogg/opus.
 +- UTF8 support for para_gui and the mp3 audio format handler.
 +- Scheduler improvements and fixes.
 +- The obsolete gettimeofday() function has been replaced
 +  by clock_gettime() on systems which support it.
 +- Speed and usability improvements for para_gui.
 +- para_client now restores the fd flags of stdin and stdout
 +  on shutdown.
 +- Improved manual pages.
 +- Consistent version strings for all executables.
 +- Reduced dependencies on generated files result in fewer
 +  recompilations on changes.
 +- Performance improvements for the compress filter.
 +- Improved downloads web page.
 +
 +-----------------------------------------
 +0.4.12 (2012-12-20) "volatile relativity"
 +-----------------------------------------
 +The new command line player, the resample filter, ALSA support for
 +para_fade, and the improved build system are the highlights of this
 +release which probably marks the end of the 0.4.x series.
 +
 +- The afh receiver and the para_play executable.
 +- The resample filter: A sample rate converter based on
 +  libsamplerate.
 +- The "versions" directory has been removed from the master
 +  branch. The tarballs of the old releases are now available
 +  in the new "releases" branch.
 +- Overhaul of the build system: All generated files are now
 +  written to the "build" directory.
 +- The modular mixer API and the alsa mixer.
 +- Minor fixes for the osx writer.
 +
 +--------------------------------------
 +0.4.11 (2012-07-20) "mutual diversity"
 +--------------------------------------
 +
 +The major feature in this release is the new sideband API for
 +client-server communication. This API will be used exclusively starting
 +with 0.5.0, which breaks backward compatibility but allows to get rid
 +of quite some compatibility code. Other noteworthy changes include
 +decoder latency improvements and a long-standing bug fix for the
 +ALSA writer.
 +
 +- Sideband connections: If both para_server and para_client
 +  support this feature, data is sent as a multiplexed stream.
 +- The --no_default_filters option of para_filter has been
 +  removed.
 +- Several fixes and latency improvements to various decoders.
 +- The ALSA writer now limits the prebuffer time to 500ms.
 +- Documentation improvements.
 +- Overhaul of the command_util.sh script.
 +- Fixes for some minor problems found by the clang analyzer.
 +- Compiles (almost) without warnings on gcc-3.
 +- Robustness improvements of the buffer tree code.
 +
 +------------------------------------------
 +0.4.10 (2012-03-30) "heterogeneous vacuum"
 +------------------------------------------
 +
 +Nothing earth-shaking in this release, but quite a few usability
 +improvements and the usual mix of cleanups and fixes.
 +
 +- The --no_default_filters option of para_filter has been
 +  deprecated. It still works but has no effect and will be
 +  removed in the next version.
 +- para_gui now prints also the stderr output of the executing
 +  command in the bottom window.
 +- Cleanup and consolidation of the various wrappers for
 +  write(), writev(), send() and friends.
 +- The obscure error messages on mmap() failures have been
 +  replaced by meaningful messages. This affects mainly
 +  para_afh.
 +- para_audioc: Cleanups and memory leak fixes.
 +- Test 0004-server no longer fails if para_server is not
 +  being built.
 +- New configure options: --with-id3tag-{headers,libs}.
 +
 +-------------------------------------
 +0.4.9 (2011-12-06) "hybrid causality"
 +-------------------------------------
 +
 +Support for another audio format, interactive mode for para_client
 +and para_audiod and many small improvements/fixes all over the place.
 +
 +- Support for flac, the free lossless audio codec.
 +- Fix for an endless loop in the mp3 decoder for certain
 +  (corrupt) mp3 files.
 +- When executed without specifying a command, para_client
 +  and para_audioc start an interactive shell (requires
 +  libreadline being installed). The interactive mode offers
 +  full tab completion and command line history.
 +- autogen.sh now detects a distcc setup and adjusts the
 +  parameter for the -j option of make accordingly.
 +- Shared memory areas are no longer restricted to 64K. We now
 +  detect the maximal size of a shared memory area at runtime.
 +- cleanup of the internal uptime API.
 +- para_server prefaults the mmapped audio file to avoid
 +  delays on slow media.
 +- A new test for the test-suite that exercises the
 +  communication between para_server and para_audiod.
 +- The alsa writer eats up less CPU cycles when configured to
 +  use the DMIX plugin.
 +- Simplified and unified receiver code.
 +- Makefile cleanups.
 +- Commands which print a list of matching audio files now
 +  emit a meaningful error message if no audio file matched the
 +  given pattern(s).
 +
 +--------------------------------------
 +0.4.8 (2011-08-19) "nested assignment"
 +--------------------------------------
 +
 +Gcrypt support, the overhauled osx writer and regex format specifiers
 +are the highlights of this release.
 +
 +- support for libgcrypt as a drop-in replacement for openssl.
 +  Run configure --enable-cryptolib=gcrypt to link against
 +  libgcrypt. The two crypto implementations are compatible to
 +  each other, i.e. a para_client executable linked against
 +  gcrypt can connect to para_server linked against libssl
 +  and vice versa.
 +- Rewrite of the osx writer (output plugin for Mac OS).
 +- audiod: The format specifier for receivers, filters and
 +  writers is now treated as a regular expression. This allows
 +  to replace 5 lines in the config file (one for each audio
 +  format) by one single line. See the manual for details.
 +- The \*.cmdline.[ch] files are no longer contained in the released
 +  tarballs. This reduces the size of the tarballs but requires
 +  gengetopt to build the tarball.
 +- Compiles cleanly also with llvm/clang.
 +- Corrupt mp3 files are handled more gracefully.
 +- The alsa writer uses poll fds instead of computing timeouts.
 +- Cleanup of the generic writer API.
 +- sched: Optimized zero timeouts.
 +- vss timeout cleanups.
 +- oggdec fixes and improvements.
 +
 +--------------------------------------
 +0.4.7 (2011-06-01) "infinite rollback"
 +--------------------------------------
 +
 +The new ao writer, support for ssh RSA keys and a couple of other
 +enhancements.
 +
 +- Support for ESD, Pulseaudio, AIX, Solaris, IRIX and other
 +  platforms through the libao audio library.
 +- Support for RSA keys generated with ssh-keygen.
 +- configure: improved options for ogg/vorbis/speex.
 +- The git version reported by --version always matches HEAD.
 +- The autogen script detects the number of processors and
 +  runs a parallel make if possible.
 +- Major cleanup of the crypto API.
 +- Documentation updates.
 +
 +------------------------------------------
 +0.4.6 (2011-03-31) "deterministic entropy"
 +------------------------------------------
 +
 +Lots of ogg/vorbis improvements, the new test suite, enhancements
 +for para_gui and a fair amount of other bug fixes.
 +
 +- For DCCP/OGG streams the audio file header is only sent once
 +  at the beginning of the stream rather than periodically
 +  every five seconds. This reduces network traffic and the
 +  FEC group size.
 +- The vorbis comment header is replaced by an empty dummy header
 +  before the header is sent over the network. This also results in
 +  less network traffic and smaller FEC groups.
 +- The new "test" make target allows to perform some sanity checks prior
 +  to installing the package.
 +- ogg timing fixes and performance improvements
 +- Scheduler improvements
 +- Proper exit codes for para_write
 +- para_gui: New option --theme to select a startup theme. Several
 +  other improvements and fixes.
 +- aacdec error message cleanups
 +- simplified color error handling
 +
 +--------------------------------------------
 +0.4.5 (2010-12-17) "symmetric randomization"
 +--------------------------------------------
 +
 +Bug fixes, internal cleanups and variable-sized FEC slices.
 +
 +- Contains a fix for an invalid-free-bug in the ogg audio format
 +  handler code.
 +- Switching off the DCCP sender works again.
 +- para_audiod handles crashes of para_server more robustly.
 +- Internal scheduler and writer cleanups.
 +- Reduced latency due to variable-sized FEC slices.
 +- Improved documentation and error diagnostics.
 +- The build of para_server is now optional, allowing the build
 +  to succeed in case libosl is not installed.
 +
 +------------------------------------------
 +0.4.4 (2010-08-06) "persistent regularity"
 +------------------------------------------
 +
 +Support for yet another audio format, para_write improvements and
 +bug fixes.
 +
 +- Support for the speex codec.
 +- Support for sample formats other than 16 bit little endian.
 +- error2.h is now created by a perl script which speeds up configure
 +  considerably.
 +- Fix a bug in the aac decoder which could lead to segfaults in
 +  para_filter/para_audiod.
 +- Fixes for autoconf-2.66.
 +
 +----------------------------------------
 +0.4.3 (2010-07-05) "imaginary radiation"
 +----------------------------------------
 +
 +Many improvements for the DCCP and the UDP transport, the new user
 +manual and the usual mix of bug fixes and internal improvements.
 +
 +- FEC support for the DCCP sender (Gerrit Renker). The new
 +  --dccp_max_slice_size, --dccp_data_slices_per_group and
 +  --dccp_slices_per_group options can be used to set the FEC
 +  parameters for the DCCP transport.
 +- DNS lookups for UDP targets (Gerrit Renker).
 +- The new user manual replaces the README, README.afs, REQUIREMENTS
 +  and INSTALL documents.
 +- Fix an end-of-file detection bug in the oggdec filter.
 +- The new nonblock API.
 +- Both options of the oggdec filter have been removed.
 +- New debug mode for the internal scheduler.
 +
 +------------------------------------------
 +0.4.2 (2010-04-23) "associative expansion"
 +------------------------------------------
 +
 +It's been some time since the last release, but finally here is
 +paraslash-0.4.2. The bulk of the changes comes from the new buffer
 +tree API, but there are changes all over the tree. Mainly performance
 +and usability improvements, but also quite some bug fixes.
 +
 +- The new buffer tree API.
 +- DCCP: Support for CCID negotiation (Gerrit Renker).
 +- UDP robustness fixes.
 +- The --bufsize option for mp3dec is gone as it no longer makes sense
 +  for the new buffer tree API.
 +- Fix audible buffer underruns for wma streams.
 +- The alsa writer no longer prints meaningless underrun durations.
 +- audiod: Defaults work also for udp streams. If no filter is
 +  given for an audio format that is received via upd, fecdec is
 +  automatically added as the first filter (along with the decoder).
 +
 +---------------------------------------
 +0.4.1 (2009-12-22) "concurrent horizon"
 +---------------------------------------
 +
 +Support for another audio format, minor feature enhancements and lots of bug
 +fixes. All fixes that have been accumulated in the maint branch (in particular
 +those mentionened in the 0.3.6 release notes) appear in this release as well.
 +
 +- wma support.
 +- new afh option: --human to activate human-readable output.
 +- new server/audiod option: --log-timing to print timing information.
 +- build system improvements.
 +- source code documentation updates.
 +
 +-------------------------------------
 +0.3.6 (2009-12-07) "cubic continuity"
 +-------------------------------------
 +
 +Quite a few bugs have been found and fixed since 0.3.5, so here's
 +another 0.3.x release. No new features.
 +
 +- Always check return value of malloc().
 +- ogg vorbis/FEC: Do not write garbage after the audio file header.
 +- exit if root privileges could not be dropped.
 +- FEC: Fix computation of extra slices.
 +- oss: Fix check for empty input buffer.
 +- Avoid buffer underruns due to filter chain output buffer constraints.
 +- server: Fix assignment of afs_pid.
 +- Don't panic if the afs database contains unknown audio formats.
 +- http/dccp: Do not send the audio file header twice.
 +- FEC: Timing improvements.
 +
 +----------------------------------------------
 +0.4.0 (2009-11-10) "simultaneous independence"
 +----------------------------------------------
 +
 +Two significant changes which require the new version number: The
 +improved authentication dialog and the fact that the database code
 +has been moved to a library, libosl. To use the new version, you have
 +to generate new RSA keys, see INSTALL for details. A shell script is
 +provided for conversion of the 0.3 database to the new 0.4 format.
 +
 +- stronger crypto for client authentication
 +- the database code has been moved to a library
 +- improved status item handling
 +- cleanup of the build system
 +- The "-V" option now also prints the git version
 +- the new parser-friendly listing mode for the ls and stat commands
 +- mandatory rc4 encryption
 +- major audio format handler cleanups
 +- (id3,...) tags are no longer stored as a combined string in the database
 +- new mood methods: artist_matches, title_matches, comment_matches,
 +  album_matches, year_maches, year.
 +
 +--------------------------------------------
 +0.3.5 (2009-09-21) "symplectic separability"
 +--------------------------------------------
 +
 +Full client support for \*BSD Unixes, complete re-write of the ogg
 +vorbis audio format handler, various improvements all over the place
 +and the usual mix of bugfixes. This release marks the end of the 0.3
 +series if no serious problems show up.
 +
 +- the new oss writer (supported on \*BSD and Linux)
 +- rewrite of the ogg vorbis audio format handler. It's
 +  recommended to replace the chunk tables of existing ogg
 +  vorbis files in the afs database by re-adding these files
 +  with "add -f".
 +- support for netmask subsets (Gerrit Renker)
 +- the new prebuffer filter
 +- improved signal handling
 +- variable fec output buffer size
 +- improved FEC timing fixes audible buffer underruns in UDP mode
 +- --log_color actually works
 +- new ls option: -d (print dates as seconds after the epoch)
 +- update to gengetopt 2.22.2
 +- support for RSA keys of size > 512 bits
 +- new option "mixer_channel" for para_fade
 +
 +-----------------------------------------
 +0.3.4 (2009-05-07) "elliptic inheritance"
 +-----------------------------------------
 +
 +The new udp sender, forward error correction, colored logs and various
 +other improvements. As the udp sender does not depend on any special
 +libraries, it is built unconditionally.
 +
 +- The udp sender replaces the ortp sender. The new code uses forward
 +  error correction to protect against packet losses. Many thanks to
 +  Gerrit Renker for providing ipv6 support.
 +- The default port for udp streaming now defaults to 8000, like
 +  for the http and the dccp senders/receivers.
 +- Loglevels are now specified as symbolic names, e.g.
 +  "--loglevel info".
 +- improved ipv4 and ipv6 URI parser (Gerrit Renker).
 +- para_server/para_audiod: Color support for log messages.
 +- new options for mp3dec: --ignore-crc, --bufsize
 +- new audiod option: --config-file.
 +- gengetopt cleanups.
 +- Improved help/man pages: The documentation of para_audiod,
 +  para_recv, para_filter and para_write now also contains
 +  all options of the available receivers/filters/writers. The
 +  man page of para_fade contains a description of the different
 +  modes of operation.
 +- More source code documentation.
 +- vss timing fixes.
 +
 +--------------------------------------------
 +0.3.3 (2008-12-01) "axiomatic perspectivity"
 +--------------------------------------------
 +
 +Internal code cleanups, bug fixes, improved tag handling and the new
 +amplification filter.
 +
 +- para_server uses the generic scheduling code.
 +- overhaul of the virtual streaming system.
 +- mp3: id3 version 2 support via libid3tag (optional)
 +- ogg: vorbis comment support.
 +- aac meta info support.
 +- mp3 audio format handler cleanups.
 +- new filter: "amp" to amplify the amplitude of the audio stream
 +- new status item/database entry: amplification. It is
 +  used by the amp filter to pre-amplify the audio stream.
 +- fix a close-without-open bug in para_write.
 +- fix a bug in com_init() which was introduced in 0.3.2.
 +- better error diagnostics for para_client.
 +
 +-----------------------------------------
 +0.3.2 (2008-04-11) "probabilistic parity"
 +-----------------------------------------
 +
 +The new para_afh executable, scheduling and documentation improvements.
 +
 +- new ls option: -lc (list chunk table)
 +- new executable: para_afh, the stand-alone audio file handler tool
 +- afs commands can send output more than SHMMAX (32MB on Linux). This
 +  also reduces the memory usage of commands that produce large amounts
 +  of output.
 +- major scheduler and audiod cleanups.
 +- more detailed and much nicer man pages.
 +
 +---------------------------------------
 +0.3.1 (2008-02-23) "liquid interaction"
 +---------------------------------------
 +
 +A mix of cleanups, bug fixes, improvements, and some new features. No
 +significant changes to the new database (osl) code, which is generally
 +a good sign.
 +
 +- Share some similar/duplicate code between the http and the
 +  dccp sender.
 +- Generic access control lists for paraslash senders.
 +- dccp sender: Access control lists, connection limiting and support
 +  for the allow,deny,on,off,help sender commands.
 +- The default dccp port changed from 5001 to 8000 (suggested by
 +  Gerrit Renker).
 +- para_server starts even if not all public keys could be loaded.
 +- Audiod performance improvements.
 +- fix a bug in the "off" command of the http sender.
 +- fix some fd and memory leaks.
 +- Update to gengetopt-2.22.
 +
 +-------------------------------------
 +0.3.0 (2008-01-12) "solar saturation"
 +-------------------------------------
 +
 +paraslash.0.3.0 -- 'WWDBND --what would databases never do?'.
 +
 +
 +Usually one might expect lots of new features AND a big increase in size
 +for a major release like this.
 +
 +However, paraslash-0.3.0.tar.bz2 is the smallest paraslash tarball
 +ever. The decrease in size is mostly due to the removal of some
 +graphical tools (which were only quick hacks anyway). But also the
 +fact that the mysql code is gone cuts down the size a bit.
 +
 +Being independent of mysql comes at a cost: The fact that paraslash
 +now contains its own database (the object storage layer, osl) increases
 +the (stripped) binary size of para_server by ~50K on i386.
 +
 +- no more restrictions on unique basenames.
 +- independent of mysql: The new self-contained object
 +  storage layer (osl) replaces the mysql database.
 +- New executable para_fsck: Check integrity of osl tables.
 +- Lyrics support.
 +- Reliable audio file move/rename detection.
 +- More portable than ever: Tested on Linux (x86_32, x86_64, sparc64),
 +  MacOS (ppc32, x86_32), FreeBSD (x86_32), NetBSD (x86_32) and
 +  Solaris (sparc64).
 +- the new osl-based audio file selector (afs) replaces the random,
 +  the playlist and the mysql selector of paraslash-0.2.x.
 +- IPv6 support (thanks to Gerrit Renker).
 +- paraslash-0.2.x streams are now called "moods". Writing
 +  0.3.x-mood definitions should be both easier and more
 +  powerful than writing 0.2.x-stream definitions.
 +- para_krell, para_slider, para_para_sdl_gui, para_dbadm have
 +  been removed. The world is a better place without them. However,
 +  para_gui is still there.
 +- afs tracks audio file selection also in playlist mode.
 +- few easy-to-use afs commands replace the many not-so-easy-to-use
 +  mysql commands (and are available also in playlist mode).
 +- Improved error subsystem.
 +- The earth-shaking new logo.
 +
 +-----------------------------------------
 +0.2.17 (2007-11-20) "isotropic threshold"
 +-----------------------------------------
 +
 +Mainly bugfixes and cleanups in this version which marks the end of
 +the 0.2.x series if no serious bugs show up after the release.
 +
 +- mysql_selector: fix a locking bug.
 +- universal chunk queueing.
 +- dccp sender uses chunk queueing if write() returns EAGAIN (thanks
 +  to Gerrit Renker).
 +- be more carful wrt. signed vs. unsigned argument passing.
 +- cleanup error.h and fix some references to invalid error
 +  codes.
 +- update to gengetopt-2.21.
 +- update to ortp-0.13.1.
 +- autoconf: extend checks for headers, library functions and
 +  compiler characteristics.
 +- Fix streaming of large mp3 files.
 +- Fix an off-by-one bug in playlist handling.
 +
 +--------------------------------------
 +0.2.16 (2007-04-05) "neural discharge"
 +--------------------------------------
 +
 +The main change in this release is the major audio format handler
 +cleanup which removes some similar/duplicate code and makes it easier
 +to implement plugins for other audio formats. Of course, the usual mix
 +of other improvements/changes/bugfixes also made it into the release.
 +
 +- simplified audio format handlers (most of the handling functions
 +  were moved one layer up to the virtual streaming system).
 +- para_server uses mmap to read audio files
 +- repositioning of mp3 streams is much faster, in particular for
 +  jumping near the end of large mp3 files.
 +- permission flags DB_READ,DB_WRITE have been renamed to AFS_READ
 +  and AFS_WRITE.
 +- fix a bug in para_filter that caused decoding of aac files
 +  to start only after a few seconds.
 +- fix osx_writer hangs
 +- simplified dccp code (thanks to Gerrit Renker)
 +- the compress filter works also on big endian systems (ppc)
 +
 +-----------------------------------------
 +0.2.15 (2007-02-16) "inductive resonance"
 +-----------------------------------------
 +
 +Minor improvements, more documentation and a bunch of bug fixes.
 +
 +- para_server: The server.users file is only read once on server
 +  startup rather than for each connection
 +- mp3dec: Fix decoding of corrupt mp3 files
 +- afs (audio file sender) is now called vss (virtual streaming
 +  system). Consequently, the permission flags specified in
 +  ~/.paraslash/server.users have also changed: AFS_READ and AFS_WRITE
 +  become VSS_READ and VSS_WRITE respectively.
 +- para_audiod/para_filter: Fix a bug that caused the last chunk
 +  of audio data not being written under certain circumstances
 +- audiod: compute the difference of server time and local time
 +  correctly
 +- para_server/para_audiod: Fix some memory leaks
 +- documentation improvements
 +- configure.ac: fix checks for para_krell
 +- new man pages
 +
 +-------------------------------------------
 +0.2.14 (2006-10-15) "transient singularity"
 +-------------------------------------------
 +
 +The only major enhancement of this version is the osx writer which completes
 +the Mac OS Port and was originally planned already for 0.2.13 but had to wait
 +until now for reasons beyond the scope of this changelog entry.
 +
 +- new output plugin for Mac Os: the osx writer
 +- rename configure command line options from --enable-xxx-headers to
 +  --with-xxx-headers and  --enable-xxx-libs to --with-xxx-libs
 +- configure: new command line options: --with-mad-headers,
 +  --with-mad-libs, --with-oggvorbis-headers, and --with-oggvorbis-libs
 +- some robustness fixes
 +- dymamic audio format recognition for audiod
 +- para_server: new command line option: --autoplay_delay
 +- para_audiod: new command line option: --clock_diff_count
 +
 +---------------------------------------
 +0.2.13 (2006-07-14) "sonic convolution"
 +---------------------------------------
 +
 +A bunch of new features and core changes.
 +
 +- the new paraslash scheduler, short and sweet.
 +- Support for m4a/mp4 files via the new aac audio format
 +  handler/filter (requires libfaad).
 +- each writer has its own command line parser, just like
 +  para_recv and para_filter.
 +- para_client and para_audioc use the error subsystem
 +- writers are integrated in para_audiod (currently linux-only)
 +- para_client is integrated in para_audiod
 +- random/playlist selector: improved info strings
 +- new audiod commands: tasks, kill
 +- update to libortp-0.10.1
 +- para_fade: wake time defaults to 8 hours from now
 +- update to autoconf-2.60
 +
 +------------------------------------------
 +0.2.12 (2006-05-12) "oriented abstraction"
 +------------------------------------------
 +
 +Many user-visible changes in this release and lots of new
 +features:
 +
 +- the new optional dccp sender/receiver. It uses the datagram
 +  congestion control protocol. You'll need a fairly new kernel
 +  for this.
 +- paraslash works on Mac OS X (thanks to Gerd Becker)
 +- para_play renamed to para_write
 +- modular output plugin design (writers) for para_write
 +- new file_writer output plugin for para_write
 +- compress filter speed improvements
 +- update to libortp-0.9.1
 +- update to gengetopt-2.17rc
 +- para_client no longer depends on libreadline (as the
 +  code for the interactive mode was removed).
 +- gcc-2-95 is no longer a supported compiler. It may still
 +  work, but it gets no more testing.
 +- the tarball no longer contains the screenshot images which
 +  reduces its size quite a bit.
 +- configure: new command line options: --enable-mysql-headers
 +  and --enable-mysql-libs
 +
 +------------------------------------
 +0.2.11 (2006-03-11) "atomic duality"
 +------------------------------------
 +
 +Here it is, the first paraslash release developed with git. There
 +are fairly many user-visible changes in this release. As two out of
 +the three "database tools" of paraslash don't use a database at all,
 +they are now called "audio file selectors" instead.
 +
 +- the cdt command (change database tool) becomes chs (change
 +  selector)
 +- no more colon separators: The syntax of some options of
 +  para_audiod and para_filter have changed. Use --help for
 +  more info (and some examples).
 +- update to gengetopt-2.16 (thanks to Lorenzo Bettini)
 +- switch from cvs to git (should've done that earlier)
 +- the new ipc subsystem
 +- new audio file selector: playlist
 +- para_server: the dopey selector is now called "random",
 +  and is the default selector. Use the --selector option to
 +  choose another selector at startup, or the chs command to
 +  change the selector at runtime.
 +- X86_64 fixes (thanks to Steffen Klassert)
 +- para_play fixes
 +
 +--------------------------------------
 +0.2.10 (2006-02-17) "cyclic attractor"
 +--------------------------------------
 +
 +Huge documentation update, a scrollable window for para_gui, ortp
 +improvements, and of course many small fixes not mentioned here.
 +The diffstat below is rather misleading as most insertions are due
 +to the new source documentation.
 +
 +- autoconf cleanup
 +- para_server also uses the new error subsystem
 +- lots of new documentation (UTSL)
 +- gui improvements:
 +      - keysyms for cursor keys and for next/previous page keys
 +      - scrollable output window
 +      - new internal commands: scroll up/down, page up/down
 +      - fix color of command output.
 +- ortp: the --chunk_time and --header flags are no longer needed
 +for para_recv/para_audiod as this information is now encoded in
 +each rtp packet sent by para_server.
 +
 +-------------------------------------------
 +0.2.9 (2006-01-24) "progressive turbulence"
 +-------------------------------------------
 +
 +Internal audiod receivers/filters, the new error subsystem and
 +a lot of small improvements.
 +
 +- para_recv and para_filter are integrated into the para_audiod
 +  binary, i.e. audiod no longer spawns a new process for
 +  each receiver/filter. As para_recv and para_filter might be
 +  useful as standalone programs, they still get built (linked
 +  against the same object files that are also used for audiod).
 +- further ortp timing improvements should reduce the CPU usage
 +  of the ortp receiver.
 +- improved audio grabbing. The 'grab' command of para_audiod
 +  has its own set of command line options. Read the output of
 +  "para_audioc help grab" for more info.
 +- oggdec: configurable input prebuffer size.
 +- the new error subsystem gives better error diagnostics
 +  and reduces code size.
 +
 +-----------------------------------------
 +0.2.8 (2006-01-02) "dynamic accumulation"
 +-----------------------------------------
 +
 +The new modular filter design and the para_play-hangs bugfix.
 +
 +- new executable: para_filter. It combines para_mp3dec,
 +  para_oggdec and para_compress. It also adds a further filter
 +  type, wav, that just inserts a wave header at the desired point
 +  of the filter chain. All 'piping' is done in-memory (i.e. no
 +  read/write operations are used).
 +- para_play: fix a stupid bug that caused it to hang under
 +  certain circumstances.
 +
 +-------------------------------------------
 +0.2.7 (2006-12-27) "transparent invariance"
 +-------------------------------------------
 +
 +Not many user-visible changes but a fair amount of internal improvements.
 +
 +- The http sender buffers data if it can not be sent
 +  out immediately (because the socket is not writable). This
 +  should prevent para_server from shutting down the connection
 +  too early on a loaded network.
 +- para_play also prebuffers data if it is told to start at a
 +  future time by the --start_time option.
 +- The return of para_recv: It combines para_ortp_recv and
 +  para_http_recv. Use the --receiver option to switch between
 +  the two. para_recv builds without libortp, but contains
 +  only the http receiver in this case.
 +- update to ortp 0.8.1. As this ortp release contains incompatible
 +  changes, para_recv-0.2.7 won't link against older ortp libs.
 +- improved ortp timings.
 +- use of gcc-extensions that #define away for non-gcc and
 +  gcc < 3.0.
 +
 +-------------------------------------------
 +0.2.6 (2005-10-29) "recursive compensation"
 +-------------------------------------------
 +
 +Transparent session encryption (uses openssl's Alleged RC4 cipher),
 +the internal find command and several other improvements and cleanups.
 +
 +- Encrypt the session if encryption is requested by the client
 +  (default for para_client 0.2.6). This is backwards
 +  compatible, so older clients can still connect to para_server
 +  0.2.6. Use the new client option --plain to request an
 +  uncrypted session (off by default, must be set to on in
 +  order to connect to para_server 0.2.x with 0 <= x <= 5).
 +- para_server uses an internal function to locate audio files
 +  rather than calling find(1). The server option
 +  --mysql_audio_file_dir replaces --mysql_find_cmd.
 +- documentation update
 +- man pages
 +- header file cleanup
 +- para_client code cleanup
 +- para_gui: faster display of output of display commands
 +
 +------------------------------------------
 +0.2.5 (2005-10-13) "aggressive resolution"
 +------------------------------------------
 +
 +This release adds internal senders, i.e. no more external programs are
 +spawned for sending out the audio data. There are two different senders
 +available: The http sender and the ortp sender (former para_send which
 +is no longer needed).
 +
 +The new sender code has a plugin-like design so it can be easily
 +extended should there be be any future need for supporting another
 +network streaming protocol. All senders are completely independent of
 +each other. In particular, the http and the ortp sender can operate
 +in parallel.
 +
 +- new server command: sender to control senders at runtime.
 +  Read the output of "para_server -h" and "para_client help
 +  sender" for more information.
 +- para_recv renamed to para_ortp_recv
 +- new executable: para_http_recv, a simple command line
 +  http receiver.
 +- major afs/mp3/ogg code simplifications due to internal
 +  senders.
 +- ogg timing improvements
 +- fix several minor memory leaks (found by valgrind)
 +- empty stream definitions work again
 +- com_ne(): ignore errors on remove
 +- audiod: fix segfault on server restart
 +
 +---------------------------------------
 +0.2.4 (2005-09-21) "toxic anticipation"
 +---------------------------------------
 +
 +Several small improvements, fixes and the new grab command.
 +
 +- audiod:
 +      - new command: "grab" to grab the output of the stream reader
 +        or any filters. Read the output of "para_audioc help grab"
 +        for more information.
 +      - fix memory leak
 +      - code cleanup
 +- audioc: new command line option: --bufsize to specify a
 +  buffer size different from the default size 8192.
 +- improved error diagnostics for para_play.
 +- new configure option: --enable-ssldir so search for openssl in
 +  non-standard places
 +- sdl_gui: Make it look nice again for 1024x768
 +- server: report total size of memory allocated with sbrk by malloc,
 +  new command line option: --announce_time
 +
 +-----------------------------------------
 +0.2.3 (2005-09-01) "hydrophilic movement"
 +-----------------------------------------
 +
 +Two new executables and major feature enhancements.
 +
 +- audiod filters: It is now possible to specify arbitrary many
 +  (including none) filters for each supported audio
 +  format. This can be used e.g. for normalizing volume,
 +  transforming or grabbing the audio stream, or for using
 +  visualizers.        Read the output of "para_audiod -h" for the
 +  syntax of the new --filter_cmd option.
 +- new executable: para_play, a tiny alsa player. It
 +  can play wave files or raw pcm (16 bit little endian)
 +  from stdin.
 +- new executable: para_compress, a dynamic range compressor
 +  intended to keep audio output at a consistent volume. Derived
 +  from [AudioCompress](http://trikuare.cx/code/AudioCompress.html).
 +- audiod: New option: --stream_delay. This can be used in
 +  a local network to syncronize the audio output of all
 +  clients that play the same stream.
 +
 +------------------------------------------
 +0.2.2 (2005-08-19) "tangential excitation"
 +------------------------------------------
 +
 +Mostly internal changes in this release, but also some new commands
 +for the mysql database tool.
 +
 +- cleanup exec.c, fix para_exec bug
 +- compile time loglevel (log messages below the given level
 +  won't be compiled in, which reduces the size of the
 +  resulting binaries)
 +- new log macros that shorten the size of the source code.
 +- workaround a gcc-4.1 bug (?) that caused send_cred_buffer()
 +  to send only zeros. With this workaround, para_audioc works
 +  again.
 +- avoid gcc-4 warning: conflicting types for built-in function 'clog'
 +- new mysql commands: "rm" (remove entry), "mv" (rename entry) "ne"
 +  (new entry), "snp" (set numplayed). Read the manual for more
 +  information.
 +
 +---------------------------------------
 +0.2.1 (2005-08-15) "surreal experience"
 +---------------------------------------
 +
 +Here comes paraslash-0.2.1. It contains a couple of new features and,
 +surprise, only minor bug fixes.
 +
 +- kill noisy mp3 debug message
 +- cleanup of the build system
 +- para_server and para_client directly use the crypto routines
 +  of the openssl library rather than invoking the openssl command
 +  line utitlity
 +- server/audiod: new option --user to switch to the given user
 +  when invoked as root. Read the output of "para_server -h" for
 +  more information.
 +- gui/sdl_gui: new option --stat_cmd to be used to retrieve the
 +  status. Default: "para_audioc stat"
 +- sdl_gui: new option --pic_cmd to be used to download the picture.
 +  Default: "para_client pic"
 +- audiod: 5 slots ought to be enough for everybody
 +- audiod: new status item: Uptime, kill hup command
 +
 +------------------------------------------
 +0.2.0 (2005-08-06) "distributed diffusion"
 +------------------------------------------
 +
 +After several month of increased development activity, paraslash-0.2.0
 +has arrived. It contains many new features and is much more
 +self-contained than the old 0.1.x series. Enjoy!
 +
 +- para_server: fix hang on song change and crash on sighup.
 +  Speed up mysql queries. The DIR_LIKE macro is gone.
 +- new executables: para_audiod, the local audio daemon that
 +  starts playback (uses SCM_CREDENTIALS socket magic) and
 +  para_audioc, the corresponding client.
 +- new executables: para_mp3dec/para_oggdec, two really teensy
 +  decoders. para_mp3dec is based on libmad, para_oggdec requires
 +  libvorbisfile.
 +- ovsend/ovrecv are capable of streaming ogg as well as mp3, so
 +  they are now called para_send and para_recv respectively.
 +- documentation updates
 +- para_gui is themable. For now there is the default theme that
 +  looks as before and the simple theme: blue and easy.
 +- gui: audio streaming is now handled by audiod. Time display shows
 +  playback time rather than streaming time
 +- slider: update to libzmw-0.2.0
 +- para_krell: fix crash on server shutdown
 +- switch from gzip to bzip2
 +
 +----------------------------------------
 +0.1.7 (2005-04-18) "melting penetration"
 +----------------------------------------
 +
 +The main change in this release is clearly the oggvorbis rewrite,
 +but there are also lots of smaller changes. If you intend to use both
 +the mp3 and the ogg plugin, it is recommended to use software mixing,
 +e.g. the dmix plugin which is provided by ALSA.
 +
 +- new executables: para_ovsend and para_ovrecv for sending/receiving
 +  oggvorbis files via rtp. Requires the open rtp library. Get it at
 +  http://www.linphone.org/ortp/
 +- rewrite of the ogg_vorbis core code
 +- configure detects libzmw and, if detected, includes
 +  para_slider to the list of binaries to be built by make
 +- server stream writers read from their associated fifo rather
 +  than from stdin
 +- slider: two new sliders, lastplayed and numplayed
 +- fix nasty double free bug which caused random segfaults in case of
 +  mp3 files with invalid header information
 +- gui: new command line option: --stream_timeout=seconds  to
 +  deactivate a slot if it is idle for that many seconds (default=`5')
 +- diffstats
 +
 +---------------------------------------
 +0.1.6 (2005-03-05) "asymptotic balance"
 +---------------------------------------
 +
 +Only little user-visible changes in this release. Mainly bugfixes and
 +core code cleanup. This is probably the most stable version ever if you
 +stick to mp3...
 +
 +- fix several memory leaks
 +- rename default name of mysql database from "music" to "paraslash".
 +  Use para_server's  --mysql_database option if you do not want to
 +  rename your old database.
 +- rework ogg vorbis code
 +- make update command work on mysql servers with LOCAL_INFILE
 +  disabled
 +- gui: improved stream I/O (slots)
 +- simplified audio format API
 +- para_pob_ogg is gone
 +
 +------------------------------------
 +0.1.5 (2004-12-31) "opaque eternity"
 +------------------------------------
 +
 +Let's slide gently into the new year.
 +
 +- new: para_slider (not built automatically, type "make
 +  para_slider" to build). A toy for those who always felt that
 +  creating stream definitions is difficult. See screenshots,
 +  README and FEATURES for more info.
 +- improved signal handling. Fixes server segfault on SIGHUP
 +  for linux kernels newer than Aug 24 2004 and makes para_gui
 +  race-free.
 +- reload database tool on SIGHUP
 +- improved help message for sl
 +- do not log "broken pipe" messages as errors. They are
 +  perfectly ok.
 +- fix wrong error message on permission errors
 +
 +-----------------------------------------
 +0.1.4 (2004-12-19) "tunneling transition"
 +-----------------------------------------
 +
 +Bugfix release. As expected, 0.1.3 introduced a bunch of new bugs.
 +Hopefully, most of them got wiped out with this release. Some
 +enhancements went also in.
 +
 +- improved error diagnostics for all commands
 +- stradd/picadd: overwrite previous contents if entry already
 +  exists, rather than returning errors
 +- stradd: use current stream if invoked without args
 +- faster (and hopefully more stable) ogg-vorbis handling
 +- para_krell: reap children to avoid zombie-flooding in case
 +  no server is running
 +- si: report also server pid
 +- server: don't busy-loop if dbtool reports only invalid files.
 +- gui: CTRL+C works again, fix stream_read command line option
 +- fix pic_add, hist
 +- fix mysql dbtool startup in case no database exists
 +- many small fixes and cleanups
 +
 +---------------------------------------
 +0.1.3: (2004-12-10) "vanishing inertia"
 +---------------------------------------
 +
 +Starting from this release, the database tools are integrated in the
 +server binary. This decreases server startup time, reduces code size
 +and speeds up database commands. However, the layout of the underlying
 +mysql database changed only slightly and 0.1.3 should be backwards
 +compatible in that respect.
 +
 +Visible changes:
 +
 +- If mysql is not detected at compile time, or fails to init
 +  at runtime, fall back to the dopey database tool which should
 +  always work.
 +- para_dbtool and dbtool.conf are gone. All mysql specific
 +  options are read from server.conf and are prefixed by 'mysql_'.
 +- new command: cdt (change database tool)
 +- new command line option: dbtool (choose startup database tool)
 +- The name of current stream is now stored in the database,
 +  so paraslash remembers its current stream when restarted.
 +- new command: csp (change stream and play)
 +- para_gui also reports current database tool and server uptime
 +
 +-------------------------------------------
 +0.1.2: (2004-11-28) "spherical fluctuation"
 +-------------------------------------------
 +
 +Point release before the big dbtool changes go in.
 +
 +- dbtool: rename ca to cam (copy all meta data). It now also
 +  copies numplayed and lastplayed time as well as the picture
 +  id.
 +- fix endless-loop-bug caused by mp3 files with invalid header
 +
 +-----------------------------------------
 +0.1.1: (2004-11-05) "floating atmosphere"
 +-----------------------------------------
 +
 +- gkrellm plugin
 +- new dbtool command: mbox. Browse your sound-file collection
 +  with your favorite mail reader.
 +- several small fixes
 +
 +-------------------------------------
 +0.1.0: (2004-10-22) "rotating cortex"
 +-------------------------------------
 +
 +- fix logging bug for loglevel > VERBOSE
 +- fix skip command
 +- correct timings for vbr mp3s
 +- modular audio format support
 +- ogg-vorbis support (experimental)
 +- new server option: autoplay
 +
 +-----------------------------------------
 +0.0.99: (2004-07-25) "harmonic deviation"
 +-----------------------------------------
 +
 +- rename projectname from icc to paraslash (play, archive, rate
 +  and stream large audio sets happily)
 +- paraslash is no longer restricted to one particular audio
 +  streaming software
 +- new dbtool commands (stradd, strq, strdel) for easy stream
 +  managment w/o configuration file. That obsoletes stream_defs
 +  file/config option for dbtool.
 +- picadd accepts jpeg data from stdin
 +- new server commands: ps (select previous stream), sc (song change)
 +- new default pictures for sdl_gui
 +- gui: new key_map option for binding commands and internal
 +  functions to arbitrary keys, nice help screen, rip out
 +  soundcard/linux specific stuff, avoid noise artefacts while jumping,
 +  show silly logo on startup
 +- new executables: para_fade for fading volume, para_dbadm for
 +  manipulating attributes
 +- cdb adds _all_ tables to mysql database
 +- revised and beautified documentation
 +- sample dbtool rewritten in C
 +- autoconf
 +
 +---------------------------------------------
 +0.0.98: (2003-12-26) "incremental smoothness"
 +---------------------------------------------
 +
 +- kick icecast in favour of poc. That removes some races and reduces
 +  core code considerably.
 +- cbr/vbr is displayed by stat and gui/sdl_gui. New status flags
 +  give finer info on afs' status.
 +- gui can start decoder (see config options). Further new gui
 +  commands: refresh (^L), jmp (F1-F10)
 +- gui rereads conf on SIGUSR1 instead of SIGHUP. SIGHUP
 +  terminates gui. This fixes dead instances consuming memory
 +  continuously.
 +- new dbtool command: verb for sending verbatim sql queries.
 +- fix pid_list races (by removing pid_list)
 +- codename funnies
 +
 +--------------------
 +0.0.97: (2003-10-26)
 +--------------------
 +
 +- installation prefix now defaults to /usr/local
 +- new commands for gui: snozze, sleep and reread config
 +- config file for gui and sdl_gui
 +- fix problems with filenames containing funny characters
 +  (reported by Thomas Forell)
 +- improved signal handling for gui, now it rereads conf on SIGHUP
 +- new dbtool command: cdb (create database)
 +- switch from argtable to gengetopt
 +- major code cleanup and speed improvements
 +- fix several potential buffer overflows
 +- many small fixes and cleanups
 +
 +-------------------
 +0.0.96 (2003-08-30)
 +-------------------
 +
 +- easy stream_defs syntax
 +- sdl_gui can display images associated to the file being played
 +- Major feature enhancements for icc_gui including dynamic text
 +  placement and the top/bottom window design
 +- vrfy/clean now also checks for NULL values in attributes as
 +  well as for invalid picture pointers
 +- fix long outstanding case sensitivity bug
 +- many small fixes and cleanups
 +
 +-------------------
 +0.0.95 (2003-06-29)
 +-------------------
 +
 +- sdl gui runs much faster
 +- new dbtool command: ca (copy attributes)
 +- count and display number of times the song has been played
 +- new feature: scoring
 +- command line options for sdl_gui
 +- simpler syntax of streams file
 +- decrease network traffic of stat
 +- fix zombie bug
 +- many small fixes and cleanups
 +
 +-------------------
 +0.0.94 (2003-05-04)
 +-------------------
 +
 +- new server command: ns (next stream)
 +- new icc_gui command: c (change stream)
 +- internal mp3info
 +- stat shows also id3 tag info
 +- new sdl based gui
 +- log flodding bug fixed
 +- many small fixes and cleanups
 +
 +-------------------
 +0.0.93 (2003-03-28)
 +-------------------
 +
 +- colors for icc_gui
 +- icc_gui sets volume directly (linux only)
 +- proper locking that fixes some races
 +- fix security bug that caused commands to be executed even
 +  with unsufficient permissions
 +- new command: hup to make all servers reread their configuration file
 +- icecast meta data streaming
 +- many small fixes and cleanups