aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-11-08tag/Set: do AlbumArtist/Artist fallback only if AlbumArtist is not disabledMax Kellermann1-0/+2
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.
2014-11-08db/Count: include cleanupMax Kellermann1-1/+1
2014-11-07decoder/ffmpeg: support opusMax Kellermann1-1/+2
2014-11-07db/upnp: fix valgrind warningMax Kellermann1-0/+1
2014-11-07lib/upnp/ContentDirectoryService: swap uri_apply_base() parametersMax Kellermann1-1/+1
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.
2014-11-07input/AsyncInputStream: set Error when seeking unseekableMax Kellermann1-1/+4
Fixes crash in the "audiofile" decoder while logging the seek error.
2014-11-07input/Open: expose input_domainMax Kellermann3-2/+52
2014-11-02input/curl: forget Content-Length (and more) after redirectMax Kellermann1-0/+26
Fixes playback of redirected streams.
2014-11-02AsyncInputStream: add method ClearTag()Max Kellermann1-0/+4
2014-11-02InputStream: add method ClearMimeType()Max Kellermann1-0/+4
2014-11-02input/curl: fix curl_easy_setopt() parameter typesMax Kellermann1-4/+4
2014-11-02Decoder, Playlist: ignore URI query string for plugin detectionMax Kellermann2-6/+8
Use the new uri_get_suffix() overload that removes the query string.
2014-11-02util/UriUtil: add uri_get_suffix() overload that ignores query stringMax Kellermann2-0/+28
2014-11-02PlaylistFile: don't allow empty playlist nameMax Kellermann1-0/+4
2014-11-02playlist/m3u: recognize the file suffix ".m3u8"Max Kellermann2-1/+3
2014-11-02decoder/faad: remove workaround for ancient libfaad2 ABI bugMax Kellermann1-10/+2
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!
2014-11-02decoder/ffmpeg: recognize MIME type audio/aacpSteven OBrien1-0/+1
2014-11-02output/roar: remove unnecessary "volatile" keywordMax Kellermann1-1/+1
A mutex acts as a memory barrier, and thus "volatile" is not necessary.
2014-11-02TagString: use g_strndup() for unterminated stringMax Kellermann1-1/+1
Fixes buffer overflow bug.
2014-11-02lib/upnp/Discovery: add missing stdlib.h includeMax Kellermann1-0/+1
2014-11-01input/curl: fix curl_easy_setopt() parameter typesMax Kellermann1-3/+3
2014-11-01Decoder, Playlist: ignore URI query string for plugin detectionMax Kellermann3-5/+10
Use the new uri_get_suffix() overload that removes the query string.
2014-11-01util/UriUtil: add uri_get_suffix() overload that ignores query stringMax Kellermann2-0/+28
2014-10-31Main: run the OS X native event loop after forkingNanoTech1-0/+27
2014-10-31Revert "Main: run the OS X native event loop"NanoTech3-50/+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.
2014-10-31PlaylistFile: don't allow empty playlist nameMax Kellermann1-0/+4
2014-10-28decoder/mad: fix negative replay gain valuesMax Kellermann1-1/+1
Negating an unsigned integer does not work.
2014-10-28TextInputStream: don't ignore unterminated last lineMax Kellermann1-4/+16
2014-10-26playlist/m3u: recognize the file suffix ".m3u8"Max Kellermann2-0/+2
2014-10-25OutputThread: fall back to PCM if given DSD sample rate is not supportedMax Kellermann1-0/+30
Works around the "PCM conversion from f to dsd is not implemented" error message that prevents DSD playback.
2014-10-25decoder/faad: remove workaround for ancient libfaad2 ABI bugMax Kellermann2-20/+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!
2014-10-25decoder/ffmpeg: recognize MIME type audio/aacpSteven OBrien1-0/+1
2014-10-25fs/Charset: work around clang's -Wunused-const-variableMax Kellermann1-1/+2
MPD_PATH_MAX_UTF8 is only used by GLib-specific code currently.
2014-10-24OutputThread: close the output plugin after filter failureMax Kellermann1-0/+1
Fixes memory leak because ao_plugin_close() never gets called.
2014-10-24OutputThread: unlock mutex for CloseFilter()Max Kellermann2-0/+14
Be consistent.
2014-10-23output/roar: remove unnecessary "volatile" keywordMax Kellermann1-1/+1
A mutex acts as a memory barrier, and thus "volatile" is not necessary.
2014-10-23pcm/ChannelsConverter: fix variable used to generate error messageMax Kellermann1-1/+1
Use the "_format" parameter instead of the (uninitialized) "format" attribute.
2014-10-23pcm/FormatConverter: move check to Open()Max Kellermann1-10/+24
Report unsupported format while opening the filter, not later when the first conversion takes place.
2014-10-23pcm/PcmConvert: assign {src,dest}_format at the endMax Kellermann1-12/+13
Fixes assertion failure in destructor by not assigning {src,dest}_format when an error occurs.
2014-10-23pcm/PcmConvert: make AudioFormat parameters "const"Max Kellermann1-1/+1
2014-10-19TextInputStream: manually shift the buffer before readingMax Kellermann1-0/+2
Fixes truncated lines in m3u and cue files (regression by commit 67958f7).
2014-10-19util/StaticFifoBuffer: make Shift() publicMax Kellermann1-2/+0
2014-10-17playlist/extm3u: strip first line for #EXTM3U detectionMax Kellermann1-2/+6
2014-10-11ThreadInputStream: call ThreadRead() inside the thread instead of Read()Max Kellermann1-1/+1
Fixes deadlock bug in the "mms" plugin.
2014-10-11ThreadInputStream: add assertionsMax Kellermann1-0/+8
2014-10-11util/DynamicFifoBuffer: make the "Range" type publicMax Kellermann1-0/+1
Export it from the protected base class. This fixes a build failure on Mac OS X.
2014-10-10db/upnp/Util: move caturl() to util/UriUtil.cxxMax Kellermann6-32/+39
2014-10-10event/IdleMonitor: remove redundant commentMax Kellermann1-2/+1
2014-10-10ZeroconfBonjour: use htons() instead of g_htons()Max Kellermann1-3/+3
2014-10-10TagString: implement fix_utf8() without GLibMax Kellermann1-22/+34