summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-10-28TextInputStream: don't ignore unterminated last lineMax Kellermann
2014-10-26playlist/m3u: recognize the file suffix ".m3u8"Max Kellermann
2014-10-25OutputThread: fall back to PCM if given DSD sample rate is not supportedMax Kellermann
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 Kellermann
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 OBrien
2014-10-25fs/Charset: work around clang's -Wunused-const-variableMax Kellermann
MPD_PATH_MAX_UTF8 is only used by GLib-specific code currently.
2014-10-24OutputThread: close the output plugin after filter failureMax Kellermann
Fixes memory leak because ao_plugin_close() never gets called.
2014-10-24OutputThread: unlock mutex for CloseFilter()Max Kellermann
Be consistent.
2014-10-23output/roar: remove unnecessary "volatile" keywordMax Kellermann
A mutex acts as a memory barrier, and thus "volatile" is not necessary.
2014-10-23pcm/ChannelsConverter: fix variable used to generate error messageMax Kellermann
Use the "_format" parameter instead of the (uninitialized) "format" attribute.
2014-10-23pcm/FormatConverter: move check to Open()Max Kellermann
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 Kellermann
Fixes assertion failure in destructor by not assigning {src,dest}_format when an error occurs.
2014-10-23pcm/PcmConvert: make AudioFormat parameters "const"Max Kellermann
2014-10-19TextInputStream: manually shift the buffer before readingMax Kellermann
Fixes truncated lines in m3u and cue files (regression by commit 67958f7).
2014-10-19util/StaticFifoBuffer: make Shift() publicMax Kellermann
2014-10-17playlist/extm3u: strip first line for #EXTM3U detectionMax Kellermann
2014-10-11ThreadInputStream: call ThreadRead() inside the thread instead of Read()Max Kellermann
Fixes deadlock bug in the "mms" plugin.
2014-10-11ThreadInputStream: add assertionsMax Kellermann
2014-10-11util/DynamicFifoBuffer: make the "Range" type publicMax Kellermann
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 Kellermann
2014-10-10event/IdleMonitor: remove redundant commentMax Kellermann
2014-10-10ZeroconfBonjour: use htons() instead of g_htons()Max Kellermann
2014-10-10TagString: implement fix_utf8() without GLibMax Kellermann
2014-10-10util/UTF8: add SequenceLengthUTF8()Max Kellermann
2014-10-10util/UTF8: new libraryMax Kellermann
2014-10-10TagString: return WritableBuffer<char>Max Kellermann
2014-10-10TagString: use strndup() for unterminated stringMax Kellermann
Fixes buffer overflow bug.
2014-10-10TagString: remove ISO-Latin-1 fallbackMax Kellermann
MPD handles all strings in UTF-8 internally. Those decoders which read Latin-1 tags are supposed to implement the conversion, instead of passing Latin-1 to TagBuilder::AddItem(). FixTagString() is simply the wrong place to do that, and hard-coding Latin-1 is kind of arbitrary.
2014-10-10fs/Traits: use value_typeMax Kellermann
2014-10-10Main: run the OS X native event loopnanotech
2014-10-09storage/nfs: use the libnfs async APIMax Kellermann
Share the NFS connection with the NFS input plugin.
2014-10-09lib/nfs/Connection: reduce Error instance allocationsMax Kellermann
2014-10-09lib/nfs/Glue: add assertionMax Kellermann
2014-10-09StoragePlugin: pass EventLoop to constructorMax Kellermann
2014-10-07storage/nfs: move code to class MemoryStorageDirectoryReaderMax Kellermann
Read all directory entries into memory and close the struct nfsdir before returning the StorageDirectoryReader instance. This is what libnfs does, anyway.
2014-10-07storage/nfs: move code to Copy()Max Kellermann
2014-10-07lib/nfs/Connection: add methods {Open,Read,Close}Directory()Max Kellermann
2014-10-07lib/nfs/Connection: add method Stat(path)Max Kellermann
2014-10-06lib/nfs/Connection: make GetEventLoop() publicMax Kellermann
2014-10-05lib/nfs/Base: kludge to reduce number of NFS mountsMax Kellermann
Creating a NfsStorage sets its own export_name as the "base". Now NfsFileReader can use this information to derive the export_name to be mounted, instead of guessing. This solves the "too many connection" problem on the NFS server while updating the database.
2014-10-02PlaylistStream: use OpenLocalInputStream()Max Kellermann
2014-10-02PlaylistStream: pass Path instance to playlist_open_path()Max Kellermann
Convert filesystem charset to UTF-8 for playlist_list_open_uri(). This fixes one of many remaining charset bugs.
2014-10-02archive/bzip2: use OpenLocalInputStream()Max Kellermann
2014-10-02input/Open: use OpenLocalInputStream()Max Kellermann
Make the "open" method of plugins "file" and "archive" dummy methods that always fail. Instead, let InputStream::Open() hard-code access to these two plugins by using OpenLocalInputStream(). This allows simplifyin the algorithm for falling back to probing archive plugins.
2014-10-02DecoderThread: use OpenLocalInputStream() for local filesMax Kellermann
2014-10-02TagFile: use OpenLocalInputStream()Max Kellermann
2014-10-02input/LocalOpen: new library for opening local filesMax Kellermann
Combines the "file" and the "archive" input plugins.
2014-10-02input/archive: export function OpenArchiveInputStream()Max Kellermann
2014-10-02input/file: export function OpenFileInputStream()Max Kellermann
2014-10-02input/file: generate Error when errno==ENOENTMax Kellermann
This special case was useless. Fixes the dreaded "Unrecognized URI" error message when a file does not exist.