Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | | tag/Set: do AlbumArtist/Artist fallback only if AlbumArtist is not disabled | Max Kellermann | 2014-11-08 | 2 | -0/+4 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On "list albumartist", songs that have no AlbumArtist tag will use the Artist tag. However, if AlbumArtist is disabled via "metadata_to_use", the TagBuilder::AddItem() call is ignored, and PrintUniqueTag() attempts to print a nullptr string. This commit fixes the problem by attempting the fallback only if AlbumArtist is not disabled. | |||||
| * | | db/Count: include cleanup | Max Kellermann | 2014-11-08 | 1 | -1/+1 | |
| | | | ||||||
* | | | db/upnp/Directory: TitleToPathSegment() returns rvalue reference | Max Kellermann | 2014-11-09 | 1 | -2/+2 | |
| | | | | | | | | | | | | Eliminate one implicit std::string copy. | |||||
* | | | db/upnp/Directory: apply coding style | Max Kellermann | 2014-11-09 | 1 | -23/+23 | |
| | | | ||||||
* | | | db/upnp/Directory: move checkobjok() to class UPnPDirObject | Max Kellermann | 2014-11-08 | 2 | -11/+9 | |
| | | | ||||||
* | | | db/upnp/Object: apply coding style | Max Kellermann | 2014-11-08 | 3 | -21/+28 | |
| | | | ||||||
* | | | Merge branch 'v0.19.x' | Max Kellermann | 2014-11-07 | 9 | -5/+68 | |
|\| | | ||||||
| * | | decoder/ffmpeg: support opus | Max Kellermann | 2014-11-07 | 2 | -1/+3 | |
| | | | ||||||
| * | | db/upnp: fix valgrind warning | Max Kellermann | 2014-11-07 | 1 | -0/+1 | |
| | | | ||||||
| * | | lib/upnp/ContentDirectoryService: swap uri_apply_base() parameters | Max Kellermann | 2014-11-07 | 2 | -1/+3 | |
| | | | | | | | | | | | | | | | | | | When uri_apply_base() was moved from db/upnp/Util.cpp to util/UriUtil.cpp, the parameter order was changed, however without swapping the parameters in the ContentDirectoryService constructor. | |||||
| * | | input/AsyncInputStream: set Error when seeking unseekable | Max Kellermann | 2014-11-07 | 2 | -1/+6 | |
| | | | | | | | | | | | | Fixes crash in the "audiofile" decoder while logging the seek error. | |||||
| * | | input/Open: expose input_domain | Max Kellermann | 2014-11-07 | 4 | -2/+53 | |
| | | | ||||||
| * | | configure.ac: prepare for 0.19.3 | Max Kellermann | 2014-11-04 | 2 | -2/+4 | |
| | | | ||||||
* | | | Merge tag 'v0.19.2' | Max Kellermann | 2014-11-02 | 24 | -116/+201 | |
|\| | | ||||||
| * | | release v0.19.2 | Max Kellermann | 2014-11-02 | 1 | -1/+1 | |
| | | | ||||||
| * | | Merge tag 'v0.18.17' into v0.19.x | Max Kellermann | 2014-11-02 | 1 | -1/+1 | |
| |\| | ||||||
| | * | release v0.18.17 | Max Kellermann | 2014-11-02 | 1 | -1/+1 | |
| | | | ||||||
| * | | input/curl: forget Content-Length (and more) after redirect | Max Kellermann | 2014-11-02 | 2 | -0/+28 | |
| | | | | | | | | | | | | Fixes playback of redirected streams. | |||||
| * | | AsyncInputStream: add method ClearTag() | Max Kellermann | 2014-11-02 | 1 | -0/+4 | |
| | | | ||||||
| * | | InputStream: add method ClearMimeType() | Max Kellermann | 2014-11-02 | 1 | -0/+4 | |
| | | | ||||||
| * | | Merge branch 'v0.18.x' into v0.19.x | Max Kellermann | 2014-11-02 | 2 | -1/+10 | |
| |\| | ||||||
| | * | input/curl: fix curl_easy_setopt() parameter types | Max Kellermann | 2014-11-02 | 1 | -4/+4 | |
| | | | ||||||
| | * | Decoder, Playlist: ignore URI query string for plugin detection | Max Kellermann | 2014-11-02 | 3 | -6/+9 | |
| | | | | | | | | | | | | Use the new uri_get_suffix() overload that removes the query string. | |||||
| | * | util/UriUtil: add uri_get_suffix() overload that ignores query string | Max Kellermann | 2014-11-02 | 3 | -0/+47 | |
| | | | ||||||
| | * | PlaylistFile: don't allow empty playlist name | Max Kellermann | 2014-11-02 | 2 | -0/+5 | |
| | | | ||||||
| | * | playlist/m3u: recognize the file suffix ".m3u8" | Max Kellermann | 2014-11-02 | 3 | -1/+5 | |
| | | | ||||||
| | * | decoder/faad: remove workaround for ancient libfaad2 ABI bug | Max Kellermann | 2014-11-02 | 3 | -40/+4 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many years ago, FAAD had a serious ABI bug: the NeAACDecInit() prototype in its header declared the "samplerate" parameter to be "unsigned long *", but internally, the function assumed it was "uint32_t *" instead. On 32 bit machines, that was no difference, but on 64 bit, this left one portion of the return value uninitialized; and worse, on big-endian, the wrong word was filled. This bug had to be worked around in MPD (commit 9c4e97a6). A few months later, the bug was fixed in the FAAD CVS in commit 1.117 on file libfaad/decoder.c; the commit message was: "Use public headers internally to prevent duplicate declarations" The commit message was too brief at best; the problem was not duplicate declarations, but a prototype mismatch. No mention of the bug fix in the ChangeLog. The MPD project never learned about this bug fix, and so MPD would always pass a "uin32_t *" dressed up as a "unsigned long *". Nearly 6 years later, it's about time to fix this second ABI problem. Let's kill the workaround! | |||||
| | * | decoder/ffmpeg: recognize MIME type audio/aacp | Steven OBrien | 2014-11-02 | 2 | -0/+3 | |
| | | | ||||||
| | * | configure.ac: show DSD in result | Max Kellermann | 2014-11-02 | 1 | -0/+1 | |
| | | | ||||||
| | * | output/roar: remove unnecessary "volatile" keyword | Max Kellermann | 2014-11-02 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | A mutex acts as a memory barrier, and thus "volatile" is not necessary. | |||||
| | * | TagString: use g_strndup() for unterminated string | Max Kellermann | 2014-11-02 | 1 | -1/+1 | |
| | | | | | | | | | | | | Fixes buffer overflow bug. | |||||
| | * | configure.ac: prepare for 0.18.17 | Max Kellermann | 2014-11-02 | 2 | -2/+4 | |
| | | | ||||||
| * | | lib/upnp/Discovery: add missing stdlib.h include | Max Kellermann | 2014-11-02 | 1 | -0/+1 | |
| | | | ||||||
| * | | input/curl: fix curl_easy_setopt() parameter types | Max Kellermann | 2014-11-01 | 1 | -3/+3 | |
| | | | ||||||
| * | | Decoder, Playlist: ignore URI query string for plugin detection | Max Kellermann | 2014-11-01 | 4 | -5/+11 | |
| | | | | | | | | | | | | Use the new uri_get_suffix() overload that removes the query string. | |||||
| * | | util/UriUtil: add uri_get_suffix() overload that ignores query string | Max Kellermann | 2014-11-01 | 3 | -0/+47 | |
| | | | ||||||
| * | | Main: run the OS X native event loop after forking | NanoTech | 2014-10-31 | 1 | -0/+27 | |
| | | | ||||||
| * | | Revert "Main: run the OS X native event loop" | NanoTech | 2014-10-31 | 4 | -51/+0 | |
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f0be48ff90503d9ffa5b295fd4454eec753950ee (except for the NEWS entry). If libdispatch (GCD) is used before forking, it can't safely be used again after forking. | |||||
| * | | PlaylistFile: don't allow empty playlist name | Max Kellermann | 2014-10-31 | 2 | -0/+5 | |
| | | | ||||||
| * | | decoder/mad: fix negative replay gain values | Max Kellermann | 2014-10-28 | 2 | -1/+2 | |
| | | | | | | | | | | | | Negating an unsigned integer does not work. | |||||
| * | | TextInputStream: don't ignore unterminated last line | Max Kellermann | 2014-10-28 | 2 | -4/+17 | |
| | | | ||||||
| * | | playlist/m3u: recognize the file suffix ".m3u8" | Max Kellermann | 2014-10-26 | 3 | -0/+4 | |
| | | | ||||||
| * | | OutputThread: fall back to PCM if given DSD sample rate is not supported | Max Kellermann | 2014-10-25 | 2 | -0/+31 | |
| | | | | | | | | | | | | | | | Works around the "PCM conversion from f to dsd is not implemented" error message that prevents DSD playback. | |||||
| * | | decoder/faad: remove workaround for ancient libfaad2 ABI bug | Max Kellermann | 2014-10-25 | 4 | -50/+6 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many years ago, FAAD had a serious ABI bug: the NeAACDecInit() prototype in its header declared the "samplerate" parameter to be "unsigned long *", but internally, the function assumed it was "uint32_t *" instead. On 32 bit machines, that was no difference, but on 64 bit, this left one portion of the return value uninitialized; and worse, on big-endian, the wrong word was filled. This bug had to be worked around in MPD (commit 9c4e97a6). A few months later, the bug was fixed in the FAAD CVS in commit 1.117 on file libfaad/decoder.c; the commit message was: "Use public headers internally to prevent duplicate declarations" The commit message was too brief at best; the problem was not duplicate declarations, but a prototype mismatch. No mention of the bug fix in the ChangeLog. The MPD project never learned about this bug fix, and so MPD would always pass a "uin32_t *" dressed up as a "unsigned long *". Nearly 6 years later, it's about time to fix this second ABI problem. Let's kill the workaround! | |||||
* | | | AllCommands: "commands" returns playlist commands only if playlist_directory ↵ | Max Kellermann | 2014-10-25 | 4 | -0/+25 | |
| | | | | | | | | | | | | configured | |||||
* | | | SongSticker, playlist/soundcloud: add missing stdlib.h include | Max Kellermann | 2014-10-25 | 2 | -0/+2 | |
| | | | | | | | | | | | | For free(). | |||||
* | | | SongSticker: don't use GLib | Max Kellermann | 2014-10-25 | 2 | -6/+3 | |
| | | | ||||||
* | | | decoder/wavpack: don't use GLib | Max Kellermann | 2014-10-25 | 2 | -5/+3 | |
| | | | ||||||
* | | | playlist/SoundCloud: don't use GLib for string allocation | Max Kellermann | 2014-10-25 | 2 | -33/+31 | |
| | | | ||||||
* | | | Util/Alloc: add xstrcatdup(), replacing g_strconcat() | Max Kellermann | 2014-10-25 | 2 | -0/+82 | |
| | | |