aboutsummaryrefslogtreecommitdiffstats
path: root/NEWS (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-11-11decoder/flac: fixed CUE seeking range checkMax Kellermann1-0/+1
If flac_container_decode() gets a seek destination which is out of range, it ignores the SEEK command (never finishes it). This leads to MPD lockup, because the player thread waits for completion.
2009-11-11oggflac: rewind stream after FLAC detectionMax Kellermann1-0/+1
The oggflac plugin has been completely broken for quite a while and nobody has noticed - maybe we should remove it?
2009-11-10configure.ac: require GLib 2.12Max Kellermann1-1/+1
Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h.
2009-11-10zzip: require libzzip 0.13Max Kellermann1-0/+2
We need the function zzip_file_stat().
2009-11-10input/mms: require libmms 0.4Max Kellermann1-0/+1
We're using API functions which are not available in 0.3.
2009-11-10sticker: added fallback for sqlite3_prepare_v2()Max Kellermann1-0/+1
This function was not present in SQLite < 3.4.
2009-11-10input/lastfm: fixed variable name in GLib<2.16 code pathMax Kellermann1-0/+2
Should be "lastfm_user", not "lastfm_username".
2009-11-09output/alsa: fill period buffer with silence before drainingMax Kellermann1-0/+1
ALSA passes full period buffers to the hardware. If an application doesn't finish writing a period, libasound will nonetheless send the partial buffer (with undefined trailing data). This causes noise at the end of playback. This patch attempts to track the current position within the period buffer, and generates silence at the end, before calling snd_pcm_drain().
2009-11-09player_thread: drain audio outputs at the end of the playlistMax Kellermann1-0/+2
When there's no queued song, and the current one has finished playing, first make sure that the hardware outputs have really finished playing the last chunk: call the drain() method in all audio outputs. Without this patch, MPD stopped playback shortly before the ALSA sound card had finished playing.
2009-11-07set the close-on-exec flag on all file descriptorsMax Kellermann1-0/+1
Added the "fd_util" library, which attempts to use the new thread-safe Linux system calls pipe2(), accept4() and the options O_CLOEXEC, SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is not thread safe. This is particularly important for the "pipe" output plugin (and others, such as JACK/PulseAudio), because we were heavily leaking file descriptors to child processes.
2009-11-07log: redirect stdout/stderr to /dev/null if syslog is usedMax Kellermann1-0/+1
Don't hold a file descriptor on root's tty when syslog is used for logging.
2009-11-07output/jack: added option "server_name"Max Kellermann1-1/+1
2009-11-06output/jack: dynamic source port listMax Kellermann1-1/+1
Same as the previous patch: create up to 16 configured source ports. The plugin tries to do its best at guessing the right combination for the given input file, the number of source and destination ports.
2009-11-06output/jack: renamed option "ports" to "destination_ports"Max Kellermann1-0/+1
Be more clear which kind of port should be configured here.
2009-11-06playlist: added extm3u pluginMax Kellermann1-1/+1
This new plugin parses extm3u files. Files without the "#EXTM3U" header are still parsed by the plain old "m3u" plugin.
2009-11-05output/httpd: bind port when output is enabledMax Kellermann1-1/+2
Implement the methods enable() and disable(). Bind the HTTP port in the enable() method, but reject all incoming connections until the output is opened.
2009-11-05output/jack: support mono inputMax Kellermann1-0/+1
When MPD plays a mono song (audio_format.channel==1), connect only one source port to both destination ports.
2009-11-05output/jack: clear ring buffers before activatingMax Kellermann1-0/+1
After playback has stopped, the ring buffers may still contain samples. These will be played when playback is started the next time. We should clear the buffers each time.
2009-11-05output/jack: use jack_client_open() instead of jack_client_new()Max Kellermann1-0/+1
jack_client_new() is deprecated. This requires libjack 0.100 (released nearly 5 years ago). We havn't been testing older libjack versions anyway. As a side effect, there is the new option "autostart".
2009-11-05output/jack: added option "client_name"Max Kellermann1-0/+1
Instead of using MPD's audio output name (setting "name"), use a separate configuration option. Change the default to "Music Player Daemon".
2009-11-04database: rescan after metadata_to_use changeMax Kellermann1-0/+1
Store a list of supported tag items in the database. When loading a database which does not have a matching list, we must rescan in order to get the missing information.
2009-11-01text_file: allocate line buffers dynamicallyMax Kellermann1-0/+1
Use a single GString buffer object in all functions loading the database. Enlarge it automatically for long lines. This eliminates the maximum line length for tag values. There is still an upper limit of 512 kB to prevent denial of service, but that's reasonable I guess.
2009-11-01song_save: increased maximum line length to 32 kBMax Kellermann1-0/+1
The line buffer had a fixed size of 5 kB, and was allocated on the stack. This was too small for some users. As a hotfix, we're increasing the buffer size to 32 kB now, allocated on the heap. In MPD 0.16, we'll switch to dynamic allocation.
2009-10-31songvec: sort songs by album name first, then disc/track numberMax Kellermann1-0/+1
When the songs of two albums are in the same directory, all songs of an album should be right next to each others.
2009-10-29output: consistently lock audio output objectsMax Kellermann1-0/+1
Always keep the audio_output object locked within the output thread, unless a plugin method is called. This fixes several race conditions.
2009-10-29output/alsa: don't recover on CANCELMax Kellermann1-0/+1
The recovery is for nothing if we get CLOSE afterwards. Let's not recover in the cancel() method, and let the next play() call sort it out.
2009-10-28decoder/ffmpeg: convert metadataMax Kellermann1-0/+2
Convert the metadata with the libavformat function av_metadata_conv(). This ensures that canonical tag names are provided by libavformat, and we can remove the "artist" vs "author" workaround.
2009-10-27update: delete ignored symlinks from databaseMax Kellermann1-0/+1
When you disable the "follow_outside_symlinks" or the "follow_inside_symlinks" setting, the next update should remove the now-ignored files from the database.
2009-10-21playlist: new ASX playlist pluginMax Kellermann1-1/+1
Based on the XSPF playlist plugin.
2009-10-21audio_format: wildcards allowed in audio_format configurationMax Kellermann1-0/+1
An asterisk means that this attribute should not be enforced, and stays whatever it used to be. This way, some configuration values work like masks.
2009-10-21output/jack: connect to server on MPD startupMax Kellermann1-0/+1
.. and keep up the JACK connection while MPD runs. Allocate the ring buffers on the first open, and free them at MPD exit.
2009-10-21output/jack: implement the "pause" methodMax Kellermann1-0/+1
Don't disconnect from JACK during pause.
2009-10-21pulse: code rewrite using the asynchronous libpulse APIMax Kellermann1-0/+1
This is a complete rewrite of the PulseAudio output plugin. It uses the asynchronous API, which gives us more control over everything. Additionally, it connects to the PulseAudio server on startup, and keeps this connection up while MPD runs. During pause, instead of closing the stream, it enables "cork".
2009-10-21output_thread: check again if output is open on PAUSEMax Kellermann1-0/+1
Basically the same as the 0.15.5 patch "check again if output is open on CANCEL". Same race condition, same fix.
2009-10-20output/pulse: renamed context to "Music Player Daemon"Max Kellermann1-0/+1
This looks nicer in the PulseAudio manager than just "mpd".
2009-10-20pulse: announce "media.role=music"Max Kellermann1-0/+1
This allows PulseAudio to do some advanced tweaks.
2009-10-18Modify version string to post-release version 0.15.6~gitAvuton Olrich1-0/+3
2009-10-18mpd version 0.15.5release-0.15.5Avuton Olrich1-1/+1
2009-10-18command: omitting the range end is possibleMax Kellermann1-0/+1
When the range end is missing, then the maximum possible value is assumed.
2009-10-17command: allow changing replay gain mode on-the-flyMax Kellermann1-0/+1
The new command "replay_gain_mode" allows the user to switch the replay gain mode on-the-fly. No more mpd.conf editing.
2009-10-16update: obey .mpdignore filesMax Kellermann1-1/+3
2009-10-16decoder/flac: fixed two memory leaks in the CUE tag loaderMax Kellermann1-0/+2
Don't initialize "vc" and "cs" with FLAC__metadata_object_new(); that value is overwritten by FLAC__metadata_get_tags() and FLAC__metadata_get_cuesheet().
2009-10-16update: fixed memory leak during container scanMax Kellermann1-0/+1
The return value of map_directory_child_fs() must be freed.
2009-10-16output_thread: check again if output is open on CANCELMax Kellermann1-0/+1
When the player thread unpauses, it sends CANCEL to the output thread, after having checked that the output is still open. Problem is when the output thread closes the device before it can process the CANCEL command - race condition. This patch adds another "open" check inside the output thread.
2009-10-15Add PLS ParserQball Cow1-1/+1
2009-10-13input/lastfm: removed obsolete last.fm input pluginMax Kellermann1-1/+1
This has been replaced by the last.fm playlist plugin. The input plugin has never worked well, and was just a playground to experiment with the last.fm radio protocol.
2009-10-13command: "load" supports remote playlists (m3u, xspf, lastfm://)Max Kellermann1-0/+1
This patch integrates the playlist plugin API to the MPD core. We'll be able to do much more in the future with that API, that's just the beginning.
2009-10-13input/curl: fixed endless loop during bufferingMax Kellermann1-0/+1
When the connection is lost while buffering, the CURL input plugin may enter an endless loop, because it does not check the EOF condition. This patch makes fill_buffer() return success only if there's at least one buffer, which is enough of a check.x
2009-10-13configure.ac: require GLib 2.16Max Kellermann1-0/+1
Accidently, MPD has been using several GLib 2.16 functions for a while, and nobody noticed yet. To simplify the code base, let's bump the minimum GLib version for MPD to 2.16. That version is old enough, and it's reasonable to expect users to have it.
2009-10-11riff, aiff: fixed "limited range" gcc warningMax Kellermann1-0/+2
On 32 bit systems with large file support enabled (i.e. "sizeof(off_t) > sizeof(size_t)") gcc emits a warning because a size_t cast to off_t can never become negative.