Release:DrDolittle
From XMMS2
Contents |
Release Notes
Holy handgranates! It's release time again! Much earlier than expected and much cooler than the critics claim! XMMS2 Team announces Dr. Doolittle. This release is forged by the wormholes of Stargate, Swedish schlager music, Chilean beaches and a lament for a loved one. DrDoolittle is a minor-feature-addition and bug-fix release instead of the expected major-break-the-world release. We decided that enough critical fixes and small features were available to make a release. You can watch the new Roadmap in order to see what's going on with future releases.
Note that some of the API calls have been changed in this release (details in full release notes) and clients need to be upgraded. The API breaking will (hopefully) stop when Dr. releases end.
XMMS2 Team would like to thank everyone involved in this release, your efforts are appreciated as always.
Upgrading
Due to significant changes to the SQLite schema the medialib will (once again) be totaly removed if you upgrade. Tilman provided a ruby script for moving your old medialib into the new one.
Noteworthy changes
Feature additions
This release will feature a mDNS agent (bug #455) that will allow you to announce the availability of xmms2 servers on your local network. Client authors are suggested to implement browsing capabillities into their code.
The kind guys at X4X (http://x4x.sf.net) supplied XMMS2 clientlib with Java bindings bug #198. They are now shipped with the default distribution.
One of the old wishlist bugs has been the abillity to make xmms2d to listen to mulitple sockets bug #644. This has been implemented by Karsten Krispin. Just semicolon separate the paths in the config and you are ready to go.
Major speedups has been done for the Medialib (bug #662), especially when importing songs to the Medialib. Please always use xmmsc_medialib_import_path() when mass-adding files, cli command is "xmms2 mlib addpath". Also feedback from sqlite-users mail list was incorporated during RC phase (bug #716). Thanks to Dr. Richard Hipp and others.
Bug fixes
The following bugs has been flaged as important and fixed.
bug #631 and bug #681 fixes two serious misses in the MAD plugin. 631 made some VBR mp3s to have wrong duration and 681 could make xmms2d crash when calculating the duration of errenous mp3s.
bug #688 - Has been a problem for some time. The mixer events from ALSA wasn't handled properly. This would remove the problems with setting volume in ALSA. The problem was with ALSA documentation and a bugreport has been filed to the alsa team.
bug #655 Fixes a common crash in the volume broadcast.
Also this additional bugs where found in the RC testing phase:
- bug #695 - Fix race when seeking in vorbis.
- bug #696 - Update jack plugin to new Volume API
- bug #699 - Make sure xmms_output_open() unlocks the API mutex.
- bug #703 - Make sure that we check return value of snd_pcm_open() in ALSA plugin
- bug #710 - Make OSS format probing work in all cases.
- bug #711 - Return NULL instead of assert in volume_get
New platforms
No new platforms has been added to DrDoolittle
Notes to client authors
One function call was renamed: xmmsc_main_status is now called xmmsc_main_stats. See bug bug #652 for details.
Heaps of new functions was wrapped in Ruby bindings:
- bug #653 - Wrap xmmsc_configval_list() in the Ruby bindings.
- bug #653 - Wrap xmmsc_medialib_playlist_remove() in the Ruby bindings.
- bug #682 - The argument to Xmms::Client#plugin_list is optional now.
- bug #653 - Wrap xmmsc_medialib_get_id() in the Ruby bindings
A new function was also added:
- bug #630 - Added a medialib_entry_add signal.
And the config functions changed behaviour:
- bug #664 - broadcast_configval_changed now uses the config property's key as the dict entry's key and the config property's value as the dict entry's value.
- bug #669 - xmmsc_configval_list() now returns a dict that contains the config property's names and values instead of a list of names.
The following database properties was renamed:
- bug #684 - Log.value is now named Log.percent.
Notes to plugin authors
The only change that affects plugin authors is the split of name and version in xmms_plugin_new() see bug bug #650.
Full ChangeLog
Alexander Botero-Lowry
Anders Gustafsson
- bug #695 - Fix race when seeking in vorbis.
Chris Morgan
- bug #696 - Update jack plugin to new Volume API
Daniel Chokola
- bug #649 - Add plugin_list to ruby bindings
- bug #655 - Fix crash in volume broadcast
- bug #664 - broadcast_configval_changed now uses the config property's key as the dict entry's key and the config property's value as the dict entry's value.
- bug #650 - Split plugin "name" string and add plugin versioning
- bug #653 - Ruby:: add bindings for xmmsc_main_stats
- bug #653 - Wrap xmmsc_io_need_out_set_callback() in the Ruby bindings.
- bug #669 - xmmsc_configval_list() now returns a dict that contains the config property's names and values instead of a list of names.
- bug #635 - Ruby 1.9 dectection.
- bug #648 - Fix error message.
- bug #672 - Tweak Ruby module/class names.
Karsten Krispin
- bug #644 - Add multiple socket support for xmms2d
Georg Schild
- bug #198 - Java bindings.
Sebastien Cevey
- bug #616 - format_pretty_list in cli should check $COLUMNS
- bug #654 - Support for * wildcard in sources
Tilman Sauerbeck
- bug #637 - Added result typification.
- bug #630 - Unsuckify the Ruby method.
- bug #672 - Update the sample script, too.
- bug #653 - Wrap xmmsc_configval_list() in the Ruby bindings.
- bug #653 - Wrap xmmsc_medialib_playlist_remove() in the Ruby bindings.
- bug #682 - The argument to Xmms::Client#plugin_list is optional now.
- bug #685 - Unbreak xmmsc_configval_list(). The bug was introduced by the patch for bug 669.
- bug #687 - Fixed the converter.c builder.
- bug #685 - Fix bad memory usage in xmms_config_property_register().
- bug #653 - Wrap xmmsc_medialib_get_id() in the Ruby bindings. Based on a broken patch by Dan Chokola.
- bug #660 - Emit the current volume in broadcast_volume_changed.
- bug #689 - Initialize the command argument in xmms_object_emit_f().
- bug #690 - Remove output->object_mutex since it's not needed.
- bug #688 - snd_mixer_handle_events() returns the number of events that occured on success (this isn't documented), so we need to check for err < 0 to determine if an error occured or not.
- bug #699 - Make sure xmms_output_open() unlocks the API mutex.
- bug #705 - Fixed a typemap bug in the Java bindings.
- bug #707 - Use g_usleep() instead of nanosleep() in the null plugin.
Tobias Rundström
- bug #658 - Fix complation for C89 compilers.
- bug #652 - rename xmmsc_main_status() -> xmmsc_main_stats()
- bug #662 - Optimization for SQLite
- bug #455 - Added mDNS agent.
- bug #631 - Fix XING headers in MP3 files with CRC headers.
- bug #670 - change clientlib functions taking char* where const char* would be sufficient
- bug #673 - Remove , at end of enums.
- bug #668 - Set error string when asking for a ID that doesn't exsist.
- bug #668 - Make sure that medialib id is set before sending signal.
- bug #643 - Make quit function in main set a timeout and return.
- bug #676 - Fix rubybindings for OSX
- bug #681 - Don't FPE in MAD's duration calculation.
- bug #675 - Temporary fix for JAVA_HOME for DrDolittle release.
- bug #703 - Make sure that we check return value of snd_pcm_open() in ALSA plugin
- bug #710 - Make OSS format probing work in all cases.
- bug #702 - Fixed crashbug in Jack plugin.
- bug #711 - Return NULL instead of assert in volume_get
- bug #712 - Don't assert on play when output plugin isn't loaded.
- bug #713 - Don't assert if the volume thread isn't running.
- bug #716 - Utilize the ANALYZE table to speed up medialib.
- bug #684 - Rename Log.value to Log.percent

