- 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 3 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
-
Max Kellermann authored
Eliminates unnecessary mutex locks.
-
- 30 Dec, 2017 1 commit
-
-
Max Kellermann authored
-
- 29 Dec, 2017 2 commits
-
-
Max Kellermann authored
When the decoder is still starting up while we handle a SEEK, finish the "player SEEK" immediately and re-enter the player loop, being able to handle commands (and even cancel the pending seek). This is the first part in a series of patches to solve the "blocking input blocks decoder, blocks player, blocks the main thread" problem. There are many other blocking code locations left, and the main thread isn't non-blocking either because it waits for "seeking" to become false.
-
Max Kellermann authored
-
- 28 Dec, 2017 2 commits
-
-
Max Kellermann authored
The STOP, EXIT and CLOSE_AUDIO commands are not finished here; they are propagated to PlayerControl::RunThread() where the outputs.Cancel() call will be done again.
-
Max Kellermann authored
Allows signalling a failed seek, and replaces several redundant command checks after the ProcessCommand() call.
-
- 27 Dec, 2017 2 commits
-
-
Max Kellermann authored
Decouple this function from player command execution.
-
Max Kellermann authored
-
- 22 Dec, 2017 9 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Use one single std::lock_guard in Run(), and replace the manual Lock()/Unlock() calls.
-
Max Kellermann authored
Eliminate more unlock/lock transitions, making the code more robust.
-
Max Kellermann authored
-
Max Kellermann authored
Regression from commit 0772e571
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 21 Dec, 2017 7 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-