| Commit message (Collapse) | Author | Files | Lines |
|
|
|
This replaces the rewinding buffer code from the CURL input plugin.
It is more generic, and allows rewinding even when the server sends
Icy-Metadata (which would have been too difficult to implement within
the CURL plugin).
This is a rather complex patch for the stable branch (v0.15.x), but it
fixes a serious problem: the "vorbis" decoder plugin was unable to
play streams with Icy-Metadata, because it couldn't rewind the stream
after detecting the codec (Vorbis vs. FLAC).
|
|
Support deprecated MIME types such as "audio/x-ogg". Support new
types such as "audio/flac".
|
|
|
|
|
|
When collecting tag values for the result set, add all of a song's tag
values of the searched type. This affects the "list" command.
Previously, "list" only considered the first tag value of a song.
|
|
This patch adds practical usefulness to the CUE playlist plugin.
|
|
Don't clear the music pipe when seeking has failed - check the
"seeking" flag instead of "command==SEEK". Clear the "seeking" flag
in decoder_seek_error().
|
|
First multiply the floating point return value of
decoder_seek_where(), then cast to integer.
|
|
Use the plugin instead of the glue code in normalize.c. This is used
wrapped inside a "autoconv" filter, to enable normalization for all
input file formats.
|
|
Based on libiso9660.
|
|
This plugin is based on libzzip.
|
|
Free the "context" pointer in the method archive_plugin.close().
|
|
Fixes a memory leak: the "archive" input plugin opens the archive, but
never closes it. This patch moves the responsibility for doing that
to archive_plugin.open_stream(). This is an slight internal API
change, but it is the simplest and least intrusive fix for the memory
leak.
|
|
Fixed memory leak in error handler.
|
|
This code has never made any sense, and has broken some of the archive
plugin.
|
|
Mixers with the "global" flag set aren't closed automatically when the
output device is closed. Thus, they might still be open when MPD
shuts down.
|
|
This fixes an inconsistency in the stored playlist subsystem: when
obtaining the list of playlists (listplaylist, listplaylistinfo), the
file names in the playlist directory are converted to UTF-8 (according
to filesystem_charset), but when saving or loading playlists, the
filesystem_charset setting was ignored.
|
|
Call spl_valid_name() in spl_delete().
|
|
Don't allocate the file name before the playlist_dir==NULL check.
|
|
Copied sources from
http://beesbuzz.biz/code/audiocompress/AudioCompress-2.0.tar.gz
[mk: created this patch under fluffy's name and fixed some gcc
signed/unsigned comparison warnings]
|
|
If we define id3v1_encoding, then the tags are not added to the
database.
|
|
The plugin code tried to force libavcodec to supply stereo samples.
That however has never actually worked. By removing this code, we are
able to play surround files for the first time.
|
|
|
|
Support 32 bit samples with software mixer.
|
|
|
|
|
|
The function flac_vtrack_tnum() was missing a strrchr()==NULL check.
|
|
|
|
Allow RIFF/AIFF ID3 tags up to 4 MB (old limit was 256 kB). This
might still be too small for some users, and when somebody complains,
we might do something more clever (like streaming the data into
libid3tag?).
|
|
On some platforms, libavcodec wants the output buffer aligned to 16
bytes (because it uses SSE/Altivec internally). It will segfault when
you don't obey this rule.
|
|
The new option "sample_rate" sets the sample rate for libmikmod.
|
|
Remove the OPEN_2CH_MAX option. MPD's support for surround sound is
still clunky, but we're working on it.
|
|
MPD has been supporting 32 bit samples since version 0.15. This patch
changes one check, and removes the 32->24 conversion code.
Note that WavPack floating point samples have 32 bits, and MPD doesn't
have a special check for floating point - therefore, this WavPack
plugin still returns 24 bit integer samples as before (until we have
float support in the MPD core).
|
|
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.
|
|
The oggflac plugin has been completely broken for quite a while and
nobody has noticed - maybe we should remove it?
|
|
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.
|
|
We need the function zzip_file_stat().
|
|
We're using API functions which are not available in 0.3.
|
|
This function was not present in SQLite < 3.4.
|
|
Should be "lastfm_user", not "lastfm_username".
|
|
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().
|
|
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.
|
|
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.
|
|
Don't hold a file descriptor on root's tty when syslog is used for
logging.
|
|
|
|
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.
|
|
Be more clear which kind of port should be configured here.
|
|
This new plugin parses extm3u files. Files without the "#EXTM3U"
header are still parsed by the plain old "m3u" plugin.
|
|
Implement the methods enable() and disable(). Bind the HTTP port in
the enable() method, but reject all incoming connections until the
output is opened.
|