| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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!
|
| |
|
| |
|
| |
|
|
|
|
| |
Eliminates the functions _new() and _free().
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Since we already checked InputStream::KnownSize(), we can assume that
GetSize() returns a valid value, and this check is obsolete.
|
|
|
|
|
| |
Replace the bogus GetSize() check and call GetSize() only when
necessary.
|
| |
|
|
|
|
| |
Move code from the FAAD decoder plugin.
|
|
|
|
|
| |
This loop is completely unnecessary. We just need to find the first
ADTS frame and feed it into NeAACDecInit().
|
|
|
|
| |
Eliminate duplicate cleanup code.
|
| |
|
|
|
|
|
| |
Remove the "whence" parameter that is not actually necessary, and only
complicates the InputStream implementations.
|
| |
|
|
|