aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder/Control: Seek() returns Error informationMax Kellermann2015-11-112-4/+15
|
* decoder/Control: State::ERROR is illegalMax Kellermann2015-11-111-1/+2
| | | | | The state ERROR can only be entered during decoder initialization, and Seek() may only be called after initialization has been finished.
* decoder/Control: use switch/case in Seek()Max Kellermann2015-11-111-2/+13
|
* util/StringUtil: move comparison functions to StringCompare.cxxMax Kellermann2015-11-061-1/+1
|
* Merge tag 'v0.19.11'Max Kellermann2015-10-273-14/+27
|\
| * gme: don't loop forever, fall back to GME's default play lengthMax Kellermann2015-10-261-3/+3
| | | | | | | | Fixes http://bugs.musicpd.org/view.php?id=4432
| * decoder/gme: free the gme_info_t as early as possibleMax Kellermann2015-10-261-6/+7
| |
| * decoder/gme: call decoder_seek_error() on seek errorMax Kellermann2015-10-261-2/+4
| |
| * decoder/ffmpeg: fix crash due to wrong avio_alloc_context() callMax Kellermann2015-10-261-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
| * decoder/mpcdec: use SampleTraits<SampleFormat::S24_P32>Max Kellermann2015-10-161-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.
| * decoder/mpcdec: use Clamp()Max Kellermann2015-10-161-6/+2
| |
* | decoder/gme: log the emulator typeMax Kellermann2015-10-261-0/+3
| |
* | decoder/gme: add option "accuracy"Max Kellermann2015-10-261-1/+24
| |
* | decoder/mad: reduce memory usage while scanning tagsMax Kellermann2015-10-191-3/+11
| | | | | | | | Allocate the frame pointers only when actually decoding the file.
* | util/StringView: new utility classMax Kellermann2015-09-301-1/+2
| |
* | client/Response: new Client wrapper class for writing responsesMax Kellermann2015-08-122-9/+9
| |
* | decoder/mpcdec: read the bit rateMax Kellermann2015-08-051-4/+2
| | | | | | | | | | This was lost in commit 8ead8f7ea, because this was never implemented for the new API.
* | decoder/mpcdec: use SampleTraits<SampleFormat::S24_P32>Max Kellermann2015-08-051-11/+13
| |
* | decoder/mpcdec: use Clamp()Max Kellermann2015-08-051-6/+2
| |
* | decoder/mpcdec: make buffer more localMax Kellermann2015-08-051-2/+1
| | | | | | | | Allow the compiler to invalidate buffer contents.
* | pcm/Interleave: add optimization for 32 bit samplesMax Kellermann2015-06-221-7/+3
| | | | | | | | Move code from the "vorbis" decoder.
* | decoder/ffmpeg: move code to pcm/Interleave.cxxMax Kellermann2015-06-221-19/+6
| |
* | decoder/ffmpeg: check for commands earlierMax Kellermann2015-06-221-22/+22
| | | | | | | | | | Improve initial seek by not reading/decoding the first frame before checking for the seek command.
* | decoder/vorbis: check STOP before entering the loopMax Kellermann2015-06-221-2/+2
| |
* | Merge tag 'v0.19.10'Max Kellermann2015-06-213-11/+78
|\|
| * DecoderAPI: discard unused song tag earlyMax Kellermann2015-06-211-2/+5
| | | | | | | | | | If there's a stream tag, don't let the song tag override it in the next update_stream_tag() call.
| * DecoderThread: set Decoder::song_tag only for local filesMax Kellermann2015-06-211-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.
| * DecoderAPI: "move" the Tag objectMax Kellermann2015-06-201-1/+1
| | | | | | | | Reduce runtime overhead.
| * decoder/ffmpeg: skip unwanted samples after seekingMax Kellermann2015-06-201-5/+48
| | | | | | | | | | When seeking to the beginning of a packet, skip the samples that come before the desired time stamp.
| * decoder/ffmpeg: use AVSEEK_FLAG_BACKWARD for seekingMax Kellermann2015-06-201-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.
| * decoder/ffmpeg: move code to StreamRelativePts()Max Kellermann2015-06-191-6/+20
| |
* | *: doxygen fixupsMax Kellermann2015-03-172-10/+3
| |
* | fs/NarrowPath: new utility classMax Kellermann2015-03-051-2/+3
| |
* | *: change C-style prototypes, drop "(void)"Max Kellermann2015-03-032-3/+5
| |
* | DecoderThread: make variables more localMax Kellermann2015-01-311-6/+3
| |
* | decoder/sndfile, ...: update API documentationMax Kellermann2015-01-315-7/+7
| |
* | decoder/DsdLib: fix integer overflow in ID3 size calculationMax Kellermann2015-01-301-2/+4
| |
* | decoder/DsdLib: check size before seekingMax Kellermann2015-01-301-4/+3
| |
* | decoder/DsdLib: don't use InputStream::GetOffset() after seekingMax Kellermann2015-01-301-3/+2
| | | | | | | | We already know the offset.
* | decoder/DsdLib: pass offset_type t dsdlib_tag_id3()Max Kellermann2015-01-302-4/+2
| |
* | Merge branch 'v0.19.x'Max Kellermann2015-01-291-8/+7
|\|
| * decoder/DsdLib: use new[] to allocate the ID3 bufferMax Kellermann2015-01-291-3/+5
| | | | | | | | | | Don't abort the process if there's not enough memory. This buffer is not important and can be large.
| * decoder/DsdLib: free ID3 buffer right after id3_tag_parse()Max Kellermann2015-01-291-5/+2
| | | | | | | | Merge two free() calls.
| * decoder/DsdLib: raise ID3 tag limit to 1 MBMax Kellermann2015-01-291-1/+1
| | | | | | | | | | A bug report was submitted with a 600 kB ID3 tag that could not be read by MPD.
* | config/Param: split block-specific attributes to new struct ConfigBlockMax Kellermann2015-01-2118-38/+38
| | | | | | | | The old struct config_param remains only for top-level string options.
* | config/Option: convert to strictly-typed enumMax Kellermann2015-01-212-2/+3
| |
* | ConfigData: move struct config_param to Param.hxxMax Kellermann2015-01-212-2/+2
| |
* | Copyright year 2015Max Kellermann2015-01-0199-99/+99
| |
* | Merge branch 'v0.19.x'Max Kellermann2014-12-262-0/+7
|\|
| * Merge branch 'v0.18.x' into v0.19.xMax Kellermann2014-12-261-0/+6
| |\