aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |\
| * | decoder/ffmpeg: support interleaved floating pointMax Kellermann2014-12-231-0/+1
| | |
* | | Merge branch 'v0.19.x'Max Kellermann2014-12-231-6/+13
|\| |
| * | decoder/DsdLib: add missing stdlib.h includeMax Kellermann2014-12-231-0/+1
| | |
| * | DSF ID3 tags hitting 4k size limitJan Brittenson2014-12-231-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.
* | | decoder/ffmpeg: fix indentMax Kellermann2014-12-231-2/+2
| | |
* | | decoder/ffmpeg: simplify mpd_ffmpeg_open_input()Max Kellermann2014-12-221-17/+12
| | |
* | | decoder/ffmpeg: move functions into the AvioStream structMax Kellermann2014-12-222-20/+37
| | |
* | | configure.ac: use MPD_ENABLE_AUTO_PKG_LIB for libgmeMax Kellermann2014-12-221-1/+1
| | |
* | | decoder/ffmpeg: move code to lib/ffmpeg/Init.cxxMax Kellermann2014-12-211-4/+2
| | |
* | | decoder/ffmpeg: move code to lib/ffmpeg/LogCallback.cxxMax Kellermann2014-12-201-34/+2
| | |
* | | decoder/ffmpeg: remove obsolete commentMax Kellermann2014-12-191-1/+0
| | |
* | | decoder/ffmpeg: convert enums to constexprMax Kellermann2014-12-191-4/+2
| | |
* | | decoder/ffmpeg: move struct AvioStream to FfmpegIo.hxxMax Kellermann2014-12-193-74/+139
| | |
* | | decoder/ffmpeg: remove unnecessary nullptr check for av_free()Max Kellermann2014-12-191-2/+1
| | |
* | | decoder/ffmpeg: use AVStream::durationMax Kellermann2014-12-191-10/+6
| | | | | | | | | | | | | | | Use the duration of the stream we're actually decoding - not the "global" attribute AVFormatContext::duration which may differ.
* | | decoder/ffmpeg: skip _scan_stream() if no audio stream was foundMax Kellermann2014-12-191-5/+9
| | |
* | | decoder/ffmpeg: remove redundant audio stream checkMax Kellermann2014-12-191-3/+3
| | |
* | | decoder/ffmpeg: use more referencesMax Kellermann2014-12-191-16/+16
| | |
* | | decoder/ffmpeg: merge avformat_close_input() callsMax Kellermann2014-12-191-57/+63
| | |
* | | decoder/ffmpeg: move code to lib/ffmpeg/Time.hxxMax Kellermann2014-12-191-48/+6
| | |
* | | decoder/ffmpeg: use av_free() instead of av_freep()Max Kellermann2014-12-191-1/+1
| | |
* | | decoder/ffmpeg: add API documentationMax Kellermann2014-12-191-1/+5
| | |
* | | decoder/ffmpeg: copy_interleave_frame() returns ConstBufferMax Kellermann2014-12-181-12/+12
| | |
* | | decoder/ffmpeg: copy_interleave_frame() returns ErrorMax Kellermann2014-12-181-14/+22
| | |