aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-03-17flac/cue: added support for TITLE[n] commentsMario Lenz1-2/+9
On 2009/03/17 Max Kellermann<max@duempel.org> wrote: > There doesn't seem to be an "official" standard. I'd say: search for > TITLE[1] first (the most explicit form), then TITLE1, and finally fall > back to TITLE. This makes sure MPD supports every possible standard, > without breaking. I've also added some additional checks to make sure entry is long enough.
2009-03-17pulse_mixer: keep mixer attached when another pulse sink is closed.David Guibert1-1/+2
The mixer state is defined as offline only if the associated stream is removed. Signed-off-by: David Guibert <david.guibert@gmail.com>
2009-03-17pulse_mixer: closeDavid Guibert1-1/+14
when the mixer is closed, - the mainloop is stopped. - the context is disconnected. - then the mainloop is freed. Signed-off-by: David Guibert <david.guibert@gmail.com>
2009-03-17httpd: fixed encoder plugin checkJeffrey Middleton1-1/+1
Check if encoder_plugin!=NULL, not encoder_plugin_get (which is a function).
2009-03-16flac: get CUE track titles from additional FLAC commentsMario Lenz4-23/+32
The cue sheet embedded in a flac file doen't contain any information about track titles and similar. There are three possibilities: Use an external cue sheet that includes these information, use a tag CUESHEET with a cue sheet including these information or use tags. I think the latter is the best option and is already used by other projects.
2009-03-16socket_util: use g_strerror() instead of strerror()Max Kellermann1-1/+1
g_strerror() is more portable, and guarantees that the returned string is UTF-8 encoded.
2009-03-16solaris: new audio output plugin for Solaris /dev/audioMax Kellermann2-0/+179
2009-03-16output_all: check param!=NULL before accessing itMax Kellermann1-2/+7
When printing the error message, MPD dereferences the NULL pointer to print an error message if no audio_output section is present.
2009-03-15httpd_output: check client->write_source_id in handlerMax Kellermann1-0/+7
Due to a race condition, httpd_client_out_event() could be called even when its GLib event source was already removed. Check that case.
2009-03-15httpd_output: clear the client's page queue on cancelMax Kellermann2-2/+13
When the httpd output is cancelled, it freed all pages, but didn't remove them from the queue. Call g_queue_clear() and remove the write source id.
2009-03-15vorbis_encoder: added support for all MPD tag typesMax Kellermann1-29/+4
Copy all tags know to MPD to the vorbis_comment.
2009-03-15vorbis_encoder: removed vorbis_encoder.vcMax Kellermann1-4/+6
Allocate the vorbis_comment object when it's used. It is not used anymore in vorbis_encoder_tag().
2009-03-15vorbis_encoder: use vorbis_commentheader_out() in the tag() methodMax Kellermann1-6/+15
Don't reinitialize the encoder with every tag.
2009-03-15vorbis_encoder: pass vorbis_comment to tag helper functionsMax Kellermann1-9/+9
Prepare the removal of vorbis_encoder.vc.
2009-03-15log: removed DEBUG() and FATAL()Max Kellermann9-49/+22
Use GLib the logging functions g_debug(), g_error() instead.
2009-03-15dbUtils: removed printSavedMemoryFromFilenames()Max Kellermann2-37/+0
The function is unused.
2009-03-15sig_handlers: include signal.h instead of sys/signal.hMax Kellermann1-1/+1
2009-03-15httpd: new output plugin to replace "shout"Max Kellermann5-0/+1097
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-15page: new library for reference counted buffersMax Kellermann2-0/+162
2009-03-15vorbis_encoder: make ogg_page a local variableMax Kellermann1-24/+13
Converted the ogg_page attribute from the vorbis_encoder struct to a local function of vorbis_encoder_read(). This simplifies some code, because we don't need to check the page anymore before using it.
2009-03-15vorbis_encoder: fill the ogg_page in the read() methodMax Kellermann1-4/+23
Add the "flush" flag, and defer the ogg_stream_flush() call. Call ogg_stream_pageout() or ogg_stream_flush() (depending on the "flush" flag) in vorbis_encoder_read(). This prevents the ogg_page from getting overwritten by consecutive ogg_stream_pageout() calls.
2009-03-14socket_util: added socket_bind_listen()Max Kellermann3-41/+85
Moved code from listen_add_address() (listen.c) to socket_util.c.
2009-03-14client: use the new fifo_buffer libraryMax Kellermann1-48/+41
2009-03-14fifo_buffer: added buffering libraryMax Kellermann2-0/+288
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.
2009-03-14pcm_resample: choose the fallback resampler at runtimeMax Kellermann2-18/+34
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.
2009-03-14pcm_resample: renamed implementation functionsMax Kellermann4-29/+158
Added diversion functions to pcm_resample.c. These check which resampler is enabled at compile time (libsamplerate or fallback). This prepares the following patch.
2009-03-14output_all: added missing "unused" attributeMax Kellermann1-1/+1
In NDEBUG, clear_tail_chunk() does not use its "chunk" parameter.
2009-03-14output_all: include chunk.hMax Kellermann1-0/+1
The source output_all.c accesses music_chunk struct members, but did not include chunk.h directly.
2009-03-14pcm_volume: use #ifdef instead of #if __i386__Max Kellermann1-2/+2
2009-03-14tag_pool: make "slots" staticMax Kellermann1-1/+1
The variable is private.
2009-03-14pcm_resample: return NULL on failureMax Kellermann1-4/+4
Changed "0" to "NULL".
2009-03-14pcm_convert: return NULL on failureMax Kellermann1-1/+1
Changed "0" to "NULL".
2009-03-14command: return COMMAND_RETURN_OK in handle_addid()Max Kellermann1-1/+1
At the last line of handle_addid(), the playlist_result value has already been evaluated. Don't return this variable, it's the wrong type.
2009-03-14command: handle the addToPlaylist() result properlyMax Kellermann1-1/+2
addToPlaylist() has a "enum playlist_result" return value. Convert that to "enum command_return" properly.
2009-03-14faad: faad_decoder_decode() returns NULL, not falseMax Kellermann1-1/+1
On failure, the function should return NULL, not a boolean.
2009-03-14sticker: sticker_load_value() returns NULL on error, not falseMax Kellermann1-4/+4
Turn the "return false" error handlers into "return NULL".
2009-03-14sticker: initialize hash table in sticker_new()Max Kellermann1-18/+26
Moved the hash table initialization from sticker_list_values() to the new function sticker_new(). This fixes a memory leak in sticker_list_values().
2009-03-14sticker: don't export sticker_list_values()Max Kellermann4-32/+1
sticker_list_values() is only used internally in sticker.c. Remove sticker_song_list_values() completely, it is superseded by sticker_song_get().
2009-03-14command: use sticker_song_get() instead of sticker_song_list_values()Max Kellermann1-11/+10
2009-03-14sticker: added "struct sticker"Max Kellermann4-0/+131
The sticker struct can be used for enumerating values. This will replace the sticker_list_values() function.
2009-03-14mixer_all: removed debug messageMax Kellermann1-1/+0
Don't dump the volume of all mixers.
2009-03-14mixer: protect the mixer struct with a mutexMax Kellermann3-5/+37
In some rare cases, there was a race condition between the output thread and the main thread: when you disable/enable an output device in the main thread, this caused a crash in the output thread. Protect the whole mixer struct with a GMutex to prevent that.
2009-03-14mixer_api: moved mixer_init() to mixer_api.cMax Kellermann2-9/+9
2009-03-14mixer_api: moved mixer_plugin imports to mixer_list.hMax Kellermann5-11/+36
This patch allows the output plugins to import only mixer_list.h, instead of the full mixer_api.h (which would expose internal structures).
2009-03-14mixer_api: moved functions to mixer_control.cMax Kellermann11-82/+112
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).
2009-03-14mixer_control: moved functions to mixer_all.cMax Kellermann3-71/+61
2009-03-14volume: moved code to mixer_all.cMax Kellermann3-30/+111
2009-03-14mixer_api: moved struct mixer_plugin to mixer_plugin.hMax Kellermann2-41/+74
2009-03-14volume: use bool instead of intMax Kellermann3-15/+22
Return true/false on success/failure, instead of 0/-1. Pass true/false instead of 1/0 for the "rel" boolean parameter.
2009-03-14Removed superfluous if statement in update.c:453Jochen Keil1-28/+22
Check for NULL not necessary here