Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2014-10-25 | decoder/faad: remove workaround for ancient libfaad2 ABI bug | Max Kellermann | 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! | |||||
2014-09-22 | DecoderBuffer: convert functions to methods | Max Kellermann | 1 | -19/+19 | |
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 | 1 | -6/+6 | |
Eliminates the functions _new() and _free(). | |||||
2014-08-29 | TagHandler: pass SongTime to duration() | Max Kellermann | 1 | -5/+3 | |
2014-08-29 | DecoderAPI: pass SignedSongTime to decoder_initialized() | Max Kellermann | 1 | -47/+36 | |
2014-08-29 | decoder/faad: bit_rate==0 is an error | Max Kellermann | 1 | -4/+4 | |
2014-08-19 | decoder/faad: remove unnecessary cast to size_t | Max Kellermann | 1 | -3/+2 | |
2014-08-19 | decoder/faad: remove size!=0 check | Max Kellermann | 1 | -1/+1 | |
Since we already checked InputStream::KnownSize(), we can assume that GetSize() returns a valid value, and this check is obsolete. | |||||
2014-08-19 | decoder/faad: check InputStream::KnownSize() | Max Kellermann | 1 | -2/+6 | |
Replace the bogus GetSize() check and call GetSize() only when necessary. | |||||
2014-08-19 | decoder/faad: call GetSize() only when needed | Max Kellermann | 1 | -3/+2 | |
2014-07-12 | DecoderBuffer: add method _need() | Max Kellermann | 1 | -28/+13 | |
Move code from the FAAD decoder plugin. | |||||
2014-07-12 | decoder/faad: eliminate the adts_find_frame() loop | Max Kellermann | 1 | -5/+2 | |
This loop is completely unnecessary. We just need to find the first ADTS frame and feed it into NeAACDecInit(). | |||||
2014-07-12 | decoder/faad: split faad_stream_decode() | Max Kellermann | 1 | -10/+16 | |
Eliminate duplicate cleanup code. | |||||
2014-05-22 | InputStream: make Seek() always absolute | Max Kellermann | 1 | -1/+1 | |
Remove the "whence" parameter that is not actually necessary, and only complicates the InputStream implementations. | |||||
2014-01-24 | Input*: move to input/ | Max Kellermann | 1 | -1/+1 | |
2014-01-24 | decoder/*: move to decoder/plugins/ | Max Kellermann | 1 | -2/+2 | |
2014-01-13 | copyright year 2014 | Max Kellermann | 1 | -1/+1 | |
2014-01-08 | decoder/faad: fix memory leak | Max Kellermann | 1 | -0/+2 | |
2014-01-06 | DecoderBuffer: _read() returns ConstBuffer object | Max Kellermann | 1 | -46/+37 | |
2014-01-06 | DecoderBuffer: add method _clear() | Max Kellermann | 1 | -8/+3 | |
2014-01-06 | decoder/faad: make variables more local | Max Kellermann | 1 | -47/+31 | |
2014-01-06 | decoder/faad: eliminate local variable "ret" | Max Kellermann | 1 | -5/+2 | |
2013-11-04 | Log: add level "DEFAULT" | Max Kellermann | 1 | -7/+7 | |
Map LogLevel::INFO to G_LOG_LEVEL_INFO, and LogLevel::DEFAULT to G_LOG_LEVEL_MESSAGE. Now client connect/disconnect message are only logged on log_level "secure". | |||||
2013-10-23 | input_stream: rename struct to InputStream | Max Kellermann | 1 | -9/+9 | |
2013-10-21 | decoder: rename the struct to "Decoder" | Max Kellermann | 1 | -2/+2 | |
2013-10-21 | decoder_plugin: rename struct to DecoderPlugin | Max Kellermann | 1 | -1/+1 | |
2013-10-17 | InputStream: use int64_t instead of goffset | Max Kellermann | 1 | -1/+1 | |
Decouple some more from GLib. | |||||
2013-10-02 | Log: new logging library API | Max Kellermann | 1 | -13/+12 | |
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend. | |||||
2013-09-27 | DecoderCommand: convert to strictly-typed enum | Max Kellermann | 1 | -3/+3 | |
2013-09-05 | Tag, ...: move to libtag.a | Max Kellermann | 1 | -1/+1 | |
2013-09-05 | InputLegacy: move functions to the input_stream class | Max Kellermann | 1 | -5/+5 | |
2013-09-04 | util/Error: new error passing library | Max Kellermann | 1 | -20/+13 | |
Replaces GLib's GError. | |||||
2013-08-03 | audio_format: convert to C++ | Max Kellermann | 1 | -7/+7 | |
2013-07-30 | tag: convert to C++ | Max Kellermann | 1 | -0/+1 | |
2013-07-29 | audio_check: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-07-29 | tag_handler: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-07-28 | decoder_api: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-04-17 | decoder_buffer: convert to C++ | Max Kellermann | 1 | -10/+8 | |
2013-04-17 | decoder/faad: convert to C++ | Max Kellermann | 1 | -49/+52 | |
2013-01-29 | decoder/faad: use the newer NeAAC* API | Max Kellermann | 1 | -41/+26 | |
Drop support for the old faacDec* API. | |||||
2013-01-26 | input_stream: forward-declare the struct | Max Kellermann | 1 | -2/+3 | |
Hide the definition from C code, to prepare the transition to C++. | |||||
2012-02-11 | decoder_plugin: scan tags with callback table | Max Kellermann | 1 | -8/+8 | |
Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object. | |||||
2011-09-16 | input_stream: non-blocking I/O | Max Kellermann | 1 | -2/+2 | |
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins. | |||||
2011-01-29 | copyright year 2011 | Max Kellermann | 1 | -1/+1 | |
2010-01-04 | renamed decoder plugin sources | Max Kellermann | 1 | -0/+0 | |
Make it X_decoder_plugin.c. | |||||
2010-01-04 | decoder_api: added function decoder_replay_gain() | Max Kellermann | 1 | -1/+1 | |
This function replaces the replay_gain_info parameter for decoder_data(). This allows the decoder to announce replay gain changes, instead of having to pass the same object over and over. | |||||
2009-12-31 | Update copyright notices. | Avuton Olrich | 1 | -1/+1 | |
2009-12-31 | decoder: switch a bunch of plugins to stream_tag() | Max Kellermann | 1 | -16/+9 | |
This patch changes the following decoder plugins to implement stream_tag() instead of tag_dup(): faad, ffmpeg, mad, modplug, mp4ff, mpcdec, oggflac This simplifies their code, because they do not need to take care of opening/closing the stream. |