| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
It is a library which I have written years ago for other projects.
This library is licensed under BSD 2-clause, because it is very
generic.
|
|
|
|
|
|
|
|
|
| |
Even if libsamplerate support is enabled, compile the fallback
resampler. When the user specifies the option
"samplerate_converter=internal", it is chosen in favor of
libsamplerate. This may help users with a weak FPU who don't want to
compile a custom MPD from source, because the fallback resampler does
not use floating point operations.
|
|
|
|
|
|
| |
Added diversion functions to pcm_resample.c. These check which
resampler is enabled at compile time (libsamplerate or fallback).
This prepares the following patch.
|
|
|
|
| |
sparse cannot deal with C++.
|
|
|
|
|
| |
sparse complains that a lot of limit.h macros are missing. Define
them to keep sparse quiet.
|
|
|
|
|
|
| |
This patch allows the output plugins to import only mixer_list.h,
instead of the full mixer_api.h (which would expose internal
structures).
|
|
|
|
|
|
| |
mixer_control.h should provide the functions needed to manipulate a
mixer, without exposing the internal mixer API (which is provided by
mixer_api.h).
|
| |
|
| |
|
|
|
|
| |
That linker flag got lost when AM_LDFLAGS was removed.
|
| |
|
| |
|
|
|
|
|
|
| |
Passing libraries through LDFLAGS is a mistake that causes link to fail
when using --as-needed. Since the ld arguments are positional, so are
libtool's. Use the proper variable, thus, to pass the libraries.
|
|
|
|
|
| |
The "run_output" program can be used to test an audio output plugin in
an isolated environment.
|
| |
|
|
|
|
|
| |
Memory poisoning is useful for marking memory regions as "undefined".
This poisoning only enabled in the debug build (!NDEBUG).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduces the mixer for the pulse output.
Technically speaking, the pulse index is needed to get or set
the volume. You must define callback fonctions to get this index since
the pulse output in mpd is done using the simpe api. The pulse simple api
does not provide the index of the newly defined output.
So callback fonctions are associated to the pulse context.
The list of all the sink input is then retreived.
Then we select the name of the mpd pulse output and control
its volume by its associated index number.
Signed-off-by: Patrice Linel <patnathanael@gmail.com>
Signed-off-by: David Guibert <david.guibert@gmail.com>
[mk: fixed whitespace errors and broke long lines; removed
daemonization changes from main.c]
|
|
|
|
|
|
|
|
| |
Turn the music_pipe into a simple music_chunk queue. The music_chunk
allocation code is moved to music_buffer, and is now managed with a
linked list instead of a ring buffer. Two separate music_pipe objects
are used by the decoder for the "current" and the "next" song, which
greatly simplifies the cross-fading code.
|
|
|
|
|
|
|
| |
Added music_pipe_allocate(), music_pipe_push() and
music_pipe_cancel(). Those functions allow the caller (decoder thread
in this case) to do its own chunk management. The functions
music_pipe_flush() and music_pipe_tag() can now be removed.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Create a sub directory for input plugins.
|
|
|
|
| |
Start to separate private from public input_stream API.
|
|
|
|
|
|
| |
Added a small AIFF parser library, code copied from the RIFF parser
(big-endian integers). Look for an "ID3" chunk, and let libid3tag
parse it.
|
|
|
|
|
| |
Added a small RIFF parser library. Look for an "id3" chunk, and let
libid3tag parse it.
|
|
|
|
|
| |
Even when --enable-documentation is passed, don't abort if "xmlto" was
not found.
|
|
|
|
| |
The output path must be ./doc/protocol/, not ./protocol/
|
| |
|
| |
|
|
|
|
| |
[mk: adapted to new output plugin API]
|
|
|
|
|
|
| |
Create the socket_util.c library, the first function is
sockaddr_to_string(): it converts a sockaddr struct to a string
containing the IP address in a human-readable form.
|
|
|
|
| |
Use config_get_block_string("name") instead of audio_output_get_name().
|
|
|
|
| |
Added a command line program which runs an encoder plugin.
|
|
|
|
| |
Added a command line program which runs a decoder plugin.
|
|
|
|
|
| |
Moved generic compiler options to AM_CFLAGS. MPD_CFLAGS/MPD_LIBS will
hopefully fade away one day, in favor of more fine-grained variables.
|
|
|
|
|
|
|
| |
Renamed the old AM_CFLAGS to AM_CPPFLAGS, because it contained only
preprocessor options. Append it to src_mpd_CPPFLAGS. Removed
GLIB_LIBS from src_mpd_CPPFLAGS, because it is already part of
AM_LDFLAGS.
|
|
|
|
|
| |
Added "make" variables for the sources and dependencies of each
subsystem (archive, input, output, decoder, encoder, mixer).
|
|
|
|
|
| |
"ls" is a bad name for a library which parses URIs. We'll move the
rest of the "ls" library later.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This program is a simple utility for debugging and benchmarking the
software volume code.
|
|
|
|
| |
The switch syntax is "--enable-test". There are no test programs yet.
|
|
|
|
|
| |
Don't distribute the whole scripts/ directory, because this may
include editor backup files and other temporary files.
|
|
|
|
| |
The m4 files are automatically included in the distribution.
|
|
|
|
| |
Add separate files. This fixes "make distcheck".
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
When building with the ancient automake 1.6 version, the following
errors occur:
Makefile.am:5: invalid variable `doc_DATA'
doc/Makefile.am:2: invalid variable `doc_DATA'
This patches renames some internal variables.
|
|
|
|
|
| |
autotools are somewhat ugly, but that doesn't justify duplicating its
effort with another complex build system.
|