aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (unfollow)
Commit message (Collapse)AuthorFilesLines
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
2014-12-22decoder/ffmpeg: move functions into the AvioStream structMax Kellermann2-20/+37
2014-12-22configure.ac: use MPD_ENABLE_AUTO_PKG_LIB for libgmeMax Kellermann1-1/+1
2014-12-21decoder/ffmpeg: move code to lib/ffmpeg/Init.cxxMax Kellermann1-4/+2
2014-12-20decoder/ffmpeg: move code to lib/ffmpeg/LogCallback.cxxMax Kellermann1-34/+2
2014-12-19decoder/ffmpeg: remove obsolete commentMax Kellermann1-1/+0
2014-12-19decoder/ffmpeg: convert enums to constexprMax Kellermann1-4/+2
2014-12-19decoder/ffmpeg: move struct AvioStream to FfmpegIo.hxxMax Kellermann3-74/+139
2014-12-19decoder/ffmpeg: remove unnecessary nullptr check for av_free()Max Kellermann1-2/+1
2014-12-19decoder/ffmpeg: use AVStream::durationMax Kellermann1-10/+6
Use the duration of the stream we're actually decoding - not the "global" attribute AVFormatContext::duration which may differ.
2014-12-19decoder/ffmpeg: skip _scan_stream() if no audio stream was foundMax Kellermann1-5/+9
2014-12-19decoder/ffmpeg: remove redundant audio stream checkMax Kellermann1-3/+3
2014-12-19decoder/ffmpeg: use more referencesMax Kellermann1-16/+16
2014-12-19decoder/ffmpeg: merge avformat_close_input() callsMax Kellermann1-57/+63
2014-12-19decoder/ffmpeg: move code to lib/ffmpeg/Time.hxxMax Kellermann1-48/+6
2014-12-19decoder/ffmpeg: use av_free() instead of av_freep()Max Kellermann1-1/+1
2014-12-19decoder/ffmpeg: add API documentationMax Kellermann1-1/+5
2014-12-18decoder/ffmpeg: copy_interleave_frame() returns ConstBufferMax Kellermann1-12/+12
2014-12-18decoder/ffmpeg: copy_interleave_frame() returns ErrorMax Kellermann1-14/+22
2014-12-18decoder/ffmpeg: pass AVPacket copy to ffmpeg_send_packet()Max Kellermann1-7/+5