aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* util/StringCompare: add StringIsEmpty()Max Kellermann2015-11-0613-16/+37
|
* util/StringCompare: use strncmp() instead of memcmp() in StringStartsWith()Max Kellermann2015-11-062-3/+4
| | | | | Some optimized implementations of memcmp() may not start from the beginning of the string, and may thus segfault.
* util/StringUtil: move comparison functions to StringCompare.cxxMax Kellermann2015-11-0631-156/+236
|
* tag/id3: convert path from "wchar_t*" to "char*" for error messageMax Kellermann2015-11-061-1/+3
|
* player/Thread: call DecoderCommand::SEEK only on existing decoderMax Kellermann2015-11-051-17/+22
| | | | | If the decoder was just started, it already seeks to the desired position.
* player/Thread: move code to WaitDecoderStartup()Max Kellermann2015-11-051-7/+21
|
* player/Thread: move player_command_finished() to PlayerControlMax Kellermann2015-11-052-12/+10
|
* player/Thread: copy pc.seek_time in ActivateDecoder()Max Kellermann2015-11-051-2/+1
| | | | | If this gets called while seeking, do the right thing. This moves the elapsed_time setter from method Run(), which is now redundant.
* player/Control: initialize seek_time in EnqueueSongLocked()Max Kellermann2015-11-052-6/+3
| | | | Allows removing a few special cases in the player thread.
* player/Thread: remove decoder error check from ActivateDecoder()Max Kellermann2015-10-281-37/+8
| | | | | | It is futile to check for decoder errors before the decoder has finished startup. At this time, it's unlikely that the decoder has already failed.
* player/Thread: rename WaitForDecoder() to ActivateDecoder()Max Kellermann2015-10-281-10/+15
| | | | .. and fix its API documentation.
* player/Thread: move code to ForwardDecoderError()Max Kellermann2015-10-271-6/+22
|
* player/Thread: clear pc.next_song earlier in WaitForDecoder()Max Kellermann2015-10-271-4/+3
|
* player/Control: use CANCEL to clear next_song in Seek()Max Kellermann2015-10-271-1/+5
| | | | | Assigning nullptr to next_song may disrupt the player thread and render undefined behavior.
* player/Thread: merge the cross_fading flag into enum CrossFadeStateMax Kellermann2015-10-271-22/+25
|
* player/Thread: move ResetCrossFade() calls to where pipes are setMax Kellermann2015-10-271-3/+8
| | | | | Move ResetCrossFade() to where cross-fading would actually break, to make the cross-fading state more reliable.
* player/Thread: add method ResetCrossFade()Max Kellermann2015-10-271-2/+10
|
* player/Thread: more CrossFadeState documentationMax Kellermann2015-10-271-1/+16
|
* player/Thread: automatic CrossFadeState enum valuesMax Kellermann2015-10-271-4/+4
|
* player/Thread: move enum CrossFadeState into the Player classMax Kellermann2015-10-271-7/+5
|
* command/queue: add range parameter to plchanges and plchangesposidMax Kellermann2015-10-278-18/+58
|
* pcm/Order: new library to convert from FLAC to ALSA channel orderMax Kellermann2015-10-2710-8/+269
| | | | | | | | | | | This new library is integrated in the PcmExport class and (if enabled) converts MPD's channel order (= FLAC channel order) to ALSA channel order. This fixes: http://bugs.musicpd.org/view.php?id=3147 and http://bugs.musicpd.org/view.php?id=3255
* AudioFormat: define that channel order follows the FLAC conventionMax Kellermann2015-10-271-2/+13
| | | | | Basic definition to solve http://bugs.musicpd.org/view.php?id=3147 and http://bugs.musicpd.org/view.php?id=3255
* {android,win32}/build.py: upgrade Boost to 1.59.0Max Kellermann2015-10-272-4/+4
|
* {android,win32}/build.py: upgrade FFmpeg to 2.8.1Max Kellermann2015-10-272-4/+4
|
* {android,win32}/build.py: upgrade CURL to 7.45.0Max Kellermann2015-10-272-4/+4
|
* android/build.py: switch to LLVM/clang 3.6Max Kellermann2015-10-271-1/+1
|
* Merge tag 'v0.19.11'Max Kellermann2015-10-2710-32/+106
|\
| * release v0.19.11Max Kellermann2015-10-271-1/+1
| |
| * systemd: remove obsolete ControlGroup settingsMax Kellermann2015-10-271-9/+0
| | | | | | | | | | | | | | | | | | | | This systemd feature has been removed a while ago without replacement, and it turns out that systemd developers suggest not using control groups at all to assign real-time privileges. Therfore, a replacement feature will not be implement in future systemd releases, and we can really remove those lines completely. See http://bugs.musicpd.org/view.php?id=4413
| * doc/user: section about real-time schedulingMax Kellermann2015-10-271-0/+52
| |
| * gme: don't loop forever, fall back to GME's default play lengthMax Kellermann2015-10-262-3/+4
| | | | | | | | Fixes http://bugs.musicpd.org/view.php?id=4432
| * decoder/gme: free the gme_info_t as early as possibleMax Kellermann2015-10-261-6/+7
| |
| * decoder/gme: call decoder_seek_error() on seek errorMax Kellermann2015-10-261-2/+4
| |
| * output/Command: flush the mixer cache when enabling/disabling outputMax Kellermann2015-10-262-0/+10
| | | | | | | | Fixes mixer lag (http://bugs.musicpd.org/view.php?id=4425).
| * decoder/ffmpeg: fix crash due to wrong avio_alloc_context() callMax Kellermann2015-10-262-4/+15
| | | | | | | | | | | | | | | | Allocate the buffer dynamically using av_malloc(), and free AVIOContext.buffer in the destructor, as mandated by the libavformat documentation. Fixes http://bugs.musicpd.org/view.php?id=4446
| * decoder/mpcdec: use SampleTraits<SampleFormat::S24_P32>Max Kellermann2015-10-161-11/+13
| | | | | | | | | | | | Eliminates some duplicate code, and as a side effect, this works around clang 3.8 compiler warning because a negative value was shifted.
| * decoder/mpcdec: use Clamp()Max Kellermann2015-10-161-6/+2
| |
| * unix/Daemon, playlist/...: remove unused Domain variablesMax Kellermann2015-10-167-21/+0
| |
| * encoder/flac: fix crash with 32 bit playbackMax Kellermann2015-10-162-2/+4
| | | | | | | | | | | | | | Copy to encoder->audio_format *after* adjusting the sample format to S24_P32. Fixes http://bugs.musicpd.org/view.php?id=4433
| * tag/ApeLoader: fix buffer overflow after unterminated keyMax Kellermann2015-10-162-6/+8
| |
| * configure.ac: prepare for 0.19.11Max Kellermann2015-10-162-2/+4
| |
* | decoder/gme: log the emulator typeMax Kellermann2015-10-261-0/+3
| |
* | decoder/gme: add option "accuracy"Max Kellermann2015-10-263-1/+47
| |
* | doc/user: add decoder/gme sectionMax Kellermann2015-10-261-0/+9
| |
* | playlist/flac: re-add the pluginMax Kellermann2015-10-265-0/+171
| | | | | | | | | | | | | | | | | | | | This reverts commit d7d9dbd2c2798b6ff39acb07a3bed38b6f99e283 by reimplementing it with the current MPD API. 3 years ago, I was wrong about the "embcue" plugin being able to replace this one, because "embcue" reads a tag named "CUESHEET", while this plugin reads the "CUESHEET" FLAC metablock. There's an important difference between those two!
* | LocateUri: new library to classify URIs in a standard wayMax Kellermann2015-10-2210-186/+474
| |
* | SongLoader: move code to LoadFromDatabase()Max Kellermann2015-10-222-10/+20
| | | | | | | | Avoids the recursion in LoadFile().
* | Filter out this extra data and leading zeroes in "track" and "disc" tags.Andreas Mair2015-10-211-1/+14
| |
* | PlaylistPrint: fix -Wunused #ifndef ENABLE_DATABASEMax Kellermann2015-10-202-0/+2
| |