aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Decoder, Playlist: ignore URI query string for plugin detectionMax Kellermann2014-11-011-1/+2
| | | | Use the new uri_get_suffix() overload that removes the query string.
* decoder/mad: fix negative replay gain valuesMax Kellermann2014-10-281-1/+1
| | | | Negating an unsigned integer does not work.
* decoder/faad: remove workaround for ancient libfaad2 ABI bugMax Kellermann2014-10-252-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/ffmpeg: recognize MIME type audio/aacpSteven OBrien2014-10-251-0/+1
|
* input/Open: use OpenLocalInputStream()Max Kellermann2014-10-021-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 filesMax Kellermann2014-10-021-1/+20
|
* Merge tag 'v0.18.16'Max Kellermann2014-09-261-0/+2
|\
* | decoder/mp4v2: add tag tableMax Kellermann2014-09-241-10/+19
| |
* | decoder/mpg123: support ID3v2, ReplayGain and MixRampMax Kellermann2014-09-241-1/+90
| |
* | decoder/mpg123: make variables more localMax Kellermann2014-09-241-20/+11
| |
* | decoder/flac: pass VorbisComment to flac_parse_mixramp()Max Kellermann2014-09-243-6/+4
| |
* | decoder/flac: move code to tag/MixRamp.cxxMax Kellermann2014-09-241-35/+10
| |
* | decoder/mad: move code to tag/MixRamp.cxxMax Kellermann2014-09-241-5/+2
| |
* | decoder/flac: pass VorbisComment to flac_parse_replay_gain()Max Kellermann2014-09-243-6/+3
| |
* | tag/ReplayGain: add VorbisComment parserMax Kellermann2014-09-242-41/+12
| | | | | | | | Move code from the Vorbis and FLAC decoder plugins.
* | decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxxMax Kellermann2014-09-242-24/+3
| |
* | tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxxMax Kellermann2014-09-241-12/+2
| |
* | DecoderBuffer: struct to classMax Kellermann2014-09-221-1/+2
| |
* | DecoderBuffer: convert functions to methodsMax Kellermann2014-09-223-121/+85
| |
* | decoder/faad: use DecoderBuffer referencesMax Kellermann2014-09-221-27/+27
| |
* | decoder/faad: allocate DecoderBuffer on stackMax Kellermann2014-09-221-13/+8
| |
* | DecoderBuffer: export the structMax Kellermann2014-09-223-58/+28
| | | | | | | | Eliminates the functions _new() and _free().
* | DecoderBuffer: make "decoder" constMax Kellermann2014-09-211-1/+1
| |
* | DecoderBuffer: convert pointer to referenceMax Kellermann2014-09-211-5/+5
| |
* | DecoderBuffer: use class DynamicFifoBufferMax Kellermann2014-09-211-69/+23
| |
* | decoder/adplug: log version numberMax Kellermann2014-09-211-0/+6
| |
* | decoder/adplug: move the buffer into the loopMax Kellermann2014-09-211-2/+2
| |
* | decoder/sndfile: include cleanupMax Kellermann2014-09-211-1/+0
| |
* | decoder/audiofile: fix indentMax Kellermann2014-09-191-1/+1
| |
* | decoder/sndfile: remove obsolete code commentMax Kellermann2014-09-191-3/+0
| |
* | decoder/sndfile: remove debug printf()Max Kellermann2014-09-191-2/+0
| |
* | decoder/sndfile: log detailed sf_open_virtual() error messageMax Kellermann2014-09-191-1/+2
| |
* | decoder/sndfile: support float and 16 bit samplesMax Kellermann2014-09-191-4/+32
| | | | | | | | | | Support these PCM formats natively, instead of letting libsndfile convert everything to 32 bit.
* | decoder/sndfile: move sf_readf_int() call to sndfile_read_frames()Max Kellermann2014-09-191-2/+10
| |
* | decoder/sndfile: add sndfile_sample_format()Max Kellermann2014-09-191-1/+9
| | | | | | | | Prepare for other sample formats.
* | Merge tag 'v0.18.14'Max Kellermann2014-09-114-1/+31
|\|
| * decoder/ffmpeg: use memset() to initialize AVProbeDataMax Kellermann2014-09-091-0/+6
| |
| * decoder/ffmpeg: pass MIME type to ffmpeg/libav version 11Max Kellermann2014-09-071-0/+7
| | | | | | | | | | | | | | That attribute was uninitialized before, which could crash libavformat. See Debian bug 760669
| * decoder/audiofile: fix crash after seekingMax Kellermann2014-09-061-1/+1
| | | | | | | | | | | | Log call was added to the wrong branch. Fixes regression by commit ca1a1149
| * decoder/gme: fix song durationMax Kellermann2014-08-291-1/+1
| | | | | | | | The unit of gme_info_t::length is milliseconds, not centiseconds.
* | DecoderAPI: use std::min()Max Kellermann2014-08-311-3/+1
| |
* | MusicChunk: remove special case for num_frames==0Max Kellermann2014-08-311-3/+1
| | | | | | | | Simply return an empty WritableBuffer, not a nulled one.
* | decoder/sndfile: refactor frame_to_time()Max Kellermann2014-08-301-8/+6
| |
* | TagHandler: pass SongTime to duration()Max Kellermann2014-08-2920-60/+74
| |
* | DecoderAPI: pass SignedSongTime to decoder_initialized()Max Kellermann2014-08-2925-130/+157
| |
* | decoder/faad: bit_rate==0 is an errorMax Kellermann2014-08-291-4/+4
| |
* | MusicChunk: use SignedSongTime for the time stampMax Kellermann2014-08-291-2/+2
| |
* | DecoderControl: use SignedSongTime for the song durationMax Kellermann2014-08-292-2/+4
| |
* | DecoderControl: use std::chrono::duration for start_ms and end_msMax Kellermann2014-08-284-29/+18
| |
* | DetachedSong: use std::chrono::duration for start_ms and end_msMax Kellermann2014-08-281-1/+1
| |