Changelog:
2.5.0
* Autotools and packaging changes:
- Upgraded autoconf version requirement to 2.60
- Added '--with-alsa' to suppress ALSA sound driver inclusion
- Added '--without-oss' to suppress OSS sound driver inclusion
- Added '--disable-cache' to remove tags cache support
- Added specific GDB support to '--enable-debug'
- Refactor decoder plug-ins' autoconf scripts into source directories
- Ensure that all decoders get into the source distribution tarball
- Removed SID decoder's dependance on .la-file presence
- Removed distribution-specific .spec file
- Minor reformatting of the configure summary
- Added warnings for various deprecations and potential problems
- Added warnings for unmet future package requirements
* Improved support for embedded systems:
- Refined FFmpeg decoder configuration for use with cross-compilation
- Provided use of Tremor with the Vorbis decoder
- Improve portability to non-GNU library platforms
- Added --with-libiconv-prefix configure option
* Audio driver changes:
- Allow use of the OSSv4 per-application mixer API
- Provided SNDIO support for OpenBSD systems (Alexander Polakov)
* New and changed audio decoders:
- New TiMidity decoder for MIDI (Hendrik Iben)
- Migrate AAC decoder to later FAAD2 API (Max Klinger)
- Added AAC+ (HE-AAC) support to AAC decoder
- New SidPlay2 decoder for SID (Hendrik Iben)
- New Modplug decoder (Hendrik Iben)
- New WavPack decoder (Alexandrov Sergey)
- Renamed SndFile plugin for consistancy
- Removed M4A format support from AAC decoder plugin
* Overhauled FFmpeg/LibAV decoder:
- Resolved FFmpeg API deprecations
- Provided LibAV compatibility
- Provided proper stereo downmixing
- Increased number of decodable formats (including Xiph Opus)
- Added decoding of audio from video formats
- Added logging of FFmpeg/LibAV messages
- Added seeking in most (but not all) formats
- Fixed misreporting of tags, duration and bitrates
- Fixed memory and file descriptor leakages
- Fixed severe distortion on 8-bit samples
- Fixed loop playing FLAC files
- Fixed many miscellaneous bugs
* Audio reproduction changes:
- Improved support for 8-bit sample size
- Added software mixer (Hendrik Iben)
- Added parametric equalizer (Hendrik Iben)
- Fixed many bugs which produced distorted sound
* General configuration file changes:
- Reconciled and regularised example config and keymap files
- Introduced lists and function-like syntax
- Introduced variable substitution
- Introduced symbol and boolean option types
- Improved security of the configuration file
* Changed configuration file options:
- Layout# options moved to a list and function-like syntax
- SoundDriver option moved to a list syntax
- Renamed OSSMixerChannel to OSSMixerChannel1
- Renamed ALSAMixer to ALSAMixer1
- QueueNextSongReturn moved to yes/no values
- TagsCacheSize set to zero now disables tag caching
* New configuration file options:
- OnSongChange: run an external command (Jack Miller)
- RepeatSongChange: govern the running of the OnSongChange command
- OnStop: run an external command on stopping
- EnforceTagsEncoding: substitutes ID3v1TagsEncoding for ISO-8859-1
encoding in id3v2 tags (Aleks Sherikov)
- FileNamesIconv: converts from local to UTF8 encoding for file names
(Aleks Sherikov)
- NonUTFXterm: converts UTF8 to local encoding for X-Term titles
(Aleks Sherikov)
- AutoLoadLyrics: says whether MOC should look for lyrics files
- PreferredDecoders: allow finer control over decoder selection
- XTerms: externalises terminals regarded as X-Terms
- UseMIMEMagic: says whether to identify audio files by using MIME
- JackStartServer: autostart JACK the server (Max Klinger)
- ShowTimePercent: set the percent played state (Daniel T. Borelli)
- Various options for SidPlay2, Modplug and TiMidity support
* New command line options:
- '-O' to override configuration file settings
- '-q' to queue files from command line (Martin Milata)
- '-j' to jump to some position in the current track (Nuno Cardoso)
- '-Q' to display user formatted information (Juho Hämäläinen)
- '-v' to set the volume (Jack Miller)
- '-t' and '--on/off' to toggle or set playback options (Jack Miller)
* Screen handling changes:
- Changed minimum screen height to 7 lines (Tero Marttila)
- Added support for GNU screen title (Jonathan Derque)
- Restore screen to console mode after reporting fatal errors
- Fixed overlength highlight bar
- Fixed screen upset when tags contain control characters
* New and updated client interaction features:
- 'a' command: also add a directory to the playlist (Filippo Giunchedi)
- 'Y' command: prune unreadable files from the playlist (tyranix)
- 'L' command: display music lyrics (Géraud Le Falher)
- Queued messages for display in the message area
- Added play queue (Martin Milata)
- Mark a fragment of a file which can be passed to external commands
* Improve text entry history and editting:
- Recognise ^u (by default) as delete to start of line
- Recognise ^k (by default) as delete to end of line
- Save and restore entered text prior to history scrolling
- Save history entry modifications
- Do not save adjacent duplicate entries
- Do not save or modify with blank entries
- Position cursor at end of restored or history line
* Theme changes:
- Enabled highlighted playlist numbers and file times (Marc Tschiesche)
- Fixed miscoloured frame when switching themes (Alexander Polakov)
- Fixed default colour settings
* General code cleaning:
- Refactoring, optimisations and cosmetic improvements
- Silenced many build warnings and errors
- Replaced various deprecated, legacy and platform-specific functions
* Significant bug fixes:
- Fixed stale locks freeze in tags cache database following a crash.
- Fixed CURL timeout for internet streaming errors (Daniel Stenberg)
- Fixed audio distortion on MP3 file having overly long tag values
- Fixed false positive stream detection in the MP3 decoder
- Fixed Ogg/Vorbis stream detection in the Vorbis decoder
- Fixed 'LRINTF error' raised when reconfiguring MOC
- Handle backspace key properly
- Fixed pthread stack overflow segfault on OpenBSD.
- Fixed segfault when text entry history becomes full
- Fixed segfault processing playlists with relative paths
- Fixed memory corruptions when toggling tag reading
- Fixed severe distortion on 11025Hz 16-bit mono audios
- Fixed freeze at end of playing audio file
- Fixed server crash when attempting to play a deleted file
- Fixed MIME type detection on HTTP redirection
- Fixed crash when mixer value is above 100%
- Workaround for streams that have the actual title as tags/comments
- Indentified cause of "undefined symbol" build errors (node/701)
- Plugged all known memory and file descriptor leaks
* Miscellaneous:
- Updated and reformatted mocp manpage and equalizer README file
- Made many warning and error reports more informative and consistant
- Better logging of more problem determination information
- More informative version information display
- Introduced MD5-based decoder verification tools
- Improved compatibility with 64-bit systems
- Improved compatibility with big-endian systems
- Moved tags cache to a Berkeley DB
- Integration of down-stream distribution patches
- Fixed many bugs which crashed MOC
problem, here the package is trying to use the posix getline but the
compat for older systems broke.)
This should really be done with a configure test, but to regen the
configure script without creating a huge diff would require digging up
an ancient version of autoconf and for now at least it doesn't seem
worth the trouble.
a getline() function taken from nbftp--bothering with gnulib was too
annoying. It works for me on NetBSD-current, but please let me
know if there are any problems.
I've also extended the check for sched_get_priority_max(3)--both here
and in audio/moc--to look in librt prior to giving up. This allows
moc to run with realtime priority on NetBSD-current; unfortunately,
presently this requires root perms.