Commit Graph

10345 Commits

Author SHA1 Message Date
Max Kellermann 3079aa1f9d {android,win32}/build.py: upgrade FFmpeg to 2.8.2 2015-11-17 17:16:56 +01:00
Max Kellermann 28f9a0a900 command/other: re-allow "lsinfo /"
This compatibility hack was accidently broken by commit f072cbbb
2015-11-13 21:04:02 +01:00
Max Kellermann a6bb3cf60a command/queue: use StringIsEqual() instead of memcmp()
memcmp() can overflow the buffer.
2015-11-13 21:02:33 +01:00
Max Kellermann 004da5d385 queue/Save: fix "Malformed playlist line in state file"
Regression by commit 738583e3
2015-11-13 20:45:50 +01:00
Max Kellermann 0368282486 player/Control: add code comments 2015-11-13 16:02:07 +01:00
Max Kellermann 4404f20cf4 player/Control: Seek*() returns Error information 2015-11-11 19:56:09 +01:00
Max Kellermann faca8bc02a decoder/Control: Seek() returns Error information 2015-11-11 19:56:08 +01:00
Max Kellermann 5e93c05095 queue/Playlist: seek methods return bool/Error instead of PlaylistResult 2015-11-11 19:56:01 +01:00
Max Kellermann 0f4f04eaa4 command/CommandError: send verbose error message to client 2015-11-11 19:51:09 +01:00
Max Kellermann 2e55d561d3 PlaylistError: remove unused code "ERRNO" 2015-11-11 19:50:57 +01:00
Max Kellermann 76a9049739 decoder/Control: State::ERROR is illegal
The state ERROR can only be entered during decoder initialization, and
Seek() may only be called after initialization has been finished.
2015-11-11 17:46:06 +01:00
Max Kellermann 27bfcda20d decoder/Control: use switch/case in Seek() 2015-11-11 17:46:03 +01:00
Max Kellermann c6d1d360a3 player/Control: use class ScopeLock 2015-11-11 17:43:56 +01:00
Max Kellermann afc1236b06 player/Control: move code to ClearError() 2015-11-11 17:41:02 +01:00
Max Kellermann bedd5f00f8 player/Control: move code to SeekLocked() 2015-11-11 16:56:24 +01:00
Max Kellermann 36239895bd player/Control: add Lock prefix to locking method names 2015-11-11 16:50:57 +01:00
Max Kellermann 738583e3d4 StateFile: use StringAfterPrefix() instead of StringStartsWith() 2015-11-11 15:34:36 +01:00
Max Kellermann c513478c31 db/simple: use StringAfterPrefix() instead of StringStartsWith() 2015-11-11 15:27:56 +01:00
Max Kellermann a944927b56 util/StringPointer: add method empty() 2015-11-11 15:13:46 +01:00
Max Kellermann b9a8b0d146 util/StringView: add method Literal() 2015-11-06 10:03:45 +01:00
Max Kellermann 4d15db0134 util/StringCompare: use StringView to simplify inline implementations 2015-11-06 10:03:14 +01:00
Max Kellermann 0d1a54262c playlist/soundcloud: make key_str "static const" 2015-11-06 09:52:35 +01:00
Max Kellermann e7ef7f5159 db/update/InotifyQueue: use StringAfterPrefix() 2015-11-06 09:49:39 +01:00
Max Kellermann 3dc989bccb input/alsa: use StringAfterPrefix() 2015-11-06 09:49:22 +01:00
Max Kellermann 75d46efd23 util/UriUtil: use StringAfterPrefix() instead of memcmp() 2015-11-06 09:49:22 +01:00
Max Kellermann b83392cb04 util/UriUtil: move code to SkipUriScheme() 2015-11-06 09:49:22 +01:00
Max Kellermann 7640d333f4 util/UriUtil: make variables more local 2015-11-06 09:49:22 +01:00
Max Kellermann c880099deb util/StringCompare: add StringIsEmpty() 2015-11-06 09:37:07 +01:00
Max Kellermann 42f5ecd4a1 util/StringCompare: use strncmp() instead of memcmp() in StringStartsWith()
Some optimized implementations of memcmp() may not start from the
beginning of the string, and may thus segfault.
2015-11-06 09:24:18 +01:00
Max Kellermann 733989a284 util/StringUtil: move comparison functions to StringCompare.cxx 2015-11-06 09:20:18 +01:00
Max Kellermann 493f74d94d tag/id3: convert path from "wchar_t*" to "char*" for error message 2015-11-06 09:20:18 +01:00
Max Kellermann 3b71e2abef player/Thread: call DecoderCommand::SEEK only on existing decoder
If the decoder was just started, it already seeks to the desired
position.
2015-11-05 00:41:54 +01:00
Max Kellermann 30cad0c5f1 player/Thread: move code to WaitDecoderStartup() 2015-11-05 00:39:30 +01:00
Max Kellermann 3a387643b3 player/Thread: move player_command_finished() to PlayerControl 2015-11-05 00:38:09 +01:00
Max Kellermann e6b37703da player/Thread: copy pc.seek_time in ActivateDecoder()
If this gets called while seeking, do the right thing.  This moves the
elapsed_time setter from method Run(), which is now redundant.
2015-11-05 00:30:04 +01:00
Max Kellermann 990f473bb3 player/Control: initialize seek_time in EnqueueSongLocked()
Allows removing a few special cases in the player thread.
2015-11-05 00:29:03 +01:00
Max Kellermann cf1de78205 player/Thread: remove decoder error check from ActivateDecoder()
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.
2015-10-28 18:24:42 +01:00
Max Kellermann ccea6dd74b player/Thread: rename WaitForDecoder() to ActivateDecoder()
.. and fix its API documentation.
2015-10-28 18:20:48 +01:00
Max Kellermann 166b490eed player/Thread: move code to ForwardDecoderError() 2015-10-27 23:28:13 +01:00
Max Kellermann efd871ad2f player/Thread: clear pc.next_song earlier in WaitForDecoder() 2015-10-27 23:25:50 +01:00
Max Kellermann b78896d64e player/Control: use CANCEL to clear next_song in Seek()
Assigning nullptr to next_song may disrupt the player thread and
render undefined behavior.
2015-10-27 23:09:03 +01:00
Max Kellermann e753c924ef player/Thread: merge the cross_fading flag into enum CrossFadeState 2015-10-27 22:43:46 +01:00
Max Kellermann 9dc7b5a6d9 player/Thread: move ResetCrossFade() calls to where pipes are set
Move ResetCrossFade() to where cross-fading would actually break, to
make the cross-fading state more reliable.
2015-10-27 22:11:56 +01:00
Max Kellermann f5d21c9cdb player/Thread: add method ResetCrossFade() 2015-10-27 22:05:41 +01:00
Max Kellermann 6ce13646da player/Thread: more CrossFadeState documentation 2015-10-27 21:12:20 +01:00
Max Kellermann 151653dd98 player/Thread: automatic CrossFadeState enum values 2015-10-27 21:05:10 +01:00
Max Kellermann 619cfe6a1c player/Thread: move enum CrossFadeState into the Player class 2015-10-27 20:48:14 +01:00
Max Kellermann 8acf996d90 command/queue: add range parameter to plchanges and plchangesposid 2015-10-27 20:35:40 +01:00
Max Kellermann 15e432204e pcm/Order: new library to convert from FLAC to ALSA channel order
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
2015-10-27 11:44:23 +01:00
Max Kellermann 4b1630e1ec AudioFormat: define that channel order follows the FLAC convention
Basic definition to solve http://bugs.musicpd.org/view.php?id=3147 and
http://bugs.musicpd.org/view.php?id=3255
2015-10-27 11:44:23 +01:00