| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
"When playing musepack files with mpd v0.15.8, rg seems to have no effect.
Using sample file below, mpd says 'computing ReplayGain album scale with gain 122.879997, peak 0.549150'.
One thing though, if I build mpd against old libmpcdec-1.2.6, rg works
as expected: 'computing ReplayGain album scale with gain 16.820000,
peak 0.099765'"
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, tags of the new song being cross-faded in were sent
immediately. That can cause wrong information being displayed,
because the "previous" song might send its tag at the end again,
overriding the "next" song's tag. This patch saves & merges the tag
of the next song, and sends it when cross-fading is finished, and the
next song really starts.
|
| |
| |
| |
| |
| |
| | |
"There is a bug in fixed-point musepack (musepack_src_r435) playback.
In floating-point audio is OK but in fixed audio is distorted. I have
made a patch for this"
|
| |
| |
| |
| |
| |
| |
| | |
With single+repeat enabled, it is expected that MPD repeats the
current song over andd over. With random mode also enabled, this
didn't work, because the song order was shuffled internally. This
patch adds a special check for this case.
|
| |
| |
| |
| |
| |
| | |
Removed the decoder_command_finished() call at the end of
mp3_decode(). This is invalid, because decoder_command_finished() has
already been called in mp3_read().
|
| | |
|
| |
| |
| |
| |
| | |
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and
MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
|
| |
| |
| |
| | |
Pass everything to the GLib logging library. No direct stderr access.
|
| |
| |
| |
| |
| |
| | |
This is a very basic check, which only ensures that the path does not
begin with a slash, doesn't have double slashes and the special names
"." and ".." are forbidden.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add an option for each audio output which enables the use of the
hardware mixer, instead of the software volume code.
This is hardware specific, and assumes linear volume control. This is
not the case for hardware mixers which were tested, making this patch
somewhat useless, but we will use it to experiment with the settings,
to find a good solution.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Apply the replay gain in the output thread. This means a new setting
will be active instantly, without going through the whole music pipe.
And we might have different replay gain settings for each audio output
device.
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile.am
NEWS
configure.ac
src/decoder/ffmpeg_decoder_plugin.c
src/decoder_thread.c
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
To allow libavformat to detect the format of the input file, append
the suffix of the input file to the URL of the virtual stream. This
specifically enables the "shorten" codec, which is supported by
libavformat/raw.c, detected only by the suffix.
|
| |
| |
| |
| |
| | |
Check consume mode in queue_next_order(), because the current song
would be deleted as soon as it's finished; it cannot be played again.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The patch "input/file: don't fall back to parent directory" introduced
a regression: when trying to play a CUE track, decoder_run_song()
tries to open the file as a stream first, but this fails, because the
path is virtual.
This patch fixes decoder_run_song() (instead of reverting the previous
patch) to accept input_stream_open() failures if the song is a local
file. It passes the responsibility to handle non-existing files to
the decoder's file_decode() method.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When all plugins have failed, MPD used to fall back to the "mad"
decoder plugin, to handle those radio streams without a Content-Type
response header. This however leads to unexpected results (garbage
being played) when the stream isn't really mp3. Since we care little
about "bad" streams, we shouldn't have hacks which have bad side
effects.
Let's get rid of this hack now! Only try to "mad" plugin if there was
no match at all (Content-Type, path suffix) and no other plugin has
been tried.
|
| |
| |
| |
| | |
Manage a linked list of plugins which were already tried.
|
| | |
|
| | |
|
| |
| |
| |
| | |
This feature has been moved to the "flac" playlist plugin.
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile.am
NEWS
configure.ac
src/input/curl_input_plugin.c
src/input_stream.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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".
|
| | |
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
src/decoder_api.c
|
| | |
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
This patch adds practical usefulness to the CUE playlist plugin.
|
| |
| |
| |
| |
| |
| | |
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.
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/archive/bz2_plugin.c
src/archive_api.h
src/input/file_input_plugin.c
test/run_input.c
|
| |
| |
| |
| | |
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.
|
|\|
| |
| |
| |
| | |
Conflicts:
src/decoder/ffmpeg_plugin.c
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
If we define id3v1_encoding, then the tags are not added to the
database.
|