Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2014-10-28 | decoder/mad: fix negative replay gain values | Max Kellermann | 1 | -1/+1 | |
Negating an unsigned integer does not work. | |||||
2014-10-25 | decoder/faad: remove workaround for ancient libfaad2 ABI bug | Max Kellermann | 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! | |||||
2014-10-25 | decoder/ffmpeg: recognize MIME type audio/aacp | Steven OBrien | 1 | -0/+1 | |
2014-10-02 | input/Open: use OpenLocalInputStream() | Max Kellermann | 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. | |||||
2014-10-02 | DecoderThread: use OpenLocalInputStream() for local files | Max Kellermann | 1 | -1/+20 | |
2014-09-24 | decoder/mp4v2: add tag table | Max Kellermann | 1 | -10/+19 | |
2014-09-24 | decoder/mpg123: support ID3v2, ReplayGain and MixRamp | Max Kellermann | 1 | -1/+90 | |
2014-09-24 | decoder/mpg123: make variables more local | Max Kellermann | 1 | -20/+11 | |
2014-09-24 | decoder/flac: pass VorbisComment to flac_parse_mixramp() | Max Kellermann | 3 | -6/+4 | |
2014-09-24 | decoder/flac: move code to tag/MixRamp.cxx | Max Kellermann | 1 | -35/+10 | |
2014-09-24 | decoder/mad: move code to tag/MixRamp.cxx | Max Kellermann | 1 | -5/+2 | |
2014-09-24 | decoder/flac: pass VorbisComment to flac_parse_replay_gain() | Max Kellermann | 3 | -6/+3 | |
2014-09-24 | tag/ReplayGain: add VorbisComment parser | Max Kellermann | 2 | -41/+12 | |
Move code from the Vorbis and FLAC decoder plugins. | |||||
2014-09-24 | decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxx | Max Kellermann | 2 | -24/+3 | |
2014-09-24 | tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxx | Max Kellermann | 1 | -12/+2 | |
2014-09-22 | DecoderBuffer: struct to class | Max Kellermann | 1 | -1/+2 | |
2014-09-22 | DecoderBuffer: convert functions to methods | Max Kellermann | 3 | -121/+85 | |
2014-09-22 | decoder/faad: use DecoderBuffer references | Max Kellermann | 1 | -27/+27 | |
2014-09-22 | decoder/faad: allocate DecoderBuffer on stack | Max Kellermann | 1 | -13/+8 | |
2014-09-22 | DecoderBuffer: export the struct | Max Kellermann | 3 | -58/+28 | |
Eliminates the functions _new() and _free(). | |||||
2014-09-21 | DecoderBuffer: make "decoder" const | Max Kellermann | 1 | -1/+1 | |
2014-09-21 | DecoderBuffer: convert pointer to reference | Max Kellermann | 1 | -5/+5 | |
2014-09-21 | DecoderBuffer: use class DynamicFifoBuffer | Max Kellermann | 1 | -69/+23 | |
2014-09-21 | decoder/adplug: log version number | Max Kellermann | 1 | -0/+6 | |
2014-09-21 | decoder/adplug: move the buffer into the loop | Max Kellermann | 1 | -2/+2 | |
2014-09-21 | decoder/sndfile: include cleanup | Max Kellermann | 1 | -1/+0 | |
2014-09-19 | decoder/audiofile: fix indent | Max Kellermann | 1 | -1/+1 | |
2014-09-19 | decoder/sndfile: remove obsolete code comment | Max Kellermann | 1 | -3/+0 | |
2014-09-19 | decoder/sndfile: remove debug printf() | Max Kellermann | 1 | -2/+0 | |
2014-09-19 | decoder/sndfile: log detailed sf_open_virtual() error message | Max Kellermann | 1 | -1/+2 | |
2014-09-19 | decoder/sndfile: support float and 16 bit samples | Max Kellermann | 1 | -4/+32 | |
Support these PCM formats natively, instead of letting libsndfile convert everything to 32 bit. | |||||
2014-09-19 | decoder/sndfile: move sf_readf_int() call to sndfile_read_frames() | Max Kellermann | 1 | -2/+10 | |
2014-09-19 | decoder/sndfile: add sndfile_sample_format() | Max Kellermann | 1 | -1/+9 | |
Prepare for other sample formats. | |||||
2014-09-09 | decoder/ffmpeg: use memset() to initialize AVProbeData | Max Kellermann | 1 | -0/+6 | |
2014-09-07 | decoder/ffmpeg: pass MIME type to ffmpeg/libav version 11 | Max Kellermann | 1 | -0/+7 | |
That attribute was uninitialized before, which could crash libavformat. See Debian bug 760669 | |||||
2014-09-06 | decoder/audiofile: fix crash after seeking | Max Kellermann | 1 | -1/+1 | |
Log call was added to the wrong branch. Fixes regression by commit ca1a1149 | |||||
2014-08-31 | DecoderAPI: use std::min() | Max Kellermann | 1 | -3/+1 | |
2014-08-31 | MusicChunk: remove special case for num_frames==0 | Max Kellermann | 1 | -3/+1 | |
Simply return an empty WritableBuffer, not a nulled one. | |||||
2014-08-30 | decoder/sndfile: refactor frame_to_time() | Max Kellermann | 1 | -8/+6 | |
2014-08-29 | decoder/gme: fix song duration | Max Kellermann | 1 | -1/+1 | |
The unit of gme_info_t::length is milliseconds, not centiseconds. | |||||
2014-08-29 | TagHandler: pass SongTime to duration() | Max Kellermann | 20 | -60/+74 | |
2014-08-29 | DecoderAPI: pass SignedSongTime to decoder_initialized() | Max Kellermann | 25 | -130/+157 | |
2014-08-29 | decoder/faad: bit_rate==0 is an error | Max Kellermann | 1 | -4/+4 | |
2014-08-29 | MusicChunk: use SignedSongTime for the time stamp | Max Kellermann | 1 | -2/+2 | |
2014-08-29 | DecoderControl: use SignedSongTime for the song duration | Max Kellermann | 2 | -2/+4 | |
2014-08-28 | DecoderControl: use std::chrono::duration for start_ms and end_ms | Max Kellermann | 4 | -29/+18 | |
2014-08-28 | DetachedSong: use std::chrono::duration for start_ms and end_ms | Max Kellermann | 1 | -1/+1 | |
2014-08-28 | DecoderControl: update API documentation | Max Kellermann | 1 | -3/+3 | |
2014-08-27 | DecoderControl: use std::chrono::duration for Seek() | Max Kellermann | 4 | -9/+9 | |
2014-08-26 | DecoderAPI: use std::chrono::duration for decoder_seek*() | Max Kellermann | 8 | -52/+40 | |
For type safety and code readability. |