Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | db/proxy: support empty values in VisitUniqueTags() | Max Kellermann | 2014-09-18 | 1 | -0/+9 | |
| | | | | | | | | Workaround for assertion failure in PrintUniqueTag(). | |||||
* | | android/Bridge: add shutdown() | Thomas Guillem | 2014-09-16 | 1 | -0/+9 | |
| | | | | | | | | Break the mainloop and terminate run call. | |||||
* | | CurlInputPlugin: fix crash after second init call | Thomas Guillem | 2014-09-16 | 1 | -0/+1 | |
| | | | | | | | | | | The second time init was called, http_200_aliases pointed to a freed pointer and leaded to a SEGFAULT. | |||||
* | | Merge tag 'v0.18.14' | Max Kellermann | 2014-09-11 | 5 | -3/+33 | |
|\| | ||||||
| * | decoder/ffmpeg: use memset() to initialize AVProbeData | Max Kellermann | 2014-09-09 | 1 | -0/+6 | |
| | | ||||||
| * | decoder/ffmpeg: pass MIME type to ffmpeg/libav version 11 | Max Kellermann | 2014-09-07 | 1 | -0/+7 | |
| | | | | | | | | | | | | | | That attribute was uninitialized before, which could crash libavformat. See Debian bug 760669 | |||||
| * | Decoder*: add more assertions | Max Kellermann | 2014-09-07 | 2 | -0/+7 | |
| | | ||||||
| * | DecoderThread: clear the pipe when handling late SEEK | Max Kellermann | 2014-09-07 | 1 | -1/+11 | |
| | | | | | | | | | | See code comment. Fixes assertion failure in decoder_command_finished(). | |||||
| * | decoder/audiofile: fix crash after seeking | Max Kellermann | 2014-09-06 | 1 | -1/+1 | |
| | | | | | | | | | | | | Log call was added to the wrong branch. Fixes regression by commit ca1a1149 | |||||
| * | protocol/ArgParser: fix integer overflow in parse_range() | Max Kellermann | 2014-09-04 | 1 | -2/+2 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | Casting std::numeric_limits<unsigned>::max() to "long" leads to an overflow if sizeof(unsigned)==sizeof(long), and the result will be -1. This happens on some 32 bit architectures, for example ARM and WIN32. Workaround: use std::numeric_limits<int>::max(), which is the largest signed integer. Since sizeof(long)>=sizeof(int), this will never overflow. Fixes Mantis ticket 0004080. | |||||
* | | output/pulse: simplify _wait_for_operation() | Max Kellermann | 2014-09-05 | 1 | -6/+3 | |
| | | | | | | | | Eliminate the duplicate pa_operation_get_state() call. | |||||
* | | input/nfs: auto-reconnect if failed while paused | Max Kellermann | 2014-09-02 | 1 | -1/+46 | |
| | | ||||||
* | | input/async: add method IsPaused() | Max Kellermann | 2014-09-02 | 1 | -0/+4 | |
| | | ||||||
* | | nfs/Connection: check for disappearing libnfs socket | Max Kellermann | 2014-08-31 | 1 | -0/+18 | |
| | | ||||||
* | | nfs/Connection: use only BroadcastError() | Max Kellermann | 2014-08-31 | 1 | -4/+1 | |
| | | | | | | | | | | Since BroadcastError() calls BroadcastMountError(), there's no need to check mount_finished here. | |||||
* | | nfs/Connection: nfs_get_fd() can return -1 | Max Kellermann | 2014-08-31 | 1 | -0/+3 | |
| | | | | | | | | | | While reconnecting to the NFS server, the socket is -1, because there is no socket. Fixes a potential crash (assertion failure). | |||||
* | | input/nfs: notify client on error | Max Kellermann | 2014-08-31 | 1 | -0/+2 | |
| | | | | | | | | Fixes hanging NFS client. | |||||
* | | nfs/Connection: use nfs_get_error() for mount error | Max Kellermann | 2014-08-31 | 1 | -2/+3 | |
| | | ||||||
* | | nfs/Connection: fix assertion failure | Max Kellermann | 2014-08-31 | 1 | -1/+3 | |
| | | ||||||
* | | output/alsa, pcm: rename "DSD over USB" to "DoP" | Max Kellermann | 2014-08-31 | 5 | -50/+50 | |
| | | | | | | | | | | The standard has been renamed since the early draft that was implemented in MPD. | |||||
* | | Merge tag 'v0.18.13' | Max Kellermann | 2014-08-31 | 4 | -9/+39 | |
|\| | ||||||
| * | PlaylistControl: use SeekSongOrder(current) to keep current song | Max Kellermann | 2014-08-31 | 1 | -1/+1 | |
| | | | | | | | | | | | | The "current" attribute is a "song order", not a "song position". This is usually the same - except in random mode. Fixes Mantis ticket 0004073. | |||||
| * | PlaylistControl: move code to new method SeekSongOrder() | Max Kellermann | 2014-08-31 | 2 | -7/+19 | |
| | | ||||||
| * | output/alsa: fix endless loop at end of file in dsd_usb mode | Max Kellermann | 2014-08-31 | 1 | -0/+9 | |
| | | ||||||
| * | output/{alsa,oss}: add assertions | Max Kellermann | 2014-08-31 | 2 | -0/+6 | |
| | | ||||||
| * | decoder/gme: fix song duration | Max Kellermann | 2014-08-29 | 1 | -1/+1 | |
| | | | | | | | | The unit of gme_info_t::length is milliseconds, not centiseconds. | |||||
* | | DecoderAPI: use std::min() | Max Kellermann | 2014-08-31 | 1 | -3/+1 | |
| | | ||||||
* | | MusicChunk: remove special case for num_frames==0 | Max Kellermann | 2014-08-31 | 2 | -6/+1 | |
| | | | | | | | | Simply return an empty WritableBuffer, not a nulled one. | |||||
* | | MusicChunk: copy AudioFormat only when chunk is empty | Max Kellermann | 2014-08-31 | 1 | -4/+4 | |
| | | ||||||
* | | PlaylistMapper: pass the Storage::MapUTF() result to playlist_open_remote() | Max Kellermann | 2014-08-30 | 1 | -1/+1 | |
| | | | | | | | | | | Finally allows loading playlist files on a storage plugin. Commit 297e2747 attempted to implement this, but failed due to this bug. | |||||
* | | decoder/sndfile: refactor frame_to_time() | Max Kellermann | 2014-08-30 | 1 | -8/+6 | |
| | | ||||||
* | | *: add missing Compiler.h includes | Max Kellermann | 2014-08-30 | 21 | -0/+21 | |
| | | | | | | | | Necessary for "final" on gcc 4.6. | |||||
* | | Chrono: workaround for gcc 4.6 constexpr problems | Max Kellermann | 2014-08-30 | 1 | -4/+15 | |
| | | ||||||
* | | PlayerControl: make settings "const" | Max Kellermann | 2014-08-30 | 1 | -2/+2 | |
| | | ||||||
* | | PlayerControl: update include guard | Max Kellermann | 2014-08-30 | 1 | -2/+2 | |
| | | ||||||
* | | output/alsa: fix signed/unsigned comparison warning | Max Kellermann | 2014-08-30 | 1 | -1/+1 | |
| | | ||||||
* | | db/simple: fix build failure without zlib | Max Kellermann | 2014-08-30 | 1 | -1/+4 | |
| | | ||||||
* | | ArgParser: allow fractional seconds in ParseCommandArg(SongTime) | Max Kellermann | 2014-08-29 | 1 | -4/+4 | |
| | | ||||||
* | | CrossFade: pass total_time as SignedSongTime instance | Max Kellermann | 2014-08-29 | 3 | -4/+7 | |
| | | ||||||
* | | db/Stats: use std::chrono::duration for the total duration | Max Kellermann | 2014-08-29 | 4 | -6/+11 | |
| | | | | | | | | Use milliseconds precision to reduce rounding errors. | |||||
* | | db/upnp: use DatabaseStats::Clear() | Max Kellermann | 2014-08-29 | 1 | -4/+1 | |
| | | ||||||
* | | db/Count: use std::chrono::duration for the total time | Max Kellermann | 2014-08-29 | 1 | -6/+9 | |
| | | | | | | | | Use milliseconds precision to reduce rounding errors. | |||||
* | | TagHandler: pass SongTime to duration() | Max Kellermann | 2014-08-29 | 22 | -66/+81 | |
| | | ||||||
* | | DecoderAPI: pass SignedSongTime to decoder_initialized() | Max Kellermann | 2014-08-29 | 25 | -130/+157 | |
| | | ||||||
* | | Chrono: add methods FromScale() | Max Kellermann | 2014-08-29 | 1 | -0/+24 | |
| | | ||||||
* | | Chrono: rename ToScale() parameter | Max Kellermann | 2014-08-29 | 1 | -4/+4 | |
| | | ||||||
* | | decoder/faad: bit_rate==0 is an error | Max Kellermann | 2014-08-29 | 1 | -4/+4 | |
| | | ||||||
* | | MusicChunk: use SignedSongTime for the time stamp | Max Kellermann | 2014-08-29 | 5 | -10/+12 | |
| | | ||||||
* | | MultipleOutputs: use SignedSongTime for elapsed_time | Max Kellermann | 2014-08-29 | 3 | -10/+11 | |
| | | ||||||
* | | PlayerThread: use SongTime for elapsed_time | Max Kellermann | 2014-08-29 | 5 | -17/+17 | |
| | |