Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | input/file: export function OpenFileInputStream() | Max Kellermann | 2014-10-02 | 2 | -13/+37 | |
| | | ||||||
* | | input/file: generate Error when errno==ENOENT | Max Kellermann | 2014-10-02 | 1 | -1/+1 | |
| | | | | | | | | | | This special case was useless. Fixes the dreaded "Unrecognized URI" error message when a file does not exist. | |||||
* | | input/file: make the "fd" attribute "const" | Max Kellermann | 2014-10-02 | 1 | -1/+1 | |
| | | ||||||
* | | input/file: make variables more local | Max Kellermann | 2014-10-02 | 1 | -6/+3 | |
| | | ||||||
* | | storage: remove redundant "virtual" keywords | Max Kellermann | 2014-10-02 | 5 | -38/+34 | |
| | | | | | | | | "override" implies "virtual". | |||||
* | | input/file: convert to class | Max Kellermann | 2014-10-02 | 1 | -1/+2 | |
| | | ||||||
* | | storage/Interface: include cleanup | Max Kellermann | 2014-10-01 | 7 | -2/+11 | |
| | | ||||||
* | | 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 | 3 | -0/+5 | |
| | | | | | | | | | | 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 | 5 | -0/+11 | |
| | | | | | | | | | | | | | | | | | | | | 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 | 2 | -1/+11 | |
| | | ||||||
* | | 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 | 2 | -1/+3 | |
|\| | ||||||
| * | 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 | 1 | -0/+2 | |
| | | | | | | | | 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". | |||||
* | | 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 | 1 | -1/+90 | |
| | | ||||||
* | | 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 | 3 | -5/+95 | |
| | | ||||||
* | | 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 | 4 | -24/+78 | |
| | | ||||||
* | | tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxx | Max Kellermann | 2014-09-24 | 4 | -27/+82 | |
| | | ||||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-09-24 | 5 | -8/+40 | |
|\| | ||||||
| * | OutputThread: retain negative mix ratio | Max Kellermann | 2014-09-18 | 1 | -1/+10 | |
| | | | | | | | | Fixes MixRamp breakage. | |||||
| * | command/list: reset used size after the list has been processed | Andrzej Rybczak | 2014-09-18 | 1 | -0/+1 | |
| | | ||||||
| * | thread/Posix{Cond,Mutex}: don't ues PTHREAD_*_INITIALIZER on NetBSD | Max Kellermann | 2014-09-13 | 3 | -1/+29 | |
| | | | | | | | | | | | | | | | | | | | | 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. | |||||
* | | CommandLine: make all OptionDefs "constexpr" | Max Kellermann | 2014-09-22 | 1 | -9/+9 | |
| | | ||||||
* | | DecoderBuffer: struct to class | Max Kellermann | 2014-09-22 | 1 | -1/+2 | |
| | |