| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
src/input/rewind_input_plugin.c
src/output/httpd_output_plugin.c
|
| |
| |
| |
| |
| |
| | |
RFC 5334 10.3 defines the MIME type "audio/ogg". We could use
"application/ogg" as well, but we know for sure that we only emit
audio data.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The assumption that MIME type is set only once is not valid with CURL,
as URL redirections may update the MIME type.
This fixes bug #3044.
|
| |
| |
| |
| |
| | |
This caused random data to be send via icy-server if the played
song had no tags.
|
| |
| |
| |
| |
| |
| |
| | |
According to the CURL web site, curl_multi_timeout() was added in
version 7.15.4:
http://curl.haxx.se/libcurl/c/curl_multi_timeout.html
|
| |
| |
| |
| |
| |
| | |
Clear the notification before finishing the CANCEL command, so the
notify_wait() after that will always wait for the right notification,
sent by audio_output_all_cancel().
|
| | |
|
| | |
|
| |
| |
| |
| | |
Win32 has many audio APIs. New name is slightly more correct.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This cleanup call is obsolete, since we moved the binding code to
enable()/disable().
|
| |
| |
| |
| |
| |
| | |
Call output_plugin.disable() before output_plugin.finish(). This
ensures that all outputs are properly cleaned up, to make valgrind
happy.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Original implementation does not handle
if (...)
MPD_ERROR("die");
else
...
case well. This change fixes handling of such cases.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header
file 'mpd_error.h'. This macro uses g_critical() to print the error message
and then exits gracefully in contrast to g_error() which would internally call
abort() to produce a core dump.
The macro name is distinctive and allows to find all places with dubious error
handling. The long-term goal is to get rid of MPD_ERROR() altogether. To
facilitate the eventual removal of this macro it was added in a new header
file rather than to an existing header file.
This fixes #2995 and #3007.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added support for a new optional configuration setting for the httpd output
named "bind_to_address". Setting it to a specific IP address (v4 or v6) will
cause the httpd output to bind to that address exclusively. Supporting
multiple addresses in parallel is future work.
This implements the feature requests #2998 and #2646.
|
| | |
|
| |
| |
| |
| |
| | |
The check was meant to fix an assertion failure, but it was the wrong
way around. This broke cross-fading most of the time.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
According to the mantis bug report 2847, there are several possible
variations of the "album artist" tag:
- "album artist"
- "album_artist"
- "albumartist"
This patch adds support for the latter two.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I've added PIPE_EVENT_SHUTDOWN because calling g_main_loop_quit() do not work when called from another thread.
Main thread was sleeping in g_poll() so I needed some way to wake it up.
By some strange reason call close(event_pipe[0]) in event_pipe_deinit() hangs.
In current implementation that code never reached so that was not a problem :-)
I've added a conditional to leave event_pipe[0] open on Win32.
|
| |
| |
| |
| |
| |
| |
| | |
An '\n' was erroneously inserted in the line containing the state, e.g.
"state: \nplay" instead of "state: play".
Fix for bug #2992.
|
| |
| |
| |
| | |
htons() is not available if netinet/in.h is not included.
|
| |
| |
| |
| | |
Fix gcc warning.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Work around aliasing warning.
|
| |
| |
| |
| |
| | |
Be consistent with the rest of MPD, and don't use the non-portable
header "malloc.h".
|
| |
| |
| |
| | |
Fixes duplicate playlist entries.
|
| |
| |
| |
| | |
False if the vector was not modified.
|
| |
| |
| |
| |
| | |
Send silence to all connected clients while paused, to avoid
connection interruption.
|
| |
| |
| |
| |
| | |
Avoid buffer underruns on the streaming client, if the encoder is "too
efficient" (e.g. when encoding silence while paused).
|
| |
| |
| |
| |
| |
| |
| | |
The ReplayGain filter clamped the gain to max. 100 % even if the
algorithm determined the signal needed a boost. That would result in any
such tracks being played with too low volume, effectively defeating the
purpose of the filter.
|
| |
| |
| |
| |
| |
| | |
Unfortunately, there's no "optimized" implementation here. We can't
use Linux's proprietary system call dup3(), because it would require
us to specify the new descriptor.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Free the temporary path string in apply_song_metadata().
|
| | |
|
| |
| |
| |
| |
| | |
Use the functions song_save() and song_load() to use the same format
as in the database file for those songs which need the tags.
|
| |
| |
| |
| |
| | |
While this is not useful for the database, it may become useful for
reusing this code for the state file.
|
| |
| |
| |
| | |
Don't try db_get_song() if the URI has a scheme.
|
| |
| |
| |
| |
| |
| | |
If a song with an absolute path points inside the music directory,
print only the relative part. This happens when partial songs from a
playlist file were loaded.
|
| |
| |
| |
| |
| |
| |
| | |
I've already changed the "playlistinfo" command to hide HTTP
passwords, but forgot to do the same for the simpler "playlist"
command. This patch changes queue_print_uris() to use the code from
song_print_uri().
|
| | |
|
| |
| |
| |
| |
| | |
The only caller doesn't use its return value, and the value isn't
useful anyway.
|