Age | Commit message (Collapse) | Author |
|
This is required if a stream ands without another chained FLAC file.
|
|
|
|
|
|
|
|
It's always 0.
|
|
|
|
If the duration is unknown, pass SignedSongTime::Negative(), as
documented for decoder_initialized().
|
|
|
|
|
|
This is obsolete because it has been moved to the MPD core.
|
|
Referencing the attribute "partition" is illegal after Close(),
because Close() deletes "this".
|
|
Fixes use-after-free bug (https://bugs.musicpd.org/view.php?id=4548).
|
|
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
|
|
libFLAC API documentation suggests that FLAC__stream_decoder_flush()
should be called to recover from FLAC__STREAM_DECODER_SEEK_ERROR.
|
|
Stop after all fatal errors. This fixes assertion failures in
libFLAC.
|
|
|
|
|
|
No change for regular PCM, but DSD uses 0x69 now.
|
|
|
|
Fixes abort after seeking on fast machines.
|
|
|
|
Previously, volume was applied twice: once by PcmVolume, and again by
the hardware mixer.
|
|
|
|
.. 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).
|
|
|
|
|
|
> 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.
|
|
|
|
Required for OpusTags packets which contain artwork.
See https://bugs.musicpd.org/view.php?id=4520
|
|
Reduce some overhead. It is not necessary to copy the object.
|
|
|
|
av_free_packet() was deprecated in FFmpeg 3.0.
|
|
Adds support for stream codecs which havn't been explicitly listed in
ffmpeg_mime_types.
|
|
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
|
|
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.
|
|
|
|
|
|
|
|
Avoid wasting 4 kB stack per directory level.
|
|
|
|
|
|
|
|
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.
|
|
The old check
unsigned(value) > std::numeric_limits<unsigned>::max()
.. cannot ever fail.
|
|
|
|
|
|
|
|
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.
|
|
Fixes disappearing duration of remote songs during playback.
See http://bugs.musicpd.org/view.php?id=4492
|
|
|