Max Kellermann
4364b30c42
decoder/mad: move RVA2 code to tag_rva2.c
2010-07-20 23:03:54 +02:00
Max Kellermann
82ee278f53
playlist_any: new library to simplify opening playlist files
...
The new function playlist_open_any() combines playlist_mapper_open(),
playlist_list_open_uri() and playlist_list_open_stream(), providing an
easy API for all of them.
2010-06-25 22:43:52 +02:00
Max Kellermann
07423c300e
Makefile.am: append LIBWRAP_LDFLAGS to OUTPUT_LIBS
...
This fixes test/run_output.
2010-06-21 09:45:35 +02:00
Avuton Olrich
a6ef696132
Makefile.am: distribute refcount.h
2010-06-13 19:49:38 -07:00
Max Kellermann
53f08a95eb
Makefile.am: distribute open.h
2010-06-08 21:40:51 +02:00
Max Kellermann
d60bcd2869
test: added debug program "run_inotify"
2010-05-30 23:30:43 +02:00
Max Kellermann
8c581eca4d
tag_ape: move table lookup to tag_table.h
...
Allow code sharing.
2010-05-30 22:52:19 +02:00
Max Kellermann
9cce1d749a
output/win32: new output plugin for Windows Wave
2010-05-20 09:33:05 +02:00
Max Kellermann
fc5a7a8774
Makefile.am: disable test/read_mixer unless HAVE_ALSA
2010-05-19 11:47:55 +02:00
Max Kellermann
fa2ff849c5
input/ffmpeg: new input plugin using libavformat's "avio" library
2010-05-18 21:20:31 +02:00
Tony Miller
9d55b16998
Decoder for game music emulation library.
...
Supports a number of videogame music formats, more info here:
http://www.fly.net/~ant/libs/audio.html
I wrote this plugin for the latest svn, get it here:
http://code.google.com/p/game-music-emu/source/checkout
2010-04-10 01:05:16 -07:00
Max Kellermann
e69bb3b337
Makefile.am: distribute pcm_pack.h
...
Fix distcheck.
2010-03-28 19:31:02 +02:00
Max Kellermann
752dfb3d95
replay_gain: reimplement as a filter plugin
...
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.
2010-02-17 07:23:13 +01:00
Max Kellermann
f672657388
Makefile.am: remove sticker.xml
2010-02-08 11:55:03 +01:00
Max Kellermann
7fbb856eee
playlist_queue: moved code to playlist_mapper.c
2010-02-08 10:56:28 +01:00
Max Kellermann
bb2aa70ec6
playlist_queue: moved check_translate_song() to playlist_song.c
2010-02-08 10:28:12 +01:00
Davide Camurri
7a62818ffd
client: optionally use libwrap
2010-01-20 21:04:07 +01:00
Max Kellermann
1abfcc56af
audio_format: support packed 24 bit samples
2010-01-16 23:44:54 +01:00
Max Kellermann
8f326a33ee
test/run_convert: use fifo_buffer to adapt to odd sample sizes
...
Ensure that the pcm_convert() length argument is aligned to the sample
size.
2010-01-16 23:25:58 +01:00
Max Kellermann
030e61115c
playlist: added a FLAC playlist plugin
...
This playlist plugin handles FLAC files with embedded CUE sheets.
2010-01-06 08:50:52 +01:00
Max Kellermann
2f8135ef8b
input/rewind: enable the "rewind" wrapper for all non-seekable streams
...
Don't limit the "rewind" input plugin to CURL streams.
2010-01-04 21:45:32 +01:00
Max Kellermann
9b9abff972
renamed decoder plugin sources
...
Make it X_decoder_plugin.c.
2010-01-04 21:45:32 +01:00
Max Kellermann
241e94936f
replay_gain: moved code to replay_gain_config.c
2010-01-04 21:02:47 +01:00
Max Kellermann
1330274ffc
replay_gain: moved code to replay_gain_info.c
2010-01-04 21:02:36 +01:00
Max Kellermann
0e183d3fa1
replay_gain: refactor API, move code to replay_gain_state.c
...
The replay_gain_state struct holds the precalculated scale factor,
which is removed from struct replay_gain_info.
2010-01-04 20:54:01 +01:00
Max Kellermann
3adfbfe36d
configure.ac: expose variables OPENAL_CFLAGS and OPENAL_LIBS
...
Don't add these to the global MPD_CFLAGS and MPD_LIBS. This allows
test programs to link without libopenal.
2010-01-01 17:10:10 +01:00
Max Kellermann
a0384aaead
Makefile.am: added unit tests for the archive plugins
2009-12-31 15:50:59 +01:00
Max Kellermann
efc885a9dc
Merge vorbis+icy fixes from branch 'v0.15.x'
...
Conflicts:
Makefile.am
NEWS
configure.ac
src/input/curl_input_plugin.c
src/input_stream.c
2009-12-30 23:24:11 +01:00
Max Kellermann
c88f95a2ea
input/rewind: new input_stream wrapper to allow stream rewinding
...
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).
2009-12-29 23:55:40 +01:00
Max Kellermann
333e11d0eb
Merged release 0.15.7 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
src/decoder_api.c
2009-12-27 20:10:45 +01:00
Max Kellermann
a1939f3966
Makefile.am: create doxygen output directory
2009-12-26 02:58:30 +01:00
Max Kellermann
870436a592
output_init: use the normalize filter 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.
2009-12-25 17:51:08 +01:00
Max Kellermann
6a17233f78
filter: added the "autoconvert" filter plugin
2009-12-25 17:51:05 +01:00
Max Kellermann
3679d5bd7a
playlist: added CUE playlist plugin
...
This plugin is the groundwork for MPD's future generic CUE sheet
support. That's not complete yet, e.g. there is no way for a playlist
plugin to address an arbitrary position within a music file.
2009-12-16 22:19:01 +01:00
Max Kellermann
0bc8c0c1da
archive_plugin: wrap method calls
...
Make archive_file a "real" struct, extended by all plugins. Add the
plugin pointer to it. Wrap all method calls in functions.
2009-12-16 17:09:58 +01:00
Max Kellermann
b04adde7ab
archive: added a C header for each plugin
...
Moved the archive plugin "extern" declarations into each plugin
header.
2009-12-16 15:57:16 +01:00
Max Kellermann
b009970af7
archive/bz2: renamed archive sources and plugin variables
2009-12-16 15:55:48 +01:00
Max Kellermann
bd97586cc4
archive/iso: renamed plugin to "iso9660"
...
Based on libiso9660.
2009-12-16 15:55:37 +01:00
Max Kellermann
971c9671f6
Makefile.am: link test/run_decoder with timer.c
...
For the fluidsynth plugin.
2009-12-15 23:11:57 +01:00
Max Kellermann
c959148ed1
archive/zip: renamed plugin to "zzip"
...
This plugin is based on libzzip.
2009-12-15 20:29:44 +01:00
Max Kellermann
aef6609f4f
archive_api.h: moved struct archive_plugin to archive_plugin.h
2009-12-15 19:02:24 +01:00
Max Kellermann
9715218d40
Makefile.am: distribute AudioCompress/config.h
...
This fixes "make distcheck".
2009-12-15 07:38:30 +01:00
Max Kellermann
c0b8c2c73b
Makefile.am: install glib_compat.h
2009-12-14 23:26:23 +01:00
Max Kellermann
f70d2f58a1
input_stream: moved input_stream_global_init() to input_init.c
2009-12-14 22:53:13 +01:00
Max Kellermann
67b0ab717e
input_stream: moved plugin list to input_registry.c
2009-12-14 22:49:46 +01:00
Max Kellermann
400600ffff
filter: added normalize filter plugin
...
Wrap the AudioCompress library in a filter plugin.
2009-12-14 22:24:00 +01:00
Albin Eldstål-Damlin
0ac0bd26e7
Split filter_config into its own module
2009-12-14 22:12:58 +01:00
Albin Eldstål-Damlin
e28c5a0beb
Initial (statically configured) route filter plugin
2009-12-14 17:41:28 +01:00
Max Kellermann
c412d6251e
audio_format: changed "bits" to "enum sample_format"
...
This patch prepares support for floating point samples (and probably
other formats). It changes the meaning of the "bits" attribute from a
bit count to a symbolic value.
2009-12-02 22:29:50 +01:00
Max Kellermann
68c2cfbb40
test: added normalize test program
2009-12-02 21:56:02 +01:00
J. Shagam
4076523198
compress: upgraded to AudioCompress 2.0
...
Copied sources from
http://beesbuzz.biz/code/audiocompress/AudioCompress-2.0.tar.gz
[mk: created this patch under fluffy's name and fixed some gcc
signed/unsigned comparison warnings]
2009-12-02 18:11:53 +01:00
Max Kellermann
5a480137d2
test: added program to test pcm_convert.c
2009-11-19 21:00:46 +01:00
Viliam Mateicka
5420f9ae76
encoder: introducing flac encoder plugin
2009-11-17 19:41:35 +01:00
Max Kellermann
cef5dcc0a1
audio_format: added function audio_format_to_string()
...
Unified function for converting an audio_format object to a string,
for log messages and for the "status" command.
2009-11-14 01:15:26 +01:00
Max Kellermann
719990b1c5
decoder: use audio_format_init_checked()
...
Let the audio_check library verify the audio format in all (relevant,
i.e. non-hardcoded) plugins.
2009-11-14 00:47:22 +01:00
Max Kellermann
f47bb8c1db
audio_check: checker functions for audio_format attributes
...
These functions are a wrapper for audio_valid_X(). On error, they
return a GError object.
2009-11-14 00:47:19 +01:00
Max Kellermann
5b82ffc291
include config.h in all sources
...
After we've been hit by Large File Support problems several times in
the past week (which only occur on 32 bit platforms, which I don't
have), this is yet another attempt to fix the issue.
2009-11-12 09:17:03 +01:00
Max Kellermann
5bbaf0c9f1
decoder/flac: moved code to flac_compat.h
2009-11-11 16:43:34 +01:00
Max Kellermann
d605329f83
decoder/flac: moved code to flac_pcm.c
2009-11-11 07:59:22 +01:00
Max Kellermann
f6e7dffada
decoder/flac: moved code to flac_metadata.c
2009-11-11 07:50:40 +01:00
Viliam Mateicka
79035d7ed9
wave_encoder: new encoder for streaming PCM wave files.
...
When using wave encoder with httpd audio output mpd can input this stream via http and audiofile decoder.
This for example opens simple way to configure lossless audio streaming port(like jack or pulseaudio does but without overhead).
Another possibility can be using it for gathering raw data for visualization plugins (If sync issue will be resolved)
2009-11-10 22:29:54 +00:00
Max Kellermann
e3af0032b2
set the close-on-exec flag on all file descriptors
...
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.
2009-11-07 18:55:16 +01:00
Max Kellermann
2f1bd39be8
command: added command "decoders"
...
This command prints a list of decoder plugins and their suffixes /
MIME types.
2009-11-07 15:57:22 +01:00
Max Kellermann
e3da174fca
decoder_list: moved suffix/mime_type checks to decoder_plugin.c
2009-11-07 15:14:11 +01:00
Max Kellermann
f3203b5de5
playlist: added extm3u plugin
...
This new plugin parses extm3u files. Files without the "#EXTM3U"
header are still parsed by the plain old "m3u" plugin.
2009-11-06 00:41:42 +01:00
Max Kellermann
9bcfd3a47d
text_file: allocate line buffers dynamically
...
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.
2009-11-01 15:37:16 +01:00
Viliam Mateicka
a13e9832e7
encoder: renaming none_encoder to null_encoder
2009-10-26 20:02:34 +01:00
Viliam Mateicka
2bfddd4310
encoder: new encoder plugin which just pass data through
2009-10-24 19:01:15 +02:00
Viliam Mateicka
7b343eaf50
add --disable-inotify for configure to disable inotify when autodetected
2009-10-24 18:24:29 +02:00
Max Kellermann
c426a0bc5c
output/pulse: call mixer on state changes
...
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.
2009-10-23 10:33:26 +02:00
Max Kellermann
80ac82c8fb
output/fifo: renamed source to fifo_output_plugin.c
2009-10-22 19:23:30 +02:00
Max Kellermann
fd182f6d1e
Makefile.am: enable the "subdir-objects" option
...
Don't clutter the top directory with *.o files.
2009-10-22 18:23:22 +02:00
Max Kellermann
294aaf7a90
playlist: new ASX playlist plugin
...
Based on the XSPF playlist plugin.
2009-10-21 23:39:47 +02:00
Max Kellermann
acfd9a73bc
output/jack: renamed source to jack_output_plugin.c
2009-10-21 18:33:01 +02:00
Max Kellermann
b479a264b6
pulse: code rewrite using the asynchronous libpulse API
...
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".
2009-10-21 10:30:42 +02:00
Max Kellermann
097e200a97
mixer/{oss,alsa}: renamed the mixer source files
2009-10-20 21:23:05 +02:00
Max Kellermann
bc4266bef8
pulse: renamed source files
2009-10-20 21:05:11 +02:00
Max Kellermann
5554633ab8
update: obey .mpdignore files
2009-10-16 18:11:43 +02:00
Qball Cow
f4ea9b7393
Add PLS Parser
2009-10-15 00:08:06 +02:00
Max Kellermann
1ff101c568
input/lastfm: removed obsolete last.fm input plugin
...
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.
2009-10-13 19:43:56 +02:00
Max Kellermann
a93ffdd1be
command: "load" supports remote playlists (m3u, xspf, lastfm://)
...
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.
2009-10-13 18:53:33 +02:00
Max Kellermann
f122e6d456
playlist: added plugin for last.fm radio
...
This plugin will replace the last.fm input plugin, once the playlist
API is integrated into MPD.
2009-10-13 16:32:10 +02:00
Max Kellermann
8391ac4cc8
playlist: added XSPF plugin
2009-10-13 16:31:07 +02:00
Max Kellermann
2bf740fc71
playlist_plugin: new plugin API for playlist parsers
...
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.
2009-10-12 22:34:04 +02:00
Max Kellermann
dbb1e732b8
text_input_stream: input_stream wrapper for reading text files
2009-10-12 22:30:59 +02:00
Max Kellermann
7ec503c4ec
song: moved code to song_update.c
...
Moved all the code which depends on the decoder plugins to a separate
source. That allows leaner test programs.
2009-10-12 22:30:50 +02:00
Max Kellermann
8f261af5c1
automatically update the database with Linux inotify
...
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.
2009-09-25 18:32:00 +02:00
Max Kellermann
47ab2ad6f3
configure.ac: rename HAVE_CURL to ENABLE_CURL
2009-09-24 21:40:07 +02:00
Max Kellermann
1e56107967
update: splitted update.c into several sources
2009-09-24 21:39:46 +02:00
Serge Ziryukin
8b6a5d19d0
openal output plugin
2009-09-06 17:34:56 +02:00
Max Kellermann
bff4c54ece
decoder/mpg123: new decoder plugin based on libmpg123
...
Still missing:
- seeking
- tags
- streaming
- encodings other than MPG123_ENC_SIGNED_16
2009-08-26 20:08:13 +02:00
Max Kellermann
4a0d4a02a6
output/recorder: new output plugin for recording radio streams
...
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.
2009-08-24 18:57:06 +02:00
Max Kellermann
f78366910e
client: splitted client.c into several pieces
...
The soure file client.c has nearly 1000 lines, time for splitting it
into smaller pieces to improve readability.
2009-07-28 17:17:23 +02:00
Max Kellermann
c426bbcf95
client: moved struct client to client_internal.h
...
Prepare splitting client.c into several sources.
2009-07-28 16:42:40 +02:00
Max Kellermann
9322f04529
cmdline: obey $(sysconfdir) for default mpd.conf location
...
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.
2009-07-28 16:17:18 +02:00
Max Kellermann
c9d43b4d71
Merge branch 'master' of git://git.infradead.org/users/dwmw2/mpd
...
Conflicts:
Makefile.am
2009-07-19 18:18:32 +02:00
David Woodhouse
05693e2d5d
Add reverse_endian field to struct audio_format and handle conversion
2009-07-19 17:15:21 +01:00
Max Kellermann
b58aa1f5ee
removed buffer2array.c
2009-07-19 15:15:41 +02:00
Max Kellermann
16ff44ad30
conf: use the tokenizer library
2009-07-19 15:11:37 +02:00
Max Kellermann
1745e68795
tokenizer: new library replacing buffer2array()
...
The new code is more robust and more flexible. It provides detailed
error information in GError objects.
2009-07-19 15:11:36 +02:00