aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/plugins/FaadDecoderPlugin.cxx (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Copyright year 2015Max Kellermann2015-01-011-1/+1
|
* decoder/faad: remove workaround for ancient libfaad2 ABI bugMax Kellermann2014-10-251-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!
* DecoderBuffer: convert functions to methodsMax Kellermann2014-09-221-19/+19
|
* 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-221-6/+6
| | | | Eliminates the functions _new() and _free().
* TagHandler: pass SongTime to duration()Max Kellermann2014-08-291-5/+3
|
* DecoderAPI: pass SignedSongTime to decoder_initialized()Max Kellermann2014-08-291-47/+36
|
* decoder/faad: bit_rate==0 is an errorMax Kellermann2014-08-291-4/+4
|
* decoder/faad: remove unnecessary cast to size_tMax Kellermann2014-08-191-3/+2
|
* decoder/faad: remove size!=0 checkMax Kellermann2014-08-191-1/+1
| | | | | Since we already checked InputStream::KnownSize(), we can assume that GetSize() returns a valid value, and this check is obsolete.
* decoder/faad: check InputStream::KnownSize()Max Kellermann2014-08-191-2/+6
| | | | | Replace the bogus GetSize() check and call GetSize() only when necessary.
* decoder/faad: call GetSize() only when neededMax Kellermann2014-08-191-3/+2
|
* DecoderBuffer: add method _need()Max Kellermann2014-07-121-28/+13
| | | | Move code from the FAAD decoder plugin.
* decoder/faad: eliminate the adts_find_frame() loopMax Kellermann2014-07-121-5/+2
| | | | | This loop is completely unnecessary. We just need to find the first ADTS frame and feed it into NeAACDecInit().
* decoder/faad: split faad_stream_decode()Max Kellermann2014-07-121-10/+16
| | | | Eliminate duplicate cleanup code.
* Merge branch 'v0.18.x'Max Kellermann2014-07-121-54/+76
|
* InputStream: make Seek() always absoluteMax Kellermann2014-05-221-1/+1
| | | | | Remove the "whence" parameter that is not actually necessary, and only complicates the InputStream implementations.
* Input*: move to input/Max Kellermann2014-01-241-1/+1
|
* decoder/*: move to decoder/plugins/Max Kellermann2014-01-241-0/+464