Commit Graph

288 Commits

Author SHA1 Message Date
Max Kellermann
e62580db0b httpd: new output plugin to replace "shout"
Let's get rid of the "shout" plugin, and the awfully complicated
icecast daemon setup!  MPD can do better if it's doing the HTTP server
stuff on its own.  This new plugin has several advantages:

- easier to set up - only one daemon, no password settings, no mount
  settings
- MPD controls the encoder and thus already knows the packet
  boundaries - icecast has to parse them
- MPD doesn't bother to encode data while nobody is listening

This implementation is very experimental (no header parsing, ignores
request URI, no icy-metadata, ...).  It should be able to suport
several encoders in parallel in the future (with different bit rates,
different codec, ...), to make MPD the perfect streaming server.  Once
MPD gets multi-player support, we can even mount several different
radio stations on one server.
2009-03-15 03:32:34 +01:00
Max Kellermann
a7318a6476 configure.ac: add -pg to MPD_LIBS with --enable-gprof 2009-03-11 09:20:29 +01:00
Max Kellermann
940af669b3 poison: added valgrind support
If the header valgrind/memcheck.h is available, add
VALGRIND_MAKE_MEM_NOACCESS() and VALGRIND_MAKE_MEM_UNDEFINED()
support, which enables nice warnings in the valgrind memory checker.
2009-03-09 19:10:18 +01:00
Max Kellermann
2ba5278440 configure.ac: fix --enable-bzip2 and --enable-iso9660 variable name
Another "remove redundant explicit $enableval assignments" breakage.
2009-03-07 23:05:25 +01:00
Max Kellermann
9ed409cdcc configure.ac: fix --enable-X variable names
The patch "remove redundant explicit $enableval assignments" broke
several options with non-standard variable names.
2009-03-07 15:50:19 +01:00
Avuton Olrich
55b0fed293 configure: global indention and trim line wc to 80 when practical. 2009-03-06 08:30:59 -08:00
Avuton Olrich
771c061964 configure: Move the faad stuff to m4/faad.m4 2009-03-06 08:30:59 -08:00
Avuton Olrich
aebb522639 configure: No capitalization on beginning of help strings.
Most strings have no capitalization at the beinning, make all strings
non-capital.
2009-03-06 08:30:59 -08:00
Avuton Olrich
67cecf4e95 configure: specify that faad2 prefix is optional in the help string 2009-03-06 08:30:59 -08:00
Avuton Olrich
cf1c27a232 configure: trim down the line length for the faad help strings 2009-03-06 08:30:59 -08:00
Avuton Olrich
775a277a10 configure: trim down the line length for the zeroconf help string 2009-03-06 08:30:59 -08:00
Avuton Olrich
7c907b9d9d configure: trim down the Tremor AC_ARG_WITH() statements 2009-03-06 08:30:59 -08:00
Avuton Olrich
bc65890abf configure: Group libmad stuff together, rename --enable-mp3 --enable-mad 2009-03-06 08:30:59 -08:00
Avuton Olrich
721b6f3e61 configure: remove redundant explicit $enableval assignments. 2009-03-06 08:30:59 -08:00
Avuton Olrich
38ead091f9 configure: remove duplicate LAME report, unify rest under SHOUTcast header. 2009-03-05 23:25:50 -08:00
Avuton Olrich
7cd9dbd574 configure: make all tests the same, when possible. 2009-03-05 23:17:00 -08:00
Avuton Olrich
cd52258211 configure: Add 'Streaming Support' section to the configure display.
Add 'Streaming Support section to the configure display, clarify
the text and unify with the rest of the display.
2009-03-06 06:51:00 +01:00
Avuton Olrich
6ab53cf62a configure: display the status of lastfm protocol support 2009-03-06 06:50:50 +01:00
Avuton Olrich
f6413d2d5f configure: Fix configure warning presented by lastfm radio.
The configure problem was:
./configure: line 6934: ,: command not found
2009-03-05 16:46:19 -08:00
Max Kellermann
4220e6b0ad input_lastfm: new input plugin for last.fm radio
The lastfm input plugin enables MPD to play lastfm:// URLs.  This
plugin is not complete yet: it plays only the first song in the
last.fm playlist, and the playlist parser isn't even implemented
properly.
2009-03-02 23:11:31 +01:00
Max Kellermann
b4f84fab34 configure.ac: make "xmlto" optional
Even when --enable-documentation is passed, don't abort if "xmlto" was
not found.
2009-03-01 01:26:04 +01:00
Avuton Olrich
88793c7189 configure: don't fail if pipe_output is the only output plugin. 2009-02-28 08:13:31 -08:00
Avuton Olrich
731cc8cf08 configure: move id3 and lame to 'Other Features' 2009-02-28 08:09:43 -08:00
Avuton Olrich
d1d4c3245c configure: don't fail if mp4 is the only enabled input plugin. 2009-02-28 07:55:39 -08:00
Avuton Olrich
a31f3c89fb configure: move the configure status stuff in alphabetical order. 2009-02-28 07:50:13 -08:00
Avuton Olrich
374e090985 pipe: Fix wording in configure and add configure status. 2009-02-28 07:41:05 -08:00
Michal Nazarewicz
cabbf7ab4a pipe: new audio output plugin which runs a command
[mk: adapted to new output plugin API]
2009-02-28 16:11:59 +01:00
Max Kellermann
bdb3129f18 configure.ac: declare AM_CFLAGS
Moved generic compiler options to AM_CFLAGS.  MPD_CFLAGS/MPD_LIBS will
hopefully fade away one day, in favor of more fine-grained variables.
2009-02-25 16:46:07 +01:00
Max Kellermann
d89ba3bcce configure.ac: fix comma errors
Removed superfluous commas.
2009-02-24 10:00:21 +01:00
Max Kellermann
3b1a9aeca0 Makefile.am: no recursive makefiles
Recursive Makefiles are inefficient and error prone (no proper way to
declare dependencies).  Since there's no disadvantage in having one
single Makefile, let's do it.
2009-02-23 10:04:51 +01:00
Max Kellermann
f6e5c00726 shout: use the new encoder API
Removed shout's encoder plugin API in favor of the new generic encoder
plugin API.
2009-02-22 17:18:28 +01:00
Max Kellermann
f7c685f1ab encoder: added lame mp3 encoder
This new LAME encoder plugin is based on the existing shout_mp3.c
plugin.
2009-02-22 17:18:03 +01:00
Max Kellermann
3a6619d62c encoder: added vorbis encoder
This new vorbis encoder plugin is based on the existing shout_ogg.c
plugin.
2009-02-22 17:17:26 +01:00
Max Kellermann
a9dde676be added the encoder API
The new generic encoder API will replace shout's custom encoder API.
2009-02-22 17:11:14 +01:00
Max Kellermann
9f8740a0d6 configure.ac: check ${host_os} instead of ${host}
The configure.ac script does not care about the host architecture, it
only cares about the OS.  Use ${host_os} instead of ${host} to
simplify the matching expressions.
2009-02-18 23:07:13 +01:00
Max Kellermann
f2717a7139 configure.ac: added AC_CANONICAL_HOST
Without AC_CANONICAL_HOST, ${host_os} etc. are not defined.
2009-02-18 23:01:08 +01:00
Max Kellermann
54387d1451 configure.ac: added switch for test programs
The switch syntax is "--enable-test".  There are no test programs yet.
2009-02-18 19:27:05 +01:00
Max Kellermann
51c59f6228 mp4ff: use faacDecInit2() to find the AAC track
Use faacDecInit2() instead of AudioSpecificConfig() to detect the AAC
track in the MP4 file.  This has a great advantage: it initializes the
libfaad decoder, which the caller would normally do anyway - but now
we can go without the AudioSpecificConfig() call.  When decoder==NULL
(called from mp4_tag_dup()), fall back to a mp4ff_get_track_type()==1
check, like other audio players do.
2009-02-18 18:39:12 +01:00
Max Kellermann
ef64449cb6 doc: generate API documentation with doxygen
When configured with --enable-documentation, use doxygen.
2009-02-13 09:11:22 +01:00
Max Kellermann
f6c8dd4961 configure.ac: always check for C++ compiler
Currently, only the sidplay decoder plugin requires C++, and in all
other cases, MPD could build well without a C++ compiler.
Unfortunately, autoconf/automake are confused when we have a
conditional AC_PROG_CXX check.  We could add lots of workarounds for
individual problems, but let's just always require a C++ compiler, and
forget about this autotools limitation.
2009-02-12 18:14:14 +01:00
Max Kellermann
1492339463 wildmidi: new decoder plugin for MIDI files 2009-02-12 16:43:18 +01:00
Max Kellermann
e56a90f3b3 fluidsynth: new decoder plugin for MIDI files
There are a few problems left in this plugin:

- fluidsynth decodes in real time, while MPD prefers to buffer as
  quickly as possible; as a workaround, this plugin uses a timer
  object to synchronize with real-time playback

- I don't know yet how fluidsynth tells me when the song has ended

- the "soundfont" configuration setting is not yet documented, and it
  will likely change soon (in favor of a per-decoder configuration
  block)
2009-02-12 08:43:26 +01:00
Max Kellermann
de2e13cafe configure.ac: define conditional am__fastdepCXX
When the sidplay plugin is disabled, "./configure" does not look for
the C++ compiler.  This creates an odd situation: automake requires
the am__fastdepCXX conditional, although configure did not generate
it.  Work around this autotools limitation by manually disabling
am__fastdepCXX.
2009-02-11 22:05:46 +01:00
Max Kellermann
1136f6fb7a sidplay: new decoder plugin for playing C64 SID files 2009-02-11 20:31:17 +01:00
Max Kellermann
82fee1390c configure.ac: removed misplaced comma 2009-02-11 19:58:53 +01:00
Max Kellermann
bee688e99a configure.ac: define HAVE_FFMPEG after all checks
Don't define HAVE_FFMPEG if the ffmpeg libraries were found via
pkg-config, but ffmpeg support was disabled because
avcodec_decode_audio2() is not available.
2009-02-09 22:22:54 +01:00
Max Kellermann
b6e5c24878 configure.ac: raised protocol version to "0.15.0"
The protocol has been extended since MPD 0.14: playlist ranges,
stickers.  About time to give the protocol a new version number!
2009-02-04 18:52:34 +01:00
Max Kellermann
cd98a72ca6 configure.ac: make DocBook processing optional
Disable the HTML documentation generator by default.  Most users will
pick it from the web site.
2009-02-04 15:25:57 +01:00
Max Kellermann
5900827675 configure.ac: detect jack_set_info_function()
jack_set_info_function() is not provided by older libjack versions.
Attempt to detect if it is available.
2009-01-30 19:43:25 +01:00
Max Kellermann
864dee823d configure.ac: disable MMS by default
MMS streaming is experimental; sync the default value with the help
text.
2009-01-29 23:44:24 +01:00