summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2016-07-08decoder/flac: suppress warning at end of streamMax Kellermann
This is required if a stream ands without another chained FLAC file.
2016-07-08decoder/flac: move code to FlacInitAndDecode()Max Kellermann
2016-07-08decoder/flac: move duplicate code to flac_data::Initialize()Max Kellermann
2016-07-08decoder/flac: late "total_frames" initializationMax Kellermann
2016-07-08decoder/flac: remove "duration" parameter from flac_decoder_initialize()Max Kellermann
It's always 0.
2016-07-08decoder/flac: remove pointless checkMax Kellermann
2016-07-08decoder/flac: handle unknown duration correctlyMax Kellermann
If the duration is unknown, pass SignedSongTime::Negative(), as documented for decoder_initialized().
2016-07-08decoder/flac: pass SignedSongTime to decoder_initialized()Max Kellermann
2016-07-08decoder/flac: document flac_data::positionMax Kellermann
2016-07-08decoder/flac: remove obsolete sub-song supportMax Kellermann
This is obsolete because it has been moved to the MPD core.
2016-07-07client/ClientRead: call Break() before Close()Max Kellermann
Referencing the attribute "partition" is illegal after Close(), because Close() deletes "this".
2016-07-07event/BufferedSocket: OnSocketReady() returns true after closeMax Kellermann
Fixes use-after-free bug (https://bugs.musicpd.org/view.php?id=4548).
2016-07-06decoder/API: check initial_seek_running in _check_cancel_read()Max Kellermann
The "seeking" flag is not set for the initial seek, and so decoder_read() could be canceled when another SEEK was emitted during initial seek. This fixes several seek problems, for example the one reported for the FLAC decoder plugin: https://bugs.musicpd.org/view.php?id=4552
2016-07-05decoder/flac: try to recover from seek error()Max Kellermann
libFLAC API documentation suggests that FLAC__stream_decoder_flush() should be called to recover from FLAC__STREAM_DECODER_SEEK_ERROR.
2016-07-05decoder/flac: evaluate all possible FLAC__stream_decoder_get_state() valuesMax Kellermann
Stop after all fatal errors. This fixes assertion failures in libFLAC.
2016-07-05output/shout: remove pointless memset() callMax Kellermann
2016-07-05filter/route: use PcmSilence()Max Kellermann
2016-07-05PlayerThread: use PcmSilence() in SendSilence()Max Kellermann
No change for regular PCM, but DSD uses 0x69 now.
2016-07-05pcm/Volume: move silence pattern to Silence.cxxMax Kellermann
2016-07-05PlayerThread: make chunk allocation error non-fatal in SendSilence()Max Kellermann
Fixes abort after seeking on fast machines.
2016-07-01pcm/Volume: use 0x69 to generate DSD silenceMax Kellermann
2016-07-01filter/ReplayGain: skip PcmVolume if a mixer is setMax Kellermann
Previously, volume was applied twice: once by PcmVolume, and again by the hardware mixer.
2016-06-13decoder/flac: log seek errorsMax Kellermann
2016-06-13player/Thread: cancel outputs before seekingMax Kellermann
.. instead of doing it after seeking. After seeking, the command had no effect, because CheckDecoderStartup() waits for all outputs to finish. This caused a very long delay while seeking and switching songs (https://bugs.musicpd.org/view.php?id=4534).
2016-04-30encoder/wave: add constant WAVE_FORMAT_PCMMax Kellermann
2016-04-30encoder/wave: fix indentMax Kellermann
2016-04-25DecoderBuffer: add missing includeFlorian Schlichting
> In file included from src/decoder/DecoderBuffer.cxx:21:0: > src/decoder/DecoderBuffer.hxx:41:20: error: 'uint8_t' was not declared in this scope > DynamicFifoBuffer<uint8_t> buffer; > ^ > src/decoder/DecoderBuffer.hxx:41:27: error: template argument 1 is invalid > DynamicFifoBuffer<uint8_t> buffer; > ^ > src/decoder/DecoderBuffer.hxx: In member function 'void DecoderBuffer::Clear()': > src/decoder/DecoderBuffer.hxx:61:10: error: request for member 'Clear' in '((DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'int' > buffer.Clear(); > ^ > src/decoder/DecoderBuffer.hxx: In member function 'size_t DecoderBuffer::GetAvailable() const': > src/decoder/DecoderBuffer.hxx:78:17: error: request for member 'GetAvailable' in '((const DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'const int' > return buffer.GetAvailable(); > ^ > src/decoder/DecoderBuffer.hxx: In member function 'ConstBuffer<void> DecoderBuffer::Read() const': > src/decoder/DecoderBuffer.hxx:87:19: error: request for member 'Read' in '((const DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'const int' > auto r = buffer.Read(); > ^ > src/decoder/DecoderBuffer.hxx:88:27: error: could not convert '{<expression error>, <expression error>}' from '<brace-enclosed initializer list>' to 'ConstBuffer<void>' > return { r.data, r.size }; > ^ > src/decoder/DecoderBuffer.hxx: In member function 'void DecoderBuffer::Consume(size_t)': > src/decoder/DecoderBuffer.hxx:105:10: error: request for member 'Consume' in '((DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'int' > buffer.Consume(nbytes); > ^ This seems to be caused by a lacking include, fixed by the below patch. I'm unsure what made this appear now, though, compiler and toolchain libraries seem to be the same upstream versions that built 0.19.14-1 just fine in late March.
2016-04-19decoder/opus: limit the number of packets in _scan_stream()Max Kellermann
2016-04-19decoder/opus: support bigger OpusTags packetsMax Kellermann
Required for OpusTags packets which contain artwork. See https://bugs.musicpd.org/view.php?id=4520
2016-04-13decoder/ffmpeg: don't copy the AVPacket in ffmpeg_send_packet()Max Kellermann
Reduce some overhead. It is not necessary to copy the object.
2016-04-13decoder/ffmpeg: convert pointers to referencesMax Kellermann
2016-04-12decoder/ffmpeg: use av_packet_unref() instead of av_free_packet()Max Kellermann
av_free_packet() was deprecated in FFmpeg 3.0.
2016-03-30decoder/Thread: use "ffmpeg" as fallback instead of "mad"Max Kellermann
Adds support for stream codecs which havn't been explicitly listed in ffmpeg_mime_types.
2016-03-30notify: use "constexpr" only with glibcMax Kellermann
The Mutex and Cond constructors are only "constexpr" with glibc, and this is what this #ifdef is about. Backport of commit 459a812a See http://bugs.musicpd.org/view.php?id=4511
2016-03-14tag/TagPool: optimize _dup_item()Max Kellermann
When a reference counter is at its limit, don't allocate a new TagPoolSlot - that would result in many TagPoolSlot instances with ref==1. This in turn would make the linked list very very large, which means quadratic runtime for many operations.
2016-03-14tag/TagPool: add constexpr MAX_REFMax Kellermann
2016-03-14tag/TagPool: use prime number for NUM_SLOTSMax Kellermann
2016-03-07archive/iso9660: check path buffer boundsMax Kellermann
2016-03-07archive/iso9660: use a single path buffer for Visit()Max Kellermann
Avoid wasting 4 kB stack per directory level.
2016-03-07archive/iso9660: move the "." and ".." checks upMax Kellermann
2016-03-07archive/iso9660: add local variable "filename"Max Kellermann
2016-03-07archive/iso9660: make variables more localMax Kellermann
2016-03-06util/HugeAllocator: fix division by zero due to inverted checkMax Kellermann
There were two ways this could fail: 1. division by zero when sysconf(_SC_PAGESIZE)==0 2. mmap() failure because the size parameter is not aligned to page size Neither ever happened: sysconf() never fails, and the only caller passes a size that is already aligned. Phew.
2016-03-06protocol/ArgParser: fix range checkMax Kellermann
The old check unsigned(value) > std::numeric_limits<unsigned>::max() .. cannot ever fail.
2016-03-06decoder/dsdiff: fix off-by-one buffer overflowMax Kellermann
2016-03-06decoder/opus: limit tag size to 64 kBMax Kellermann
2016-03-06mixer/pulse: fix integer division roundingMax Kellermann
2016-03-01thread/Posix{Mutex,Cond}: use "constexpr" only with glibcMax Kellermann
Apparently all other C libraries are not compatible with "constexpr". Those which are not will get a performance penalty, but at least they work at all.
2016-02-23queue/Playlist: move only the tag items in TagModified()Max Kellermann
Fixes disappearing duration of remote songs during playback. See http://bugs.musicpd.org/view.php?id=4492
2016-02-23DetachedSong: add method MoveTagItemsFrom()Max Kellermann