aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-11-11decoder/Control: Seek() returns Error informationMax Kellermann2-4/+15
2015-11-11decoder/Control: State::ERROR is illegalMax Kellermann1-1/+2
The state ERROR can only be entered during decoder initialization, and Seek() may only be called after initialization has been finished.
2015-11-11decoder/Control: use switch/case in Seek()Max Kellermann1-2/+13
2015-11-06util/StringUtil: move comparison functions to StringCompare.cxxMax Kellermann1-1/+1
2015-10-26gme: don't loop forever, fall back to GME's default play lengthMax Kellermann1-3/+3
Fixes http://bugs.musicpd.org/view.php?id=4432
2015-10-26decoder/gme: free the gme_info_t as early as possibleMax Kellermann1-6/+7
2015-10-26decoder/gme: log the emulator typeMax Kellermann1-0/+3
2015-10-26decoder/gme: add option "accuracy"Max Kellermann1-1/+24
2015-10-26decoder/gme: call decoder_seek_error() on seek errorMax Kellermann1-2/+4
2015-10-26decoder/ffmpeg: fix crash due to wrong avio_alloc_context() callMax Kellermann1-4/+13
Allocate the buffer dynamically using av_malloc(), and free AVIOContext.buffer in the destructor, as mandated by the libavformat documentation. Fixes http://bugs.musicpd.org/view.php?id=4446
2015-10-19decoder/mad: reduce memory usage while scanning tagsMax Kellermann1-3/+11
Allocate the frame pointers only when actually decoding the file.
2015-10-16decoder/mpcdec: use SampleTraits<SampleFormat::S24_P32>Max Kellermann1-11/+13
Eliminates some duplicate code, and as a side effect, this works around clang 3.8 compiler warning because a negative value was shifted.
2015-10-16decoder/mpcdec: use Clamp()Max Kellermann1-6/+2
2015-09-30util/StringView: new utility classMax Kellermann1-1/+2
2015-08-12client/Response: new Client wrapper class for writing responsesMax Kellermann2-9/+9
2015-08-05decoder/mpcdec: read the bit rateMax Kellermann1-4/+2
This was lost in commit 8ead8f7ea, because this was never implemented for the new API.
2015-08-05decoder/mpcdec: use SampleTraits<SampleFormat::S24_P32>Max Kellermann1-11/+13
2015-08-05decoder/mpcdec: use Clamp()Max Kellermann1-6/+2
2015-08-05decoder/mpcdec: make buffer more localMax Kellermann1-2/+1
Allow the compiler to invalidate buffer contents.
2015-06-22pcm/Interleave: add optimization for 32 bit samplesMax Kellermann1-7/+3
Move code from the "vorbis" decoder.
2015-06-22decoder/ffmpeg: move code to pcm/Interleave.cxxMax Kellermann1-19/+6
2015-06-22decoder/ffmpeg: check for commands earlierMax Kellermann1-22/+22
Improve initial seek by not reading/decoding the first frame before checking for the seek command.
2015-06-22decoder/vorbis: check STOP before entering the loopMax Kellermann1-2/+2
2015-06-21DecoderAPI: discard unused song tag earlyMax Kellermann1-2/+5
If there's a stream tag, don't let the song tag override it in the next update_stream_tag() call.
2015-06-21DecoderThread: set Decoder::song_tag only for local filesMax Kellermann1-1/+5
If the song tag comes from a stream, and MPD playback restarts, MPD would believe the tag should override the newly received tag. This makes the previous tag appear stuck. This change passes the song tag only if it's authoritative - i.e. if it's a song file.
2015-06-20DecoderAPI: "move" the Tag objectMax Kellermann1-1/+1
Reduce runtime overhead.
2015-06-20decoder/ffmpeg: skip unwanted samples after seekingMax Kellermann1-5/+48
When seeking to the beginning of a packet, skip the samples that come before the desired time stamp.
2015-06-20decoder/ffmpeg: use AVSEEK_FLAG_BACKWARD for seekingMax Kellermann1-1/+5
Ask FFmpeg to seek to the next packet boundary *before* the seek position, so we don't miss audio data. Now we get too much, but we'll solve that in the next commit.
2015-06-19decoder/ffmpeg: move code to StreamRelativePts()Max Kellermann1-6/+20
2015-03-17*: doxygen fixupsMax Kellermann2-10/+3
2015-03-05fs/NarrowPath: new utility classMax Kellermann1-2/+3
2015-03-03*: change C-style prototypes, drop "(void)"Max Kellermann2-3/+5
2015-01-31DecoderThread: make variables more localMax Kellermann1-6/+3
2015-01-31decoder/sndfile, ...: update API documentationMax Kellermann5-7/+7
2015-01-30decoder/DsdLib: fix integer overflow in ID3 size calculationMax Kellermann1-2/+4
2015-01-30decoder/DsdLib: check size before seekingMax Kellermann1-4/+3
2015-01-30decoder/DsdLib: don't use InputStream::GetOffset() after seekingMax Kellermann1-3/+2
We already know the offset.
2015-01-30decoder/DsdLib: pass offset_type t dsdlib_tag_id3()Max Kellermann2-4/+2
2015-01-29decoder/DsdLib: use new[] to allocate the ID3 bufferMax Kellermann1-3/+5
Don't abort the process if there's not enough memory. This buffer is not important and can be large.
2015-01-29decoder/DsdLib: free ID3 buffer right after id3_tag_parse()Max Kellermann1-5/+2
Merge two free() calls.
2015-01-29decoder/DsdLib: raise ID3 tag limit to 1 MBMax Kellermann1-1/+1
A bug report was submitted with a 600 kB ID3 tag that could not be read by MPD.
2015-01-21config/Param: split block-specific attributes to new struct ConfigBlockMax Kellermann18-38/+38
The old struct config_param remains only for top-level string options.
2015-01-21config/Option: convert to strictly-typed enumMax Kellermann2-2/+3
2015-01-21ConfigData: move struct config_param to Param.hxxMax Kellermann2-2/+2
2015-01-01Copyright year 2015Max Kellermann99-99/+99
2014-12-23decoder/ffmpeg: support interleaved floating pointMax Kellermann1-0/+1
2014-12-23decoder/ffmpeg: fix indentMax Kellermann1-2/+2
2014-12-23decoder/DsdLib: add missing stdlib.h includeMax Kellermann1-0/+1
2014-12-23DSF ID3 tags hitting 4k size limitJan Brittenson1-6/+12
Here's a change to dynamically allocate the DSD ID3 tag buffer. Pretty much anything with cover art is going to exceed the existing, static 4k limit... Here's a change to dynamically allocate the buffer and sanity check it at some upper limit. I rather arbitrarily pulled 256k out of thin air just to keep a corrupt file from causing it to trying to allocate a buffer larger than available memory.
2014-12-22decoder/ffmpeg: simplify mpd_ffmpeg_open_input()Max Kellermann1-17/+12