| Commit message (Collapse) | Author | Files | Lines |
|
When one song is played twice, and the decoder is working on the
second "instance", but the first should be seeked, the check in
player_seek_decoder() may assume that it can reuse the decoder without
exchanging pipes. The last thing was the mistake: the pipe pointer
was different, which led to an assertion failure. This patch adds
another check which exchanges the player pipe.
|
|
More abstraction for decoder_control.pipe.
|
|
Some abstraction for decoder_control.pipe access.
|
|
|
|
|
|
|
|
Duplicate the "mime" attribute of the inner input_stream object,
instead of copying the pointer.
|
|
|
|
|
|
This makes the plugin more responsive to control commands, because it
will listen to control events while waiting.
|
|
This method is used to reduce the delay of commands issued to the
shout plugin.
|
|
|
|
Same as ".m4a".
|
|
Change the assertion on "fail_timer==NULL" in OPEN to a runtime check.
This assertion crashed when the output thread failed while the player
thread was calling audio_output_open().
|
|
|
|
Protect the attributes "open" and "fail_timer".
|
|
Protect the attributes "open" and "fail_timer".
|
|
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.
|