Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | | decoder/ffmpeg: remove redundant audio stream check | Max Kellermann | 2014-12-19 | 1 | -3/+3 | |
| | | | ||||||
* | | | decoder/ffmpeg: use more references | Max Kellermann | 2014-12-19 | 1 | -16/+16 | |
| | | | ||||||
* | | | decoder/ffmpeg: merge avformat_close_input() calls | Max Kellermann | 2014-12-19 | 1 | -57/+63 | |
| | | | ||||||
* | | | decoder/ffmpeg: move code to lib/ffmpeg/Time.hxx | Max Kellermann | 2014-12-19 | 1 | -48/+6 | |
| | | | ||||||
* | | | decoder/ffmpeg: use av_free() instead of av_freep() | Max Kellermann | 2014-12-19 | 1 | -1/+1 | |
| | | | ||||||
* | | | decoder/ffmpeg: add API documentation | Max Kellermann | 2014-12-19 | 1 | -1/+5 | |
| | | | ||||||
* | | | decoder/ffmpeg: copy_interleave_frame() returns ConstBuffer | Max Kellermann | 2014-12-18 | 1 | -12/+12 | |
| | | | ||||||
* | | | decoder/ffmpeg: copy_interleave_frame() returns Error | Max Kellermann | 2014-12-18 | 1 | -14/+22 | |
| | | | ||||||
* | | | decoder/ffmpeg: pass AVPacket copy to ffmpeg_send_packet() | Max Kellermann | 2014-12-18 | 1 | -7/+5 | |
| | | | ||||||
* | | | decoder/ffmpeg: simplify ffmpeg_send_packet() | Max Kellermann | 2014-12-18 | 1 | -15/+15 | |
| | | | ||||||
* | | | decoder/ffmpeg: pass references instead of pointers | Max Kellermann | 2014-12-18 | 1 | -33/+33 | |
| | | | ||||||
* | | | decoder/ffmpeg: move code to class FfmpegBuffer | Max Kellermann | 2014-12-18 | 1 | -17/+10 | |
| | | | ||||||
* | | | decoder/ffmpeg: fix crash on out-of-memory | Max Kellermann | 2014-12-18 | 1 | -3/+7 | |
| | | | | | | | | | | | | Fixes regression by commit 7c8038e | |||||
* | | | decoder/ffmpeg: log detailed error message | Max Kellermann | 2014-12-18 | 1 | -2/+2 | |
| | | | ||||||
* | | | decoder/ffmpeg: remove obsolete comment | Max Kellermann | 2014-12-18 | 1 | -1/+0 | |
| | | | ||||||
* | | | decoder/ffmpeg: add "pure" attributes | Max Kellermann | 2014-12-18 | 1 | -1/+2 | |
| | | | ||||||
* | | | Merge tag 'v0.19.7' | Max Kellermann | 2014-12-17 | 1 | -4/+7 | |
|\| | | ||||||
| * | | Merge tag 'v0.18.21' into v0.19.x | Max Kellermann | 2014-12-17 | 1 | -4/+7 | |
| |\| | ||||||
| | * | decoder/ffmpeg: detect and fix negative time stamps | Max Kellermann | 2014-12-15 | 1 | -4/+7 | |
| | | | | | | | | | | | | | | | Works around assertion failure due to something that appears to be a (minor) FFmpeg bug. | |||||
* | | | vorbiscomments: Remove support for non-standard "album artist" tags. | Rasmus Steinke | 2014-12-12 | 1 | -1/+0 | |
| | | | | | | | | | | | | | | | | | | | | | | | | MPD used both "album artist" and "albumartist" tags and mapped them to one tag. This could lead to issues, if a file had both tags, causing MPD to send a list of albumartists instead of a single one. Since "album artist" is not a standard tag anyway and even its originators started to use the proper alternative, its time to say goodbye! | |||||
* | | | decoder/ffpmeg: make variables more local | Max Kellermann | 2014-12-11 | 1 | -3/+2 | |
| | | | ||||||
* | | | decoder/ffpmeg: simplify ffmpeg_send_packet() | Max Kellermann | 2014-12-11 | 1 | -8/+8 | |
| | | | ||||||
* | | | decoder/ffmpeg: support stream tags | Max Kellermann | 2014-12-11 | 1 | -0/+39 | |
| | | | ||||||
* | | | decoder/ffpmeg: move code to FfmpegScanMetadata() | Max Kellermann | 2014-12-11 | 1 | -4/+18 | |
| | | | ||||||
* | | | decoder/ffmpeg: support ReplayGain and MixRamp | Max Kellermann | 2014-12-10 | 1 | -0/+56 | |
| | | | ||||||
* | | | decoder/ffpmeg: use forward declarations | Max Kellermann | 2014-12-10 | 2 | -9/+5 | |
| | | | ||||||
* | | | decoder/ffpmeg: rename functions to CamelCase | Max Kellermann | 2014-12-10 | 3 | -17/+17 | |
| | | | ||||||
* | | | decoder/ffmpeg: optimize ffmpeg_scan_dictionary() | Max Kellermann | 2014-12-10 | 1 | -7/+9 | |
| | | | | | | | | | | | | | | | Don't scan tag items if the handler doesn't implement the tag() method. | |||||
* | | | decoder/mad: convert "const" to "constexpr" | Max Kellermann | 2014-12-09 | 1 | -4/+4 | |
| | | | ||||||
* | | | 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. |