Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | Makefile.am: fix header file names | Max Kellermann | 2014-10-01 | 1 | -4/+7 | |
| | | | | | | | | Found by "make distcheck". | |||||
* | | lib/nfs/FileReader: postpone the nfs_close_async() call | Max Kellermann | 2014-10-01 | 4 | -6/+92 | |
| | | | | | | | | | | | | If an async opertion is in progress, nfs_close_async() will make libnfs crash because the RPC callback will dereference an object that was freed by nfs_close_async(). | |||||
* | | lib/nfs/Connection: fix memory leak when cancelling Open() | Max Kellermann | 2014-10-01 | 2 | -5/+23 | |
| | | | | | | | | Close the newly allocated file handle passed to the callback. | |||||
* | | lib/nfs/Connection: remove Mutex | Max Kellermann | 2014-10-01 | 2 | -18/+12 | |
| | | | | | | | | | | All locks are currenly held from only a single thread (the IOThread) and thus we don't need the Mutex. | |||||
* | | lib/nfs/Connection: add method GetEventLoop() | Max Kellermann | 2014-10-01 | 2 | -1/+5 | |
| | | ||||||
* | | lib/nfs/Connection: remove obsolete flag postponed_destroy | Max Kellermann | 2014-10-01 | 2 | -18/+2 | |
| | | ||||||
* | | lib/nfs/Connection: remove deprecated move constructor workaround | Max Kellermann | 2014-10-01 | 1 | -16/+0 | |
| | | | | | | | | | | Not used anymore because NfsManager now uses boost::intrusive::set instead of std::map. | |||||
* | | storage/nfs: make a few attributes "const" | Max Kellermann | 2014-10-01 | 1 | -3/+3 | |
| | | ||||||
* | | lib/nfs/Manager: use boost::intrusive::map | Max Kellermann | 2014-10-01 | 2 | -37/+78 | |
| | | | | | | | | | | Reduce overhead for storing the key twice, and more overhead while looking up the connection to remove it after a failure. | |||||
* | | lib/nfs/Glue: add assertion | Max Kellermann | 2014-10-01 | 1 | -0/+4 | |
| | | ||||||
* | | lib/nfs/Glue: destruct the NfsManager in the I/O thread | Max Kellermann | 2014-10-01 | 3 | -5/+8 | |
| | | | | | | | | | | This allows eliminating the indirection code from the NfsConnection destructor. | |||||
* | | lib/nfs/Glue: eliminate class NfsGlue | Max Kellermann | 2014-10-01 | 1 | -17/+1 | |
| | | | | | | | | It's just a useless wrapper for class NfsManager. | |||||
* | | lib/nfs/Cancellable: use boost::intrusive::list | Max Kellermann | 2014-10-01 | 3 | -40/+18 | |
| | | | | | | | | | | Reduce Remove() overhead because we don't have to walk the list to find an iterator by reference. | |||||
* | | Tag: support "AlbumSort" | Max Kellermann | 2014-09-29 | 4 | -1/+6 | |
| | | | | | | | | | | The new tag is supported by all decoders that use the tag name table, and the ID3v2 tag "TSOA" maps to it. | |||||
* | | storage/nfs: convert file name to UTF-8 | Max Kellermann | 2014-09-28 | 1 | -8/+30 | |
| | | | | | | | | | | Assume the configured filesystem character set is also used by the NFS server. | |||||
* | | storage/nfs: use string::append() instead of string::insert() | Max Kellermann | 2014-09-28 | 1 | -3/+2 | |
| | | | | | | | | | | Swap the order of adding the URI and the slash, because appending is cheaper than inserting. | |||||
* | | storage/nfs: move code to UriToNfsPath() | Max Kellermann | 2014-09-28 | 1 | -6/+13 | |
| | | ||||||
* | | fs/AllocatedPath: add method Steal() | Max Kellermann | 2014-09-28 | 1 | -0/+8 | |
| | | ||||||
* | | fs/AllocatedPath: API documentation grammar fixes | Max Kellermann | 2014-09-28 | 1 | -5/+5 | |
| | | ||||||
* | | Add MusicBrainz' Release Track Id tag | Wieland Hoffmann | 2014-09-27 | 7 | -1/+14 | |
| | | | | | | | | | | | | | | | | | | | | The Release Track Id uniquely identifies a recording on a release - that is, even if a recording appears twice on a release (meaning that the combination of recording and release id are not enough to figure out which one it is), the release track id will allow differentiating the two. The tag names are taken from https://musicbrainz.org/doc/MusicBrainz_Picard/Tags/Mapping | |||||
* | | pcm: --disable-dsd also disables the dsd2pcm library | Max Kellermann | 2014-09-26 | 3 | -3/+17 | |
| | | ||||||
* | | PcmConvert: eliminate unused local variable "format" | Max Kellermann | 2014-09-26 | 1 | -12/+2 | |
| | | ||||||
* | | output/alsa: change a few "dsd" to "dop" | Max Kellermann | 2014-09-26 | 1 | -4/+4 | |
| | | ||||||
* | | Merge tag 'v0.18.16' | Max Kellermann | 2014-09-26 | 6 | -52/+35 | |
|\| | ||||||
| * | release v0.18.16 | Max Kellermann | 2014-09-26 | 1 | -1/+1 | |
| | | ||||||
| * | configure.ac: fix DSD breakage due to typo | Max Kellermann | 2014-09-26 | 2 | -1/+2 | |
| | | ||||||
| * | configure.ac: prepare for 0.18.16 | Max Kellermann | 2014-09-26 | 2 | -1/+3 | |
| | | ||||||
| * | release v0.18.15 | Max Kellermann | 2014-09-26 | 1 | -1/+1 | |
| | | ||||||
| * | configure.ac: allow building MPD without decoder plugin | Max Kellermann | 2014-09-26 | 1 | -21/+0 | |
| | | | | | | | | | | There's always the "PCM" decoder plugin, which was never checked by configure.ac. | |||||
| * | configure.ac: allow building MPD without output plugin | Max Kellermann | 2014-09-26 | 1 | -21/+0 | |
| | | | | | | | | | | | | MPD can easily be used as a database provider for the proxy database plugin. In that case, it needs only one "null" output, and no real output plugin. | |||||
| * | CommandLine: update copyright year | Max Kellermann | 2014-09-26 | 1 | -2/+2 | |
| | | ||||||
| * | configure.ac: add option to disable the DSD decoders | Max Kellermann | 2014-09-26 | 3 | -6/+29 | |
| | | | | | | | | Allow building a smaller MPD binary for people who don't need DSD. | |||||
| * | playlist/embcue: change name string to "embcue" | Max Kellermann | 2014-09-26 | 1 | -1/+1 | |
| | | | | | | | | The name "cue" was listed twice in "mpd --version". | |||||
| * | test/test_protocol: add missing stdlib.h include | Max Kellermann | 2014-09-24 | 1 | -1/+1 | |
| | | | | | | | | | | EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h, not unistd.h. D'oh! | |||||
* | | decoder/mp4v2: add tag table | Max Kellermann | 2014-09-24 | 1 | -10/+19 | |
| | | ||||||
* | | decoder/mpg123: support ID3v2, ReplayGain and MixRamp | Max Kellermann | 2014-09-24 | 2 | -1/+91 | |
| | | ||||||
* | | decoder/mpg123: make variables more local | Max Kellermann | 2014-09-24 | 1 | -20/+11 | |
| | | ||||||
* | | decoder/flac: pass VorbisComment to flac_parse_mixramp() | Max Kellermann | 2014-09-24 | 3 | -6/+4 | |
| | | ||||||
* | | decoder/flac: move code to tag/MixRamp.cxx | Max Kellermann | 2014-09-24 | 3 | -35/+29 | |
| | | ||||||
* | | decoder/mad: move code to tag/MixRamp.cxx | Max Kellermann | 2014-09-24 | 4 | -5/+96 | |
| | | ||||||
* | | decoder/flac: pass VorbisComment to flac_parse_replay_gain() | Max Kellermann | 2014-09-24 | 3 | -6/+3 | |
| | | ||||||
* | | tag/ReplayGain: add VorbisComment parser | Max Kellermann | 2014-09-24 | 4 | -41/+31 | |
| | | | | | | | | Move code from the Vorbis and FLAC decoder plugins. | |||||
* | | tag/ReplayGain: move code to template function | Max Kellermann | 2014-09-24 | 1 | -8/+30 | |
| | | ||||||
* | | decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxx | Max Kellermann | 2014-09-24 | 5 | -24/+79 | |
| | | ||||||
* | | tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxx | Max Kellermann | 2014-09-24 | 5 | -27/+83 | |
| | | ||||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-09-24 | 7 | -8/+48 | |
|\| | ||||||
| * | test/test_protocol: add missing unistd.h include | Max Kellermann | 2014-09-24 | 1 | -0/+2 | |
| | | ||||||
| * | OutputThread: retain negative mix ratio | Max Kellermann | 2014-09-18 | 2 | -1/+11 | |
| | | | | | | | | Fixes MixRamp breakage. | |||||
| * | command/list: reset used size after the list has been processed | Andrzej Rybczak | 2014-09-18 | 2 | -0/+3 | |
| | | ||||||
| * | thread/Posix{Cond,Mutex}: don't ues PTHREAD_*_INITIALIZER on NetBSD | Max Kellermann | 2014-09-13 | 4 | -1/+30 | |
| | | | | | | | | | | | | | | | | | | | | On NetBSD, PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER are not compatible with C++11 "constexpr" (see Mantis ticket 0004110). As a workaround, don't ues "constexpr", and use the functions pthread_mutex_init(), pthread_mutex_destroy(), pthread_cond_init() and pthread_cond_destroy() instead. This adds some runtime overhead, but is portable to POSIX implementations that have awkward initializer macros. |