- 26 Mar, 2009 1 commit
-
-
Max Kellermann authored
The mixer core library is now responsible for creating and managing the mixer object. This removes duplicated code from the output plugins.
-
- 25 Mar, 2009 5 commits
-
-
Max Kellermann authored
When the decoder initialization has not been completed yet, all calls to dc_seek() will fail, because dc.seekable is not initialized yet. Wait for the decoder to complete its initialization, i.e. until it has called decoder_initialized().
-
Max Kellermann authored
Don't start playback as soon as the "current" song is being loaded from the state file. That is unclean, and leads to an obscure bug: in repeat mode, when the song is started (which is yet the last song in the list), the playlist code marked the very first song in the playlist as "next" song, because the end of the playlist was wrapped. It's easier to set up the playback after all songs have been loaded, and after the random/repeat mode has been set.
-
Max Kellermann authored
Use audio_output_client_notify instead of g_usleep(1ms) in audio_output_all_wait() to synchronize with the output_thread. Signal the audio_output_client_notify object in ao_play().
-
Max Kellermann authored
Synchronization with the output thread will be implemented in output_all.c, not in player_thread.c. Currently, that's just a simple g_usleep(1ms).
-
Max Kellermann authored
There was a deadlock between the output thread and the player thread: when the output thread failed (and closed itself) while the player thread worked with the audio_output object, MPD could crash.
-
- 21 Mar, 2009 1 commit
-
-
Viliam Mateicka authored
-
- 20 Mar, 2009 2 commits
-
-
Max Kellermann authored
To prevent a race condition, close the output thread before assigning the new audio format.
-
Max Kellermann authored
The config_audio_format used to contain the configured audio format, which is copied to out_audio_format. Let's convert the former to a boolean, which indicates whether out_audio_format was already set. This simplifies some code and saves a few bytes.
-
- 17 Mar, 2009 7 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
If a music_chunk does not contain any PCM data, then the "times" and "bit_rate" attributes are undefined.
-
Mario Lenz authored
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.
-
David Guibert authored
The mixer state is defined as offline only if the associated stream is removed. Signed-off-by: David Guibert <david.guibert@gmail.com>
-
David Guibert authored
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>
-
Jeffrey Middleton authored
Check if encoder_plugin!=NULL, not encoder_plugin_get (which is a function).
-
Jeffrey Middleton authored
It's called "vorbis", not "ogg".
-
- 16 Mar, 2009 8 commits
-
-
Mario Lenz authored
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.
-
Max Kellermann authored
g_strerror() is more portable, and guarantees that the returned string is UTF-8 encoded.
-
Max Kellermann authored
-
Max Kellermann authored
When printing the error message, MPD dereferences the NULL pointer to print an error message if no audio_output section is present.
-
Avuton Olrich authored
-
Avuton Olrich authored
-
Avuton Olrich authored
-
Avuton Olrich authored
[mk: don't run pkg-config when shout is disabled]
-
- 15 Mar, 2009 16 commits
-
-
Avuton Olrich authored
-
Avuton Olrich authored
-
Avuton Olrich authored
-
Avuton Olrich authored
-
Max Kellermann authored
Due to a race condition, httpd_client_out_event() could be called even when its GLib event source was already removed. Check that case.
-
Max Kellermann authored
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.
-
Avuton Olrich authored
-
Max Kellermann authored
Copy all tags know to MPD to the vorbis_comment.
-
Max Kellermann authored
Allocate the vorbis_comment object when it's used. It is not used anymore in vorbis_encoder_tag().
-
Max Kellermann authored
Don't reinitialize the encoder with every tag.
-
Max Kellermann authored
Prepare the removal of vorbis_encoder.vc.
-
Max Kellermann authored
Use GLib the logging functions g_debug(), g_error() instead.
-
Max Kellermann authored
The function is unused.
-
Max Kellermann authored
-
Max Kellermann authored
This "upload" target uploads generated documentation to http://www.musicpd.org/doc/, and works only for my user account.
-
Max Kellermann authored
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.
-