Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | decoder/ffmpeg: make the tag_table constexpr | Max Kellermann | 2014-12-09 | 1 | -1/+1 |
| | |||||
* | configure.ac: use MPD_ENABLE_AUTO_LIB for libfaad | Max Kellermann | 2014-12-09 | 1 | -1/+1 |
| | |||||
* | configure.ac: add macro MPD_ENABLE_AUTO_LIB | Max Kellermann | 2014-12-09 | 1 | -1/+1 |
| | |||||
* | Merge tag 'v0.19.6' | Max Kellermann | 2014-12-08 | 1 | -0/+5 |
|\ | |||||
| * | Merge tag 'v0.18.20' into v0.19.x | Max Kellermann | 2014-12-08 | 1 | -0/+5 |
| |\ | |||||
| | * | decoder/ffmpeg: support FFmpeg 2.5 | Max Kellermann | 2014-12-08 | 1 | -0/+5 |
| | | | | | | | | | | | | | | | | | | Version 2.5 fixed an API oddity, however it broke API compatibility, at least with C++. Disable the workaround when a libavformat version is detected that is recent enough. | ||||
| | * | decoder/ffmpeg: support opus | Max Kellermann | 2014-11-10 | 1 | -1/+2 |
| | | | |||||
| | * | decoder/faad: remove workaround for ancient libfaad2 ABI bug | Max Kellermann | 2014-11-02 | 1 | -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! | ||||
| | * | decoder/ffmpeg: recognize MIME type audio/aacp | Steven OBrien | 2014-11-02 | 1 | -0/+1 |
| | | | |||||
* | | | playlist, InotifySource, ...: update GLib comments | Max Kellermann | 2014-12-04 | 1 | -2/+2 |
| | | | |||||
* | | | decoder/sidplay: pass SidTuneMod to get_song_length() | Max Kellermann | 2014-12-04 | 1 | -14/+9 |
| | | | | | | | | | | | | Eliminate duplicate SidTune construction. | ||||
* | | | decoder/sidplay: simplify the SidDatabase::length() call | Max Kellermann | 2014-12-04 | 1 | -4/+2 |
| | | | |||||
* | | | decoder/sidplay: include cleanup | Max Kellermann | 2014-12-04 | 1 | -2/+0 |
| | | | |||||
* | | | decoder/sidplay: use class SidDatabase | Max Kellermann | 2014-12-04 | 1 | -51/+11 |
| | | | | | | | | | | | | Remove our own songlength database parser. | ||||
* | | | decoder/sidplay: use config_param::GetBlockPath() | Max Kellermann | 2014-12-04 | 1 | -7/+12 |
| | | | |||||
* | | | decoder/sidplay: make "songlength_file" local | Max Kellermann | 2014-12-04 | 1 | -2/+1 |
| | | | |||||
* | | | decoder/sidplay: pass parsed path to get_song_length() | Max Kellermann | 2014-12-04 | 1 | -4/+3 |
| | | | | | | | | | | | | Eliminates duplicate ParseContainerPath() call. | ||||
* | | | decoder/sidplay: merge get_container_name() and get_song_num() | Max Kellermann | 2014-12-04 | 1 | -50/+38 |
| | | | |||||
* | | | util/SplitString: rename to DivideString | Max Kellermann | 2014-12-03 | 2 | -4/+4 |
| | | | |||||
* | | | decoder/gme: simplify ParseContainerPath() | Max Kellermann | 2014-12-02 | 1 | -32/+27 |
| | | | | | | | | | | | | | | | Use simple string and path parsing functions instead of GLib's g_pattern_match(), which was used in a very clumsy way. | ||||
* | | | decoder/gme: merge get_container_name() and get_song_num() | Max Kellermann | 2014-12-02 | 1 | -54/+28 |
| | | | | | | | | | | | | There is duplicate code in the two. | ||||
* | | | decoder/gme: get_song_num() returns unsigned | Max Kellermann | 2014-12-01 | 1 | -6/+9 |
| | | | |||||
* | | | decoder/gme: move code to ScanMusicEmu() | Max Kellermann | 2014-12-01 | 1 | -14/+22 |
| | | | |||||
* | | | decoder/gme: move code to ScanGmeInfo() | Max Kellermann | 2014-12-01 | 1 | -34/+42 |
| | | | |||||
* | | | Merge tag 'v0.19.5' | Max Kellermann | 2014-11-26 | 3 | -359/+0 |
|\| | | |||||
| * | | decoder/mp4v2: remove because of incompatible license | Max Kellermann | 2014-11-25 | 3 | -359/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | libmp4v2 is licensed under MPL 1.1, which is incompatible with GPLv2. Unfortunately, this means that we must remove the plugin. More information can be found in the Debian bug report: http://bugs.debian.org/767504 | ||||
* | | | Merge branch 'v0.19.x' | Max Kellermann | 2014-11-24 | 2 | -3/+3 |
|\| | | |||||
| * | | decoder/{dsdiff,dsf,opus}: fix deadlock while seeking | Max Kellermann | 2014-11-24 | 2 | -3/+3 |
| | | | |||||
* | | | configure.ac: add macro MPD_ENABLE_AUTO_PKG_LIB | Max Kellermann | 2014-11-22 | 5 | -17/+17 |
| | | | |||||
* | | | configure.ac: add macro MPD_ENABLE_AUTO_PKG | Max Kellermann | 2014-11-21 | 1 | -10/+8 |
| | | | | | | | | | | | | Simplify the definition of many build options. | ||||
* | | | Merge tag 'v0.19.4' | Max Kellermann | 2014-11-18 | 1 | -0/+7 |
|\| | | |||||
| * | | decoder/opus: add MIME types audio/ogg and application/ogg | Max Kellermann | 2014-11-12 | 1 | -0/+7 |
| | | | |||||
* | | | Merge tag 'v0.19.3' | Max Kellermann | 2014-11-11 | 2 | -19/+68 |
|\| | | |||||
| * | | decoder/opus: support chained streams | Max Kellermann | 2014-11-11 | 1 | -1/+36 |
| | | | |||||
| * | | decoder/opus: move code to HandleEOS() | Max Kellermann | 2014-11-11 | 1 | -1/+8 |
| | | | |||||
| * | | decoder/opus: improved error logging | Max Kellermann | 2014-11-11 | 1 | -4/+11 |
| | | | |||||
| * | | decoder/opus: fix mistyped LoadEOSPacket() return value | Max Kellermann | 2014-11-11 | 1 | -1/+1 |
| | | | |||||
| * | | decoder/opus: eliminate flag "found_opus" | Max Kellermann | 2014-11-11 | 1 | -5/+3 |
| | | | | | | | | | | | | Check opus_decoder!=nullptr instead. | ||||
| * | | decoder/opus: add constexpr output_buffer_frames | Max Kellermann | 2014-11-11 | 1 | -8/+10 |
| | | | |||||
| * | | decoder/audiofile: fix bit rate calculation | Max Kellermann | 2014-11-10 | 1 | -1/+1 |
| | | | |||||
* | | | Merge branch 'v0.19.x' | Max Kellermann | 2014-11-07 | 1 | -1/+2 |
|\| | | |||||
| * | | decoder/ffmpeg: support opus | Max Kellermann | 2014-11-07 | 1 | -1/+2 |
| | | | |||||
* | | | Merge tag 'v0.19.2' | Max Kellermann | 2014-11-02 | 4 | -22/+7 |
|\| | | |||||
| * | | Decoder, Playlist: ignore URI query string for plugin detection | Max Kellermann | 2014-11-01 | 1 | -1/+2 |
| | | | | | | | | | | | | Use the new uri_get_suffix() overload that removes the query string. | ||||
| * | | decoder/mad: fix negative replay gain values | Max Kellermann | 2014-10-28 | 1 | -1/+1 |
| | | | | | | | | | | | | Negating an unsigned integer does not work. | ||||
| * | | decoder/faad: remove workaround for ancient libfaad2 ABI bug | Max Kellermann | 2014-10-25 | 2 | -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! | ||||
* | | | decoder/wavpack: don't use GLib | Max Kellermann | 2014-10-25 | 1 | -3/+3 |
|/ / | |||||
* | | decoder/ffmpeg: recognize MIME type audio/aacp | Steven OBrien | 2014-10-25 | 1 | -0/+1 |
| | | |||||
* | | input/Open: use OpenLocalInputStream() | Max Kellermann | 2014-10-02 | 1 | -3/+1 |
| | | | | | | | | | | | | | | 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. | ||||
* | | DecoderThread: use OpenLocalInputStream() for local files | Max Kellermann | 2014-10-02 | 1 | -1/+20 |
| | |