Commit Graph

358 Commits

Author SHA1 Message Date
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
Max Kellermann
caa4d28f04 added support for the MMS protocol
This patch implements the MMS protocol, by using libmms.  It is quite
experimental: it does not support seeking yet, and it is currently
using synchronous I/O, which causes MPD to hang while waiting for the
server.
2009-01-29 21:42:10 +01:00
Max Kellermann
c77c61bf3f oggvorbis: define HAVE_OGGVORBIS when tremor is enabled
When tremor (libvorbisidec) is used, HAVE_OGGVORBIS was not defined.
2009-01-15 22:54:31 +01:00
Max Kellermann
9069a244a4 configure.ac: added the --enable-sqlite option
MPD will (optionall) use sqlite databases in the future.  Add a
configure option to enable that.  There is no code yet to really use
sqlite, so the practical use of this patch is limited.
2009-01-12 09:56:14 +01:00
Max Kellermann
c057af6cea configure.ac: removed duplicate PKG_PROG_PKG_CONFIG 2009-01-11 17:39:23 +01:00
Max Kellermann
ad7b7a1664 configure.ac: declare MPD_LIBS and MPD_CFLAGS first
Declare and initialize MPD_LIBS and MPD_CFLAGS before the "OS specific
defaults" section.
2009-01-06 09:07:02 +01:00
Max Kellermann
b8a1cf30e8 configure.ac: moved checks to argument declarations I
Zeroconf, curl, libsamplerate.  No libid3tag for now, because
libid3tag should be automatically disabled when no decoders using it
are enabled.
2009-01-05 09:44:48 +01:00
Max Kellermann
2856be540f configure.ac: moved checks to argument declarations I
Don't separate basic options from their according tests.  Due to lots
of interdependencies, we won't do that for the plugins yet.
2009-01-05 09:43:07 +01:00
Max Kellermann
3f4bfd22c6 configure.ac: reordered plugin types
Print input plugins first, then archive, metadatab, decoder,
converter, encoder, output plugins.
2009-01-05 09:41:45 +01:00
Max Kellermann
283bca7523 configure.ac: moved build options down
Initialize the CFLAGS (warnings, errors) after all the libraries,
because some library checks may be broken with -Werror or -pedantic.
2009-01-05 09:31:11 +01:00
Max Kellermann
0fb21e67ef configure.ac: use AC_CHECK_HEADERS to check for locale.h
AC_CHECK_HEADERS defines HAVE_LOCALE_H, so we don't have to manually
define HAVE_LOCALE.
2009-01-05 09:31:09 +01:00
Max Kellermann
694a919b8e configure.ac: moved mandatory checks up
First do the checks for mandatory stuff (libc features, glib,
pkg-config), then all the options.
2009-01-05 09:31:04 +01:00
Max Kellermann
e178a6f6a7 configure.ac: removed obsolete checks
Don't check for inttypes.h and langinfo.h.
2009-01-05 09:31:02 +01:00
Max Kellermann
ac0fe98ffb use GLib byte order macros 2009-01-05 08:17:22 +01:00
Max Kellermann
c844bd602d configure.ac: disable ID3 support when libid3tag was not found
Fix a typo.
2009-01-05 08:04:43 +01:00
Max Kellermann
1cad0c5b1d configure.ac: detect libid3tag without pkg-config
libid3tag comes without a pkg-config file, and it is usually added by
distribution packages.  For those without .pc file, attempt to
auto-detect the library with AC_CHECK_LIB.
2009-01-04 15:31:06 +01:00
Max Kellermann
4e0973a8f7 configure.ac: link with -lws2_32 on WIN32
All socket functions are provided by ws2_32.dll.
2009-01-03 13:21:25 +01:00
Max Kellermann
71e7ce5d8e main: use the GLib main loop
This is a rather huge patch, which unfortunately cannot be splitted.

Instead of using our custom ioops.h library, convert everything to use
the GLib main loop.
2008-12-30 19:24:39 +01:00
Max Kellermann
49fa9708d5 zeroconf: moved code to zeroconf-avahi.c and zeroconf-bonjour.c
Moved implementation specific code to their own sources, internal
declarations in zeroconf-internal.h.
2008-12-30 16:43:58 +01:00
Max Kellermann
274b919966 main: use g_setenv() instead of setenv()
Removed the fallback setenv() implementation for solaris.
2008-12-29 17:37:40 +01:00
Max Kellermann
702d6a641d configure.ac: append archive libraries to $MPD_LIBS
All archive plugins used to overwrite $MPD_LIBS, ignoring the existing
value.  Make them append instead, keeping the old value.
2008-12-29 11:27:11 +01:00
Max Kellermann
dfe235900f configure.ac: check for archive libraries only if enabled
Don't bother to look for libbz2, libzzip and libiso9660 if the plugins
are disabled.
2008-12-29 10:01:33 +01:00
Max Kellermann
8a8fdfb0ad configure.ac: removed pthread checks
We're now using GLib threading.
2008-12-29 08:20:19 +01:00
Max Kellermann
c01aa53e6a log: support syslog()
Allow logging to syslog if log_file is configured to "syslog".
2008-12-28 19:48:53 +01:00
Viliam Mateicka
d838a1ad24 decoder: new plugin using modplug library 2008-12-28 17:11:18 +01:00
Viliam Mateicka
166d326950 configure.ac: fixed description to bzip2 compile option 2008-12-27 20:16:00 +01:00
Avuton Olrich
e18ded8ded Add an "Archive support" section to the configure results screen. 2008-12-27 09:54:00 -08:00
Avuton Olrich
9ca7be9e82 Change configure time option to be bzip2 rather than bz2. 2008-12-27 09:50:37 -08:00
Avuton Olrich
dc0f779287 Fix text string to show bz2 rather than rar. 2008-12-27 09:49:27 -08:00
Max Kellermann
0fe0425dee disable archive API without plugins
When there are no archive plugins, we do not need the archive API at
all.  Drop all its overhead.
2008-12-27 14:33:41 +01:00
Max Kellermann
4c13a276c4 configure.ac: moved archive library checks to options
Don't split configure options and their implementation.  Check for the
backend library before the AM_CONDITIONAL, otherwise Makefile.am will
compile the plugin although the library may not be available.
2008-12-27 13:45:17 +01:00
Max Kellermann
9220e0edff Merge branch 'experimental' of git://git.musicpd.org/metyl/mpd
Conflicts:

	configure.ac
	src/ls.h
	src/output/shout_plugin.c
2008-12-27 13:34:51 +01:00
Qball Cow
0e7c67067b Check for pkg-config before using it 2008-12-27 10:07:46 +01:00
Avuton Olrich
571b789dd0 Modify version string to post-release version 0.15~git 2008-12-25 13:18:46 -08:00
Avuton Olrich
8b7d7f8abd MPD version 0.14 2008-12-25 13:18:46 -08:00
Max Kellermann
136670832c configure.ac: renamed shout options
configure options should use the dash instead of the underscore.
2008-12-24 03:40:00 +01:00
Max Kellermann
2888ff9bfa configure.ac: fix --enable-un documentation
Unix domain socket support is enabled by default.
2008-12-24 03:32:11 +01:00
Max Kellermann
7950a6d612 configure.ac: disable the mikmod plugin by default
libmikmod seems to be unmaintained, and has several critical bugs
which make MPD crash.

 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=461519
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476339

Disable the plugin by default to minimize harm.  Users should
explicitly enable the mikmod decoder (--enable-mod) if they wish to
have it anyway.
2008-12-24 03:24:23 +01:00
Qball Cow
fe4a9a6d67 Build makefiles after checking available outputs and decoder plugins
Move the AC_OUTPUT below the checks. So you nicely see what goes wrong.
2008-12-22 12:02:12 +01:00
Avuton Olrich
5c0c66d676 MPD version 0.14~beta3 2008-12-20 06:49:31 -08:00
Max Kellermann
c41fa6cf5e configure.ac: check lame availability before shout_mp3 test
If lame was not available, the shout_mp3 plugin was enabled anyway,
and triggered compiler errors.
2008-12-17 17:16:24 +01:00
Max Kellermann
caf601199b configure.ac: disable shout when no encoder is found
First check if an ecoder plugin is available, then determine whether
to enable the shout output plugin.
2008-12-17 16:57:48 +01:00
Viliam Mateicka
37796699cf archiveapi: archive plugin for ISO files 2008-12-16 21:48:26 +01:00
Viliam Mateicka
ddcf0a4078 archiveapi: archive plugin for ZIP files 2008-12-16 21:46:11 +01:00
Viliam Mateicka
98fd9b7da8 archiveapi: archive plugin for BZ2 files 2008-12-16 21:45:59 +01:00
jefromi
9deecd219e configure.ac: added libcurl to configure summary
When updating from a version before libcurl was used for streaming
support, this is confusing - streaming will work with the old version
(e.g. 0.13.2) but will give "no such file" errors with the new due to
the missing dependency. However, the missing dependency will not be
obvious when running the configure script.
2008-12-14 22:05:06 +01:00
Avuton Olrich
fe6292fa5c MPD version 0.14~beta2 2008-12-02 20:01:50 -08:00
Avuton Olrich
29dd5b4aa5 MPD version 0.14~beta1 2008-11-23 12:53:43 -08:00
Max Kellermann
90bfe65e54 doc: process protocol.xml with xmlto
Generate and install protocol.html if xmlto is available.
2008-11-20 08:59:55 +01:00
Max Kellermann
9c4e97a61b aac: detect whether to pass "uint32_t*" to NeAACDecInit2()
neaacdec.h declares all arguments as "unsigned long", but internally
expects uint32_t pointers.  This triggers gcc warnings on 64 bit
architectures.  To avoid that, make configure.ac detect whether we're
using Debian's corrected headers or the original libfaad headers.  In
any case, pass a pointer to an uint32_t, conditionally casted to
"unsigned long*".
2008-11-16 20:04:49 +01:00
Avuton Olrich
0efd80d2e5 MPD version 0.14~alpha3 2008-11-14 10:29:06 -08:00
Avuton Olrich
3eb9b3218d MPD version 0.14~alpha2 2008-11-13 14:43:10 +01:00
Max Kellermann
343f2ac3fc configure.ac: enable _ogg_common.c when flac is enabled
The build failed when the oggvorbis and oggflac decoders were
disabled, because the flac decoder references a symbol from
_ogg_common.c.
2008-11-07 17:21:21 +01:00
Max Kellermann
2172505f5c configure.ac: added AC_CONFIG_SRCDIR 2008-11-07 17:14:52 +01:00
Max Kellermann
91c1a279e4 MPD version 0.14~alpha1
First alpha version for the upcoming version 0.14.
2008-11-05 21:50:53 +01:00
Max Kellermann
259c6ed164 enable GLib threading
Call g_thread_init() from main() to enable the GLib features which
make it thread safe.
2008-11-05 18:21:49 +01:00
Max Kellermann
104d5120c9 configure.ac: check for avcodec_decode_audio2()
Disable the ffmpeg decoder plugin if avcodec_decode_audio2() is not
available.
2008-11-04 17:42:37 +01:00
Max Kellermann
792711bddd configure.ac: unset MP4FF_LIBS when MP4 support is disabled
Although there is no AC_SUBST when $enable_mp4=no, autoconf
substitutes its value in Makefile.am.  Clear it in this case.
2008-11-04 07:46:47 +01:00
Avuton Olrich
b54348a1e5 configure.ac: disable libflac's oggflac support with --disable-oggflac
The configure flag "--disable-oggflac" disabled only liboggflac.
2008-11-03 17:35:16 +01:00
Max Kellermann
dda8fc4f6b configure.ac: AC_SUBST(MP4FF_LIBS)
The AC_SUBST() call was missing in the previous patch.
2008-11-03 17:35:06 +01:00
Max Kellermann
f70dccdce1 configure.ac: separate the "aac" and "mp4" decoder tests
MPD used to have a copy of the mp4ff library.  Since that has been
removed, AAC suport was disabled when there was no libmp4ff.  Separate
the libmp4ff test, and enable AAC support no matter if libmp4ff is
available.
2008-11-03 16:48:12 +01:00
Max Kellermann
355108666c configure.ac: fix "xyes: command not found"
Due to a missing "test", the "xyes" token was interpreted as a
command.
2008-10-26 22:03:26 +01:00
Max Kellermann
0800c6f4ca output: don't compile plugins which are disabled
Don't compile the sources of disabled output plugins at all.
2008-10-26 21:58:37 +01:00
Max Kellermann
3609de8685 http: use libcurl
MPD's HTTP client code has always been broken, no matter how effort
was put into fixing it.  Replace it with libcurl, which is known to be
quite stable.  This adds a fat library dependency, but only for people
who need streaming.
2008-10-26 19:32:43 +01:00
Max Kellermann
cbc71191f0 configure.ac: reverted protocol version to 0.14.0
Several clients refuse to accept the protocol version "0.14~git",
because they think it is malformed.  This is clearly a client bug, but
we cannot wait for all clients to fix this bug right now.  For now,
change the version back to "0.14.0".
2008-10-26 10:32:20 +01:00
Max Kellermann
f9d52dc968 configure.ac: changed version number to "0.14~git"
For testers, it should be clear that they're not using version 0.14.0
final, but an inofficial intermediate version from the git repository.
The protocol version is set to the same string, since the protocol is
subject to change during MPD development.
2008-10-25 21:23:54 +02:00
Max Kellermann
befecb1d47 configure.ac: disable libtool
Since we're not building the local mp4ff library anymore, we can
remove AC_PROG_LIBTOOL.
2008-10-25 21:23:52 +02:00
Max Kellermann
1110a6d410 removed internal copy of libmp4ff
MPD shouldn't integrate sources of other libraries.  Since libmp4ff is
part of libfaad, we should remove the old copy from src/mp4ff and link
with the current version from libfaad instead.
2008-10-25 20:59:36 +02:00
Max Kellermann
8b4829c2fe pcm_resample: support for libsamplerate < 0.1.3
libsamplerate 0.1.2 didn't have the 32 bit <-> float conversion
routines.  Emulate them in case they aren't supported.
2008-10-24 08:41:34 +02:00
Max Kellermann
6b1c54ef96 pcm_utils: moved code to pcm_resample.c
Separate the resampling code from the rest of pcm_utils.c.  Create two
sub-libraries: pcm_resample_libsamplerate.c and
pcm_resample_fallback.c.
2008-10-23 20:00:51 +02:00
Max Kellermann
e4df17f611 ffmpeg: link with libavutil
Since ffmpeg svn r13528, you have to link with libavutil manually.
2008-10-21 08:46:51 +02:00
Max Kellermann
def97411f2 ffmpeg: detect which ffmpeg headers should be included
Since ffmpeg svn r12865, you have to include libavcodec/avcodec.h
instead of avcodec.h.  This cannot be checked at compile time, instead
we have to add a check to configure.ac.  Viliam's original ffmpeg
plugin was based on the newer ffmpeg library, while my Debian
installation had the older version.  My attempt to correct his include
statements wasn't correct after all.
2008-10-21 08:34:19 +02:00
Andrzej Rybczak
7487f9810c configure.ac: use libmikmod-config instead of pkg-config
[mk: use AC_SUBST instead of appending to MPD_CFLAGS / MPD_LIBS]
2008-10-18 18:34:00 +02:00
Max Kellermann
90fdf07aa9 Makefile.am: require automake 1.9
With heavy use of conditionals, I broke Makefile.am for the ancient
automake version 1.6.  Instead of supporting this automake version
forever, I'm removing support for it now.  Since automake isn't
required on the build machine, nobody should have a serious problem
with that.
2008-10-18 07:21:04 +02:00
Max Kellermann
eace565212 reverted package name to "mpd"
Since mpd-mk has become the "official" MPD, the rename from commit
ba892cbc can be reverted.
2008-10-17 23:59:39 +02:00
Max Kellermann
ae6ca0b8af configure.ac: test $with_zeroconf!=no
Patch 25b5d90e broke zeroconf compilation, because it assumed that
$with_zeroconf was set to "yes", although it can be either "bonjour"
or "avahi".
2008-10-17 22:48:43 +02:00
Viliam Mateicka
11ad997141 ffmpeg: new decoder plugin
[mk: fixed indent, changed copyright statement, added autoconf test,
fixed includes paths, fixed 2 gcc warnings, don't close input stream
twice]
2008-10-17 22:27:33 +02:00
Max Kellermann
4ee8da2e69 Makefile.am: don't compile disabled decoder plugins
Don't compile the sources of disabled decoder plugins at all, and
don't attempt to register these.
2008-10-17 21:57:09 +02:00
Max Kellermann
25b5d90e44 Makefile.am: don't compile disabled sources
If a feature is disabled, don't compile the source file at all,
disable it completely in Makefile.am instead.
2008-10-17 21:13:23 +02:00
Max Kellermann
9b5ce27c3b configure.ac: check if "struct ucred" is available
By default, glibc 2.8 hides struct ucred behind the _GNU_SOURCE
macro.  I don't want to enable that globally, because it may encourage
the use of non-portable functions.  Test if "struct ucred" is
available, and enable _GNU_SOURCE if required.

For details about that issue, see glib's bug database:

 http://sources.redhat.com/bugzilla/show_bug.cgi?id=6545
2008-10-16 14:59:26 +02:00
Max Kellermann
3b20fa4f3f configure.ac: reformatted AC_ARG_ENABLE section
Make the configure.ac script more readable by wrapping lines and using
proper indentation.
2008-10-16 08:40:55 +02:00
Max Kellermann
b53365949a configure.ac: find more libraries with pkg-config
Detect the following libraries with pkg-config: libshout, libid3tag,
libmad.
2008-10-16 08:33:29 +02:00
Max Kellermann
da83f2bbe7 configure.ac: removed iconv option
We're using GLib's character set conversion functions instead of iconv
now.
2008-10-16 08:31:21 +02:00
Max Kellermann
92513c3309 shout: check for vorbisenc library
The switch from ogg.m4 to pkg-config intentionally disabled
libvorbisenc.  Enable it when shout_ogg is used.
2008-10-15 20:40:04 +02:00
Enrico Weigelt
30cd345581 fixing several imports to work via pkg-config
This patch fixes several imports to use pkg-config instead of certain
esoteric tests.
2008-10-15 20:39:46 +02:00
Max Kellermann
e89599eaad use GLib
GLib is a nice and portable utility library.  We are going to use it
from now on, and eliminate a lot of duplicated code from MPD.  Why
invent the wheel again and again?
2008-10-15 19:35:04 +02:00
Max Kellermann
df5f16b54e configure.ac: enable unix socket support by default 2008-10-14 17:23:14 +02:00
Max Kellermann
50ecbec3de configure.ac: removed deprecated checks
Removed some configure checks which aren't used anymore since we use
C99.
2008-10-14 17:23:11 +02:00
Max Kellermann
731c629c6a configure.ac: disabled the C++ and fortran checks
Why check for C++ and fortran compilers?  This hack was borrowed from
Qball's gmpc git repository.
2008-10-14 17:23:06 +02:00
Max Kellermann
e9ed10de3a configure.ac: added --enable-debug, --enable-werror, --enable-profile
Add more configure options which control how MPD is compiled.
--enable-debug is always enabled, until there is a stable release.
2008-10-14 17:23:00 +02:00
Max Kellermann
b0c1cf7590 configure.ac: enable -pedantic
Yet another gcc flag which gives us lots of interesting warnings.
2008-10-14 17:21:58 +02:00
Max Kellermann
37b69759da configure.ac: moved CFLAGS checks down
Some warning flags may cause errors during library detection code.  Do
the CFLAGS checks at the end.
2008-10-14 17:21:51 +02:00
Max Kellermann
ba892cbcb0 changed package name to "mpd-mk", updated version number
This git branch has become a real MPD fork now.  Time to change the
package name to the code name "mpd-mk".  Set the version number to
"0.14~git" to mark this as a non-released version.
2008-10-14 17:21:27 +02:00
Eric Wong
a792dc5b93 autotools: add pthreads linker support
This is needed for people that don't use any of the following:
JACK, ALSA, libmikmod, Shout.
2008-10-06 18:52:48 +02:00
Max Kellermann
798eeeee63 require a C99 compiler
C99 will soon have its 10th birthday.  Let's not beat the dead C89
horse, and raise the compiler requirements.  From now on, we need a
C99 compiler.  This adds "-std=gnu99" to the GCC compiler options, in
case GCC is used.
2008-09-29 15:51:02 +02:00
Max Kellermann
9899ab5ac2 properly configure the M4 macro directory
Add information about the M4 macro dir ./m4/ to both configure.ac and
Makefile.am.
2008-09-23 22:38:46 +02:00
Eric Wollesen
5f8eebd122 shout: added mp3 encoder
[mk: moved this patch after "Refactor and cleanup of shout Ogg and MP3
audio outputs".  The original commit message follows, although it is
outdated:]

Creation of shout_mp3 audio output plugin. Basically I just copied the
existing shout plugin and replaced ogg with lame. Uses lame for mp3
encoding. Next step is to pull common functionality out of each shout
plugin and share it between them.

Configuration options for "shout_mp3" are the same as for "shout".
2008-09-12 16:05:23 +02:00
Eric Wollesen
4970c42c86 shout: introduce pluggable encoder API
I've perhaps gone a bit overboard, but here's the current rundown:

Both Ogg and MP3 use the "shout" audio output plugin.  The shout audio
output plugin itself has two new plugins, one for the Ogg encoder,
and another for the MP3 (LAME) encoder.

Configuration for an Ogg stream doesn't change.  For an MP3 stream,
configuration is the same as Ogg, with two exceptions.  First, you must
specify the optional "encoding" parameter, which should be set to "mp3".
See mpd.conf(5) for more details.  Second, the "quality" parameter is
reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
high quality for Ogg.

I've decomposed the code so that all libshout related operations
are done in audioOutput_shout.c, all Ogg specific functions are in
audioOutput_shout_ogg.c, and of course then all LAME specific functions
are handled in audioOutput_shout_mp3.c.

To develop encoder plugins for the shout audio output plugin, I basically
just mimicked the plugin system used for audio outputs.  This might be
overkill, but hopefully if anyone ever wants to support some other sort
of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
hopefully be all set.

The Ogg encoder is slightly less optimal under this configuration.
It used to send shout data directly out of its ogg_page structures.  Now,
in the interest of encapsulation, it copies the data from its ogg_page
structures into a buffer provided by the shout audio output plugin (see
audioOutput_shout_ogg.c, line 77.)  I suspect the performance impact
is negligible.

As for metadata, I'm pretty sure they'll both work.  I wrote up a test
scaffold that would create a fake tag, and tell the plugin to send it
out to the stream every few seconds.  It seemed to work fine.  Of course,
if something does break, I'll be glad to fix it.

Lastly, I've renamed lots of things into snake_case, in keeping with
normalperson's wishes in that regard.

[mk: moved the MP3 patch after this one.  Splitted this patch into
several parts; the others were already applied before this one.  Fixed
a bunch GCC warnings and wrong whitespace modifications.  Made it
compile with mpd-mk by adapting to its prototypes]
2008-09-12 16:04:40 +02:00
Eric Wong
b67bb05d05 build: enable -Wcast-qual -Wwrite-strings CFLAGS
We're pretty careful about using const these days, so
enable these warnings to keep us that way.
2008-09-07 18:37:29 +02:00
Eric Wong
5c26e73226 Point the contact email to musicpd-dev-team
Warren hasn't been active in development in a while and probably
doesn't have much time to answer user questions.  So point the
mailing contact to the public mailing lists where any developer
can see and answer.
2008-08-28 20:40:17 +02:00
Max Kellermann
a383f45117 enable -Wpointer-arith, -Wstrict-prototypes
Also enable -Wunused-parameter - this forces us to add the gcc
"unused" attribute to a lot of parameters (mostly library callback
functions), but it's worth it during code refactorizations.
2008-08-26 08:27:02 +02:00
Jim Ramsay
72434d212c Die if a specific backend is requested but not found.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7382 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-06-16 13:43:03 +00:00
Eric Wong
4e4441fd32 configure: better CFLAGS checking
needed for compatibility with older gcc.  Also, threw in
some warnings for things I find offensive
(declaration-after-statement, shadow)

git-svn-id: https://svn.musicpd.org/mpd/trunk@7299 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-12 04:16:22 +00:00
Max Kellermann
913b2b8399 configure: output ipv6 support option result
[ew: rewrote commit message as it was confusing]

git-svn-id: https://svn.musicpd.org/mpd/trunk@7237 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-12 04:07:31 +00:00
Max Kellermann
86d6ba077b provide switches for TCP and unix sockets
autoconf flags for enabling and disabling TCP and unix domain socket
support.  Embedded machines without a TCP stack may be better off
without TCP support.

git-svn-id: https://svn.musicpd.org/mpd/trunk@7236 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-12 04:07:24 +00:00
Max Kellermann
fe36122c8c enable more warnings
enable -Wextra (excluding -Wno-unused-parameter,
-Wno-deprecated-declarations).

git-svn-id: https://svn.musicpd.org/mpd/trunk@7225 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-12 04:06:11 +00:00
J. Alexander Treuman
08ca0ae2e8 Check for pkg-config unconditionally. It might not be needed if we disable
a ton of optional functionality, but it's getting hard to keep track of it
all.  So let's just be lazy.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6653 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-24 21:31:08 +00:00
J. Alexander Treuman
f31b7b4677 Updating some ./configure --help text.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6652 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-24 21:26:44 +00:00
J. Alexander Treuman
db47ab163a Adding WavPack support. Patch courtesy Kodest.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6651 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-24 20:40:04 +00:00
J. Alexander Treuman
b496239e76 Adding FIFO audio output. This is pretty much identical to the old one,
except that it now uses a timer for throttling.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6621 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-13 14:15:30 +00:00
J. Alexander Treuman
d5596a1cf0 Define HAVE_ZEROCONF if Avahi or Bonjour support is enabled, so that we can
silence a warning about an unused variable without using stupid checks for
HAVE_AVAHI || HAVE_BONJOUR.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6471 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-03 19:44:19 +00:00
J. Alexander Treuman
4025498488 Cleaning up zeroconf configure magic.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6464 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-03 00:03:20 +00:00
J. Alexander Treuman
e41601c98b Check if we need -ldns_sd for Bonjour.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6463 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-02 22:58:51 +00:00
Patrik Weiskircher
b91af54d2a Added Bonjour zeroconf support. This works now natively on MacOS X.
I couldn't test mDNSResponder support on Linux, as Debian doesn't include it - but should work as well.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6453 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-02 17:06:08 +00:00
J. Alexander Treuman
dd83898064 Requiring autoconf 2.60. This is needed for the new C99 and POSIX type
checks that are now used.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6447 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-01 18:32:25 +00:00
J. Alexander Treuman
aaea59e501 Bumping version numbers to 0.14.0.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6402 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-30 20:12:32 +00:00
J. Alexander Treuman
72cbcef0c0 Forgot a change to configure.ac in one of the previous commits.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6401 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-30 20:08:24 +00:00
J. Alexander Treuman
0f8ab01c3e Adding a null output plugin.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6393 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-30 16:52:56 +00:00
J. Alexander Treuman
1bf233dd37 Removing Sun audio support from configure and ChangeLog. Turns out the
plugin itself was never actually committed, so support for it was never
there.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5822 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-04 15:58:42 +00:00
J. Alexander Treuman
ed5f2c195a Don't use -L$libdir -I$includedir. $libdir and $includedir are paths for
installing libs/includes, and apparently even the defaults can break cross
compiles (see bug #1454).

git-svn-id: https://svn.musicpd.org/mpd/trunk@5789 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-31 17:34:46 +00:00
J. Alexander Treuman
6450bbc096 Bumping version numbers to 0.13.0. Future 0.12.x releases will be made
from a branch of 0.12.1.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5666 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-20 18:46:04 +00:00
J. Alexander Treuman
afa3ccc3b1 Forgot a || in that last commit. Oops.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5455 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-27 20:24:45 +00:00
J. Alexander Treuman
45f00b7161 LSR and Zeroconf support both use PKG_CHECK_MODULES, and thus require
PKG_PROG_PKG_CONFIG to be done first.  But this is only done if PulseAudio
and JACK aren't explitily disabled.  Therefore, using ./configure
--disable-pulse --disable-jack will make it so that neither LSR nor
Zeroconf can be found.  This is the second time this bug has come up (first
being when JACK was added), so can people please start adding to the test
around PKG_PROG_PKG_CONFIG when they add new features that need
PKG_CHECK_MODULES?

git-svn-id: https://svn.musicpd.org/mpd/trunk@5453 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-27 20:02:29 +00:00
Avuton Olrich
79ef8ba248 Add libsamplerate support, old resampling is still an option, but this sounds much better for those who need it and don't want to use pulseaudio. Reviewed by shank/avuton.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5316 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-02 03:51:07 +00:00
Eric Wong
8d11eaff55 configure.ac: no longer drop MPD_CFLAGS if shout is enabled
I'm an idiot for not noticing that :x

git-svn-id: https://svn.musicpd.org/mpd/trunk@5256 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:25:21 +00:00
Eric Wong
6f341e9a3b configure.ac: get rid of scary message about OggFLAC with FLAC 1.1.3
We don't need to check for libOggFLAC with FLAC 1.1.3
because FLAC 1.1.3 can be recompiled to enable/disable
OggFLAC support without recompiling mpd.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5255 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:25:19 +00:00
Eric Wong
8cc1048d72 configure.ac: shell portability fix (test -a)
-a and -o flags for 'test' are not consistently supported
across many platforms and not specified by POSIX

git-svn-id: https://svn.musicpd.org/mpd/trunk@5240 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:03 +00:00
Jim Ramsay
5d79aced8c Added zeroconf service publishing using avahi
git-svn-id: https://svn.musicpd.org/mpd/trunk@5238 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-11 20:41:17 +00:00
J. Alexander Treuman
469ff63093 Do PKG_PROG_PKG_CONFIG if either pulse or jack is enabled. This is because
if you don't explicitly call it, then it is implied by the first use of
PKG_CHECK_MODULES (and no later ones).  This results in the check only
being done in the test for pulse, which is skipped when --disable-pulse is
used.  This will fix the bug mentioned in the previous commit.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5142 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-17 23:42:36 +00:00
J. Alexander Treuman
0435a8c7c1 Cleaning up the JACK/PulseAudio configure magic to be more consistent with
each other.   Hopefully this will also fix a bug where --enable-jack
--disable-pulse would result in both JACK and PulseAudio being disabled.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5141 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-17 21:30:24 +00:00
Warren Dukes
29c7681ca4 jack patch from anarch (and some type fixes for mp4 and acc plugins)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4912 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-18 02:49:13 +00:00