- 20 May, 2019 2 commits
-
-
Max Kellermann authored
If the decoder finishes decoding the current song between the two IsIdle() checks, MPD stops playback instead of starting the decoder for the next song. This is usually not visible problem, because the main thread restarts it via playlist::ResumePlayback(), but that way it, ignores "single" mode. As a workaround, this commit adds another "queued" check which re-enters the player loop and checks again whether to start the decoder. Closes https://github.com/MusicPlayerDaemon/MPD/issues/556
-
Max Kellermann authored
The "queued" flag can only possibly be set if the decoder is still decoding the current song or if the decoder is stopped. This is also what the following assert() checks. This check was not necessary.
-
- 26 Apr, 2019 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 19 Nov, 2018 1 commit
-
-
Max Kellermann authored
Since we switched from autotools to Meson in commit 94592c14, we don't need to include `config.h` early to properly enable large file support. Meson passes the required macros on the compiler command line instead of defining them in `config.h`. This means we can include `config.h` at any time, whenever we want to check its macros, and there are no ordering constraints.
-
- 12 Nov, 2018 1 commit
-
-
Max Kellermann authored
-
- 06 Nov, 2018 1 commit
-
-
Max Kellermann authored
This fixes a valgrind warning because `buffer_before_play` initialization needs to know the audio format from the decoder.
-
- 31 Oct, 2018 1 commit
-
-
Max Kellermann authored
-
- 29 Oct, 2018 1 commit
-
-
Max Kellermann authored
This emits the event even if PlayerControl::Play() is used to replay the current song, which emits the missing "player" idle event. Closes #381
-
- 23 Sep, 2018 3 commits
-
-
Max Kellermann authored
Previously, there was the setting `buffered_before_play` which specified a percentage of the audio buffer, defaulting to `10%`. That was working well enough for quite some time, until high-quality audio formats became common. At 44.1 kHz, 16 bit stereo, MPD collected 2.3 seconds worth of data in the buffer before starting playback. With the same default settings and 192 kHz, 24 bit stereo, that was only 0.27 seconds. Making this depend on the byte size only leads to high latency at low quality, and too little data at high quality. The natural choice would be to use a duration instead of a byte size, which should give the same good experience with all audio formats. Since the `buffered_before_play` configuration setting was not understood well by users and caused more harm than good, this commit deprecates it. It has now no effect.
-
Max Kellermann authored
-
Max Kellermann authored
Simplify the formula, and I guess this makes the formula more reliable. Imagine somebody configured `buffered_before_play` larger than 25%; then the decoder would be woken up all the time. This doesn't seem logical. On the other hand, it's easy to understand that the decoder should be woken up below 75% buffer fill.
-
- 22 Sep, 2018 2 commits
-
-
Max Kellermann authored
Calculate the value only once.
-
Max Kellermann authored
-
- 21 Sep, 2018 10 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
Shouldn't ever happen, but who knows...
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 02 Aug, 2018 1 commit
-
-
Max Kellermann authored
-
- 23 Jun, 2018 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Since commit e81b0896, this is the same code as in ReplacePipe().
-
Max Kellermann authored
This requires re-adding the reference to struct DecoderControl, which was removed recently by commit 9f14e7a9
-
- 22 Jun, 2018 3 commits
-
-
Max Kellermann authored
Make all uses of MusicChunk safe.
-
Max Kellermann authored
We can implement this now that we have a MusicBuffer reference.
-
Max Kellermann authored
This tiny amount of overhead allows omitting the MusicBuffer in Clear().
-
- 12 May, 2018 1 commit
-
-
Max Kellermann authored
This mostly affects the Pulse output plugin which needs to "cork" the stream (closes #278).
-
- 25 Apr, 2018 1 commit
-
-
Max Kellermann authored
When switching to another song manually, the player checks if the decoder is already decoding that song; if so, it will attempt to reuse it by seeking it to the new position. That however fails if the decoder is not seekable (e.g. a radio stream) which leaves the user unable to switch to that song with the bogus error message "Not seekable".
-
- 25 Feb, 2018 1 commit
-
-
Patryk Hachuła authored
-
- 03 Feb, 2018 1 commit
-
-
Max Kellermann authored
Fixes deadlock bug. Closes #210
-
- 24 Jan, 2018 1 commit
-
-
Max Kellermann authored
Closes #203
-
- 12 Jan, 2018 1 commit
-
-
Max Kellermann authored
This is another instance of the kludge we already have a few lines above that. It works around a deadlock/race condition revealed by commit 98a7c62d
-
- 07 Jan, 2018 1 commit
-
-
Max Kellermann authored
-
- 03 Jan, 2018 2 commits
-
-
Max Kellermann authored
The output plugin shall decide whether to insert silence or do nothing at all. The ALSA output plugin has already implemented this. Inserting silence is not necessary or helpful for some plugins, and may even hurt them (e.g. "recorder").
-
Max Kellermann authored
-