| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This command prints a list of decoder plugins and their suffixes /
MIME types.
|
| |
|
|
|
|
|
| |
This new plugin parses extm3u files. Files without the "#EXTM3U"
header are still parsed by the plain old "m3u" plugin.
|
|
|
|
|
|
|
| |
Use a single GString buffer object in all functions loading the
database. Enlarge it automatically for long lines. This eliminates
the maximum line length for tag values. There is still an upper limit
of 512 kB to prevent denial of service, but that's reasonable I guess.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Don't let the mixer plugin "override" the libpulse callbacks.
Instead, add a "mixer" attribute to the pulse_output struct, and call
the mixer on all interesting events.
|
| |
|
|
|
|
| |
Don't clutter the top directory with *.o files.
|
|
|
|
| |
Based on the XSPF playlist plugin.
|
| |
|
|
|
|
|
|
|
|
| |
This is a complete rewrite of the PulseAudio output plugin. It uses
the asynchronous API, which gives us more control over everything.
Additionally, it connects to the PulseAudio server on startup, and
keeps this connection up while MPD runs. During pause, instead of
closing the stream, it enables "cork".
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This has been replaced by the last.fm playlist plugin. The input
plugin has never worked well, and was just a playground to experiment
with the last.fm radio protocol.
|
|
|
|
|
|
| |
This patch integrates the playlist plugin API to the MPD core. We'll
be able to do much more in the future with that API, that's just the
beginning.
|
|
|
|
|
| |
This plugin will replace the last.fm input plugin, once the playlist
API is integrated into MPD.
|
| |
|
|
|
|
|
|
|
|
| |
Based on this API, we will add parsers for EXTM3U, PLS, ASX, last.fm
radio and others.
There is no integration into the MPD core yet. Right now, we have a
command line test program. This is work in progress.
|
| |
|
|
|
|
|
| |
Moved all the code which depends on the decoder plugins to a separate
source. That allows leaner test programs.
|
|
|
|
|
|
| |
This patch implements a light-weight inotify library, and watches all
directories below the music directory. It updates all directories
where files changed after a delay of 5 seconds.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Still missing:
- seeking
- tags
- streaming
- encodings other than MPG123_ENC_SIGNED_16
|
|
|
|
|
|
|
|
|
| |
The recorder plugin writes audio played by MPD to a file. This may be
useful for recording radio streams.
This implementation is incomplete, because support for tags is
missing, and MPD should be able to record each track to a different
file.
|
|
|
|
|
| |
The soure file client.c has nearly 1000 lines, time for splitting it
into smaller pieces to improve readability.
|
|
|
|
| |
Prepare splitting client.c into several sources.
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of hard-coding the path "/etc/mpd.conf", use the configured
$(sysconfdir) path. This can be set with:
./configure --sysconfdir=/etc
Note that this changes the default path to "/usr/local/etc/mpd.conf",
given the default prefix "/usr/local". This is actually more correct
than the old default.
|
|\
| |
| |
| |
| |
| | |
Conflicts:
Makefile.am
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
| |
The new code is more robust and more flexible. It provides detailed
error information in GError objects.
|
|
|
|
|
|
|
| |
This encoder plugin is a replacement for the LAME encoder plugin for
those who prefer a "free" (non-patent encumbered) encoder library.
Most of the plugin source code is copied from the LAME encoder plugin,
since the LAME and TwoLAME APIs are nearly the same.
|
|
|
|
| |
Don't append these to MPD_CFLAGS and MPD_LIBS.
|
| |
|
|
|
|
|
| |
If the encoder plugin API is disabled at compile time, don't compile
test/run_encoder.c.
|
|
|
|
|
|
|
|
|
|
| |
Do all the software volume stuff inside each output thread, not in the
player thread. This allows one software mixer per output device, and
also allows the user to configure the mixer type (hardware or
software) for each audio output.
This moves the global "mixer_type" setting into the "audio_output"
section, deprecating the "mixer_enabled" flag.
|
|
|
|
|
|
|
| |
This mixer plugin may be used instead of the traditional global
software mixer. It integrates with the "volume" filter plugin, and
can control the software volume of an audio output which has no
hardware mixer.
|
|
|
|
|
|
|
|
| |
This patch adds initial filter support for audio outputs. Each audio
output gets a "filter" attribute, which is used by ao_play_chunk().
The PCM conversion is now performed by convert_filter_plugin.
audio_output.convert_state has been removed.
|
| |
|
| |
|
| |
|
|
|
|
| |
Added public methods to get and set the current volume.
|