Commit Graph

143 Commits

Author SHA1 Message Date
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
J. Alexander Treuman a9a97e39e5 Bumping version numbers to 0.12.1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4895 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-10 20:45:55 +00:00
J. Alexander Treuman 4d6db2eb37 Bumping version numbers to 0.12.0.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4819 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-22 14:05:01 +00:00
J. Alexander Treuman cb8da28ad7 Updating version numbers to rc4.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4778 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-15 01:38:56 +00:00
Eric Wong 6f0926ff3f configure.ac: replace double quotes AC_MSG_ERROR with brackets
double quotes are printed out in the corresponding shell code

git-svn-id: https://svn.musicpd.org/mpd/trunk@4770 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-13 08:03:37 +00:00
Eric Wong a077a38a85 configure.ac: fix tremor detection usage
git-svn-id: https://svn.musicpd.org/mpd/trunk@4761 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-11 23:41:07 +00:00
Eric Wong 12d253118d configure.ac: fix an obvious typo for setting mpcdec libs
git-svn-id: https://svn.musicpd.org/mpd/trunk@4739 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-06 09:29:06 +00:00
J. Alexander Treuman c81f4e2c04 Bumping version to rc3
git-svn-id: https://svn.musicpd.org/mpd/trunk@4675 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-24 12:25:22 +00:00
Avuton Olrich f79a70d1b9 Fix warnings for -Wmissing-prototypes
Add -Wmissing-prototypes if compiling with gcc
Static where possible

git-svn-id: https://svn.musicpd.org/mpd/trunk@4657 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20 00:50:44 +00:00
J. Alexander Treuman 459e096581 Bumping some version numbers to rc2
git-svn-id: https://svn.musicpd.org/mpd/trunk@4653 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-18 01:39:30 +00:00
J. Alexander Treuman 0cacc35943 Bump some more version numbers to rc1 now that it won't break the protocol.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4611 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-10 22:21:14 +00:00
Eric Wong b46b2c9f69 Separate PROTOCOL_VERSION from VERSION
So we can have VERSION=0.12.0rc1 and keep the
clients seeing 0.12.0

git-svn-id: https://svn.musicpd.org/mpd/trunk@4608 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-10 21:15:06 +00:00
J. Alexander Treuman c062fca22d The configure.ac version is used in the mpd reply, and using rc1 breaks some clients. Reverting last commit.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4607 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-10 20:41:21 +00:00
J. Alexander Treuman 131fcea17d 0.12.0 -> 0.12.0rc1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4606 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-10 20:32:08 +00:00
Eric Wong 8e8d4fc6fd configure.ac: fix a typo
git-svn-id: https://svn.musicpd.org/mpd/trunk@4542 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-04 07:40:53 +00:00
J. Alexander Treuman 8dcc3d31ac Remove the fifo plugin. It's currently useless for the average user, and making it more presentable isn't something I'm willing to do before 0.12. It will likely be added back after 0.12, along with some very experimental stuff to make it more usable.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4472 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-26 20:51:50 +00:00