- 05 Mar, 2009 6 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
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.
-
Max Kellermann authored
The queue update after a seek was wrong: the queued song is cleared by a successful seek. This caused queue/cross-fading problems after a seek.
-
Max Kellermann authored
After the decoder command was obtained, don't wait until libflac detects EOF (as a side effect), quit the decoder immediately. This check was missing completely.
-
Max Kellermann authored
When the MPD core sends the decoder a command while flac_process_single() is executed, this function fails. Abort the decoder only if not seeking. This fixes a seeking bug.
-
Max Kellermann authored
Moved some code from music_pipe_write() and music_pipe_expand(). Only music_chunk.c should access the music_chunk internals.
-
- 03 Mar, 2009 10 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Log the real period and buffer size. This might be useful when debugging xruns. Note that the same information is available in /proc/asound/card*/pcm*p/sub*/hw_params
-
Avuton Olrich authored
Since there are no other callers than stdout, this wouldn't be a problem, but since there maybe in the future go ahead and fix it.
-
Viliam Mateicka authored
function was implemented in the version we are comparing to so there must be higher or equal
-
Viliam Mateicka authored
-
Viliam Mateicka authored
-
Avuton Olrich authored
-
Max Kellermann authored
There are a few high-end devices (e.g. ICE1724) which cannot even play 16 bit audio. Try the 32 bit fallback, which we already implemented for 24 bit.
-
Max Kellermann authored
-
Eric Wollesen authored
[mk: merged memory leak patch; fixed indentation (tabs); fixed documentation typo]
-
- 02 Mar, 2009 24 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
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.
-
Max Kellermann authored
Keep valgrind happy.
-
Max Kellermann authored
-
Max Kellermann authored
Allow input plugins to configure with an "input" block in mpd.conf. Also allow the user to disable a plugin completely.
-
Max Kellermann authored
Instead of hard-coding the plugin global initialization in input_stream_global_init(), make it walk the plugin list and initialize all plugins.
-
Max Kellermann authored
Create a sub directory for input plugins.
-
Max Kellermann authored
Start to separate private from public input_stream API.
-
Viliam Mateicka authored
-
Viliam Mateicka authored
-
Viliam Mateicka authored
[mk: cast off_t to uint32_t; same fix for aiff.c]
-
Viliam Mateicka authored
-
Max Kellermann authored
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.
-
Max Kellermann authored
Added a small RIFF parser library. Look for an "id3" chunk, and let libid3tag parse it.
-
Max Kellermann authored
Some sound chips/drivers (e.g. Intel HDA) don't support 24 bit samples, they want to get 32 bit instead. Now that MPD's PCM library supports 32 bit, add a 32 bit fallback when 24 bit is not supported.
-
Max Kellermann authored
All PCM sub libraries have 32 bit support now. Add support to the glue function pcm_convert().
-
Max Kellermann authored
Support converting 32 bit samples to any other supported sample format.
-
Max Kellermann authored
Added code to convert all other sample formats to 32 bit.
-
Max Kellermann authored
For 32 bit dithering, reuse the 24 bit dithering code, but apply a 8 bit right shift first.
-
Max Kellermann authored
There is nothing 24 bit specific in the pcm_dither_24 struct. Since we want to reuse the struct for 32 bit dithering, let's drop the "_24" suffix from the struct name.
-
Max Kellermann authored
Resampling 32 bit samples is the same as resampling 24 bit samples - both are stored in the int32_t type.
-
Max Kellermann authored
Some 24 bit code can be reused. The 32 bit variant has to use 64 bit integers, because 32 bit integers could overflow. This may be a performance hit on 32 bit CPUs.
-
Max Kellermann authored
This is the first patch in a series to enable 32 bit audio samples in MPD. 32 bit samples are more tricky than 24 bit samples, because the integer may overflow when you operate on a sample.
-
Max Kellermann authored
audio_valid_sample_format() verifies the number of channels. Let's just say up to 8 channels is allowed (which is possible with some consumer sound chips). I don't know if there are bigger cards, and since I cannot test it, I'll limit it to 8 for now.
-