Release:DrEvil
From XMMS2
Contents |
Release Notes
Winter in Chile, tropical heat in Europe; wherever you are this new release comes as a cool breeze. The XMMS2 Team is happy to announce the release of DrEvil. This monster of a release will bring the much expected Transforms concept and might crash your computer a few times due to the extensive changes. Please be aware that this should be considered as less stable then DrDoolittle, so please use this release to help us find bugs in Transforms and port your plugins to the new API. Also this release fixes a lot of the problems that were around with the older architecture, like gapless playback, FLACs getting played by the MAD plugin and so on.
Another major addition in DrEvil is the new C++ bindings, mostly contributed by Jonne "Eclipser" Lehtinen, with the help of Sébastien Cevey (theefer). They now present a very elegant interface to write clients in C++, using the boost library and wrappers of all clientlib data structures. Please help us find bugs there as well by porting C++ clients to the new API and reporting problems!
We are now aiming for the next release which will include some of the Summer of Code students' contributions.
Upgrading
Your medialib is again removed. Sorry.
Noteworthy changes
The biggest change is of course the addition of Transforms.
Feature additions
Transforms adds as the biggest feature in DrEvil.
The new C++ bindings are the second major addition to this release.
Bug fixes
Most of the bugs fixed in this cycle is related to Transforms.
New platforms
No new platforms have been added to DrEvil
Notes to client authors
- bug #762 - Removed views from medialib.
- bug #850 - Removed the Log table from medialib.
- bug #781 - When a client edits mlib-entries the mlib_entry_changed_broadcast is now called.
- bug #741 - 'plugin/*' is now the default source preference (instead of 'server').
Notes to plugin authors
The API is totally new when it comes to decoding / transport and effect plugins. This is unified in the xforms API. Your plugins need to be ported.
Full ChangeLog
Alexander Botero-Lowry
Anders Gustafsson
- bug #144 - xform plugins
- bug #733 - Use new plugin api.
- bug #733 - Disable plugins not ported yet.
- bug #733 - Fix shutdown of new plugin api.
- bug #757 - Buffer in output.c
- bug #815 - Implement seeking in eq.
- bug #831 - Allow metadata to be set after init in xform plugins.
- bug #833 - Support arguments in url (not implemented in clientlib yet)
- bug #740 - Fix wildcard handling in source preference in python bindings.
- bug #741 - Put plugins/* in default source preference.
- bug #737 - Include correct file in sdl-vis.
- bug #744 - Kill xmms_audio_format_t
- bug #750 - Do xmms_medialib_entry_cleanup in xmms_xform_metadata_collect.
- bug #758 - Start cleaning up output.c
- bug #758 - Move api_mutex to outputplugin.c
- bug #758 - White space cleanups.
- bug #759 - Reenable id3v1 in mad.
- bug #760 - Fix seeking in id3v2 plugin.
- bug #620 - Remove some more uses of XMMS_OS_*
- bug #771 - Seeking in vorbis.
- bug #631 - Redo xing+crc fix that got lost in xforms conversion.
- bug #795 - Handle unsync-flag in id3v2 tags.
- bug #822 - Filler shouldn't go to running state if killed in stopped state.
- bug #830 - Fix race on filler buffer in output. (simplify locking too)
- bug #792 - Send medialib_entry_changed broadcasts correctly.
- bug #792 - Remove bad xmmsc_result_unref in broadcast handler, causing broadcast not to be called anymore.
- bug #840 - Remove the numerous amount of references to mad in id3v2 plugin.
- bug #840 - Minor whitespace cleanups in id3v2.
Daniel Kamiñski
- bug #734 - Add "mlib remove" command in cli.
Daniel Svensson
- bug #144 - Update plugins
- bug #327 - Hide stderr when running configuration tools.
- bug #735 - Actually use xmms_plugin_type_t
- bug #114 - Include MMS transform plugin which uses libmms library.
Georg Schild
- bug #720 - javabindings codecleanups
- bug #724 - Improve java bindings.
- bug #752 - Make javabindings build with gcc 2.95
- bug #766 - JMain needs xmmsc_io_disconnect() when spinning down
- bug #776 - Fix license on some files in java bindings.
- bug #777 - Fix java coding style.
- bug #778 - Fix parameter for pluginList*() in Xmms2.java to follow
- bug #810 - Improve javabindings (old and new). JMain works better now and Xmms2Backoffice uses wait/notify for locking
Jonas Berlin
- bug #144 - Update curl to xforms API.
- bug #800 - Throw away peek buffer only when seek succeeds.
- bug #756 - Round duration correctly in cli.
- bug #772 - Reimplement seeking in wave plugin.
- bug #806 - Make id3v2 & nulstripper seek functions return correct value.
- bug #804 - Fix seeking of mp3 in wave.
Jonne Lehtinen
- bug #745 - xmmsc_medialib_remove_entry should take uint32_t instead of int32_t
Juho Vähä-Herttua
- bug #144 - Update plugins
- bug #784 - Gapless playback of Nero encoded AAC files.
- bug #815 - Replace the old equalizer with a new one from EQU project.
- bug #115 - Include ASF/WMA transform plugin which uses ffmpeg library.
- bug #769 - Fix ringbuf bug causing underrun loops on eos.
- bug #829 - Make equalizer plugin check for enabled config value.
- bug #678 - Glibify time() call in mediainfo.c.
- bug #832 - Fix pkgconfig value of WMA to be correct.
Pauli Virtanen
- bug #725 - Wrapper for xmmsc_medialib_playlist_list in Python bindings
Sebastien Cevey
- bug #755 - Change xmmsc_result_source_preference_set to take char**
Tilman Sauerbeck
- bug #144 - Updated plugins
- bug #834 - Added Xmms::VERSION.
- bug #721 - Properly evaluate the dict in handle_config().
- bug #722 - Use xmms_ipc_msg_put_uint32() to store the unsigned int new_pos in xmmsc_playlist_move() instead _put_int32().
- bug #723 - Don't enforce that XMMS_PATH is set.
- bug #653 - Wrap xmmsc_medialib_playlist_list() in the Ruby bindings.
- bug #736 - Support MP3 data in wave files.
- bug #754 - Fixed propdict handling.
- bug #767 - Temporary fix. atm, only the first xform in the chain doesn't have a plugin set, so we gather meta data from all the xforms but the first one.
- bug #768 - Added nulstripper transform.
- bug #770 - Ported effect stuff to transforms. Replaygain only atm.
- bug #779 - Use peek instead of reads in nulstripper so we can get rid of the seek call.
- bug #780 - Cleaned up compute_gain() calls.
- bug #785 - Spelling fixes.
- bug #809 - Read replaygain tags for FLACs. Note that only 'modern' style rp tags are read. I don't know whether FLAC wrote 'old' style tags at a point.
- bug #808 - Unbreak FLAC tags.
- bug #811 - Unbreak xmms_output_volume_get().
- bug #773 - Only store id3v1 tags when the metadata property hasn't been set before (ie when there's no equivalent id3v2 tag). Not configurable yet.
- bug #653 - Add xmmsc_configval_register() to the Ruby bindings.
- bug #812 - Check arguments in xmmsc_*.
- bug #813 - Ignore seek requests for +0/-0 seconds. Also improved argument handling.
- bug #814 - Read "comment" tags for Vorbis and FLAC files.
- bug #816 - Don't do the utf8-to-locale conversion for data that will be g_print()'ed, because it will handle the conversion itself.
Tobias Rundstrom
- bug #114 - Update plugins
- bug #761 - Make log function include file:row
- bug #840 - Cleanup id3v2 plugin, remove all refrences to mad
- bug #730 - Fix compilation flags for mDNS/dns_sd
- bug #739 - C89 fixes.
- bug #762 - Remove views from medialib.
- bug #781 - When a client edits mlib-entries the mlib_entry_changed_broadcast is now called

