| Commit message (Collapse) | Author | Files | Lines |
|
|
|
When you pass the flag AI_ADDRCONFIG to getaddrinfo(), it does not
consider address families on the loopback device. When run on a
machine without an external network card, just with "lo", it was
unable to look up any address.
|
|
libffado documentation says this function returns -1 on error, but
that is a lie - it returns a boolean value, and "false" means error.
|
|
.. instead of av_get_bits_per_sample_format(). The SampleFormat enum
value is authoritative.
|
|
|
|
Device can be specified either by magic index (starting with 0)
or by device name.
|
|
If no device is available test_default_device returns false.
|
|
Using libffado, to play on firewire audio devices.
Warning: this plugin was not tested successfully. I just couldn't
keep libffado2 from crashing. Use at your own risk.
For details, see my Debian bug reports:
http://bugs.debian.org/601657
http://bugs.debian.org/601659
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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".
|
|
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
|
|
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.
|
|
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().
|
|
|
|
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.
|
|
|
|
|