Max Kellermann
|
a00d412008
|
player/Thread: initialize play_audio_format, fixes assertion
This fixes an assertion failure caused by resuming playback before the
decoder has finished startup.
|
2017-08-23 17:43:49 +02:00 |
|
Max Kellermann
|
979f1b6c39
|
release v0.20.9
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlkz5jkQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEubuD/kBXMcV4XawqGNNtSHdrY8CxSL8wJMCMJQl
aMgRkKLPRml8Hj9FNNG9pjXBuT+qUgPX7t9gBEiT7c+sV3fHH40gUf1js5GIsEPm
BAVfvww5EhmQWWVhPTLk1iZ4jp6E96mDmIG1znwo7etSZHXU8RJfR7woBi3SPJ9f
OPcrimskNuWpAWeaEIKi/1Iwzy8d9VK9Ttb73gA3M5zSm7ioXzt3YClpwLRM8JU6
QeUJchy6VwXnygswjUNmbhPc3GsD2FyUZ4OtJ0hodnqqajfldBxhcHUnQk4zZULr
1nLSyOuA9bwLuFohH1T6HiY9z8PFzgqdIHvsjOJgZ4gQa69PVNjal2tUEUav9zFv
aK4LvTVPnIk+hqRbtLpV7/rPKuClrC9BO4oYdBGBDNY4hqVpvRA9obP1s00aOi+K
UhYqLqg7yeIEeTlUxFOhXJCKAEL69BuXT5ihJtDlB/dCUzv37sEch/4WDgs7uc+O
9kJYlElvozw57mbczsee/PCSnSWrLCq/qG/bNEUUQOTueWNuifh3PL62UXGgfbEH
01hJDyLr6ETSmWn7rjTfLJiHThX/EQQvOhs+35fbCyry65z4tFwrilGDmFVUWGPq
/6QEpY1D6q4fkoma/iWOZoTkfKewatAPGMGWoJaGhCnfQFz4VTFtS2bDtuUctQ16
jnXnPFxqBw==
=0SSp
-----END PGP SIGNATURE-----
Merge tag 'v0.20.9'
release v0.20.9
|
2017-06-04 12:57:05 +02:00 |
|
Max Kellermann
|
a057b4f6d8
|
*: add lost of "noexcept" specifications
|
2017-06-04 12:46:48 +02:00 |
|
Max Kellermann
|
781487c4dd
|
thread/Thread: use BoundMethod
|
2017-02-10 22:46:09 +01:00 |
|
Max Kellermann
|
5900253b85
|
update copyright year
|
2017-01-03 20:48:59 +01:00 |
|
Max Kellermann
|
2e182e84c3
|
thread/Mutex: remove ScopeLock, use std::lock_guard directly
|
2017-01-03 07:11:57 +01:00 |
|
Max Kellermann
|
d2e47e014a
|
player/Thread: reduce unlock/lock overhead in PlayerCommand::PAUSE handler
|
2016-12-14 20:24:52 +01:00 |
|
Max Kellermann
|
a5b8d7917f
|
player/Thread: mutex must be locked inside OpenOutput()
|
2016-12-14 20:23:23 +01:00 |
|
Max Kellermann
|
d0e735ee4b
|
player/Thread: mutex must be locked inside CheckDecoderStartup()
|
2016-12-14 20:13:18 +01:00 |
|
Max Kellermann
|
ece5971027
|
output/Multiple: move Wait() to struct PlayerControl
Eliminate a dependency from MultipleOutputs on PlayerControl.
|
2016-12-14 19:37:01 +01:00 |
|
Max Kellermann
|
7c6b0d5c31
|
player/Thread: use class ScopeLock
|
2016-12-14 13:10:48 +01:00 |
|
Max Kellermann
|
03151310cf
|
player/Control: add method LockApplyBorderPause()
|
2016-12-14 13:09:48 +01:00 |
|
Max Kellermann
|
baa2bc0c38
|
player/Control: add method LockSetOutputError()
|
2016-12-14 13:01:17 +01:00 |
|
Max Kellermann
|
9fb7cc796b
|
decoder/Control: add attribute configured_audio_format
Obsoletes the same variable from AudioConfig.cxx.
|
2016-12-03 14:12:08 +01:00 |
|
Max Kellermann
|
6cc1ff5eeb
|
decoder/Control: make ReplayGainConfig const
|
2016-12-03 13:05:25 +01:00 |
|
Max Kellermann
|
ee57c3490a
|
{decoder,player}/Control: add ReplayGain{Config,Mode} attributes
Don't use the global variables in class DecoderBridge; instead,
forward these values to the decoder thread via PlayerControl and
DecoderControl.
|
2016-11-25 12:51:55 +01:00 |
|
Max Kellermann
|
d9cb85df83
|
output/Plugin: remove 'Error&' parameters, use C++ exceptions only
|
2016-11-09 12:36:21 +01:00 |
|
Max Kellermann
|
445e82be75
|
output/Multiple: migrate from class Error to C++ exceptions
|
2016-11-09 12:31:23 +01:00 |
|
Max Kellermann
|
4cd21f1e07
|
decoder/Control: throw exception on Seek() error
|
2016-11-07 09:05:28 +01:00 |
|
Max Kellermann
|
308010794a
|
decoder/Control: convert error from Error to std::exception_ptr
Prepare full C++ exception support in the decoder thread.
|
2016-09-08 17:16:03 +02:00 |
|
Max Kellermann
|
b67e7df38e
|
release v0.19.17
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXgCv6AAoJECNuiljG20USR3cP/RALB4qlhecMo6H8VwZvfjiA
FHfhBKfdpHM3U3EEIZc1zxwHIdWk1yELtmx298vmJbWUifpYAYarXF5497tZf2XE
AVfhTltEJEd7xB5ZULnEScM1aHzMZm5HRcHwM1UqNCsXP7PT8fmpk7gw19pKOChT
h8V3+tpC403lCIcHcJGlkuzgZvKIZDs73g7a0+4GxD9XRAPwnMYRl3Cfd8QjKT/U
r67AcOwQlS6hWJFs0K1JjOQwfwbRq2YmuOmFJua6n8O6CI/7t4h3faSQ0V/5qjFd
k/pAMRtX6mz3mjVhZv4cuMy+QILWlxUNwLBIwtxSfbwcFKrN0vtIRG8O9622hTs2
+mvYiVboWABk6hnukiDAfki96jWYHlsCJR5oIK9DZ4nBe5RVp0r9Nq/ook2AW2it
6VgYIDBI5zS/blyJzXtzDVWEtSmLFxm21JSl+jHfWDtL6/rQGimdVOFkRw40oCBz
seYb5kIbilrg6xq1KiBMT+EWmXMf+q+3YWQsu01blXGYGPhpUqhIr0h/qUfWAqMs
fwIsoxsTrkQQjEWb6YWupPrdOLZ+kTAyaK+7v8B8JmzS/H3SohusMPUZKsQXl82s
5LJVLtVxB9WRRmpfSoYqfk7CkTHOktCzVmiHb/FYUYElS9VKmJYYU8XQ25snCoZ6
bYtERsH28q8rrpkWWEXP
=IXD5
-----END PGP SIGNATURE-----
Merge tag 'v0.19.17'
release v0.19.17
|
2016-07-09 00:46:09 +02:00 |
|
Max Kellermann
|
d3c7fac606
|
thread/Thread: throw std::system_error on error
|
2016-06-17 19:11:20 +02:00 |
|
Max Kellermann
|
8b903626c2
|
release v0.19.16
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXXuZbAAoJECNuiljG20USSegP/1gYoDyp4vDDCcRBNZkr3hlE
VbFyEz06/chfUTCRWFxtM6ghVMzSpqv7I8wDA8zv22NTkForVWD3gjimtJqJ/R4w
aT7QMZJmJUIH0Uf+dRp98YRG7m5S1Y5JkKEYu4oxQOECxbNMPd+ilbb6wwr2pYZ/
k2ks+oyYtPgqtWlriIbJMwXOyQEfqNCJgzxUzC2U6idVALYpj+5aK+VTY4Nk1YXw
nLAu8TT40jNYFfss0bDYBzQbm/82m8Q9JIkmoOpX/3WaRaCjaVza7IvRKgDPZutJ
mmrtu5SJ+QgLQLaXvav84KwtXhDbJu4zEbC7tUL0LGSmzbpiiz2DSUJP2jQ0C6nS
wgcACFkHGBLOjKNbjDB1eUhS7ouzxTGgPlsMC89254R7XQP/5EV9H3Quxb48Bxq7
PuW6nNHytppfAIZP18X62oL8hpSgwK1zLe34jzayJlkGIg5O1he4FcJQykvlzrjm
fBvL+hX3TM9exfASQujNXVgxFGPmgb37bE2aQyxZunE1DltJWfHyOhdme9vCuEcB
acz8gR/jcp8OKe4RCEdD1g86CSW2wlMfKfnzuwPPhcw0L3kz6OYcjRr2oMae7uG0
/NFw+PcdHcVKXjiRoJsdCvtN+jRtJhCUn314IskgyKad/UNcELbo7WDBUqHC36Wg
ncM6Sis4oal4jPXJ2JoE
=6ee1
-----END PGP SIGNATURE-----
Merge tag 'v0.19.16'
release v0.19.16
|
2016-06-13 19:03:59 +02:00 |
|
Max Kellermann
|
ac7ce73526
|
player/Thread: cancel audio when decoder startup on seek fails
Fixes assertion failure in MultipleOutputs::Open() after seeking to a
failing song during playback.
|
2016-04-21 14:03:27 +02:00 |
|
Max Kellermann
|
1d67aa7bf2
|
update copyright year to 2016
|
2016-02-26 17:54:05 +01:00 |
|
Max Kellermann
|
faca8bc02a
|
decoder/Control: Seek() returns Error information
|
2015-11-11 19:56:08 +01:00 |
|
Max Kellermann
|
3b71e2abef
|
player/Thread: call DecoderCommand::SEEK only on existing decoder
If the decoder was just started, it already seeks to the desired
position.
|
2015-11-05 00:41:54 +01:00 |
|
Max Kellermann
|
30cad0c5f1
|
player/Thread: move code to WaitDecoderStartup()
|
2015-11-05 00:39:30 +01:00 |
|
Max Kellermann
|
3a387643b3
|
player/Thread: move player_command_finished() to PlayerControl
|
2015-11-05 00:38:09 +01:00 |
|
Max Kellermann
|
e6b37703da
|
player/Thread: copy pc.seek_time in ActivateDecoder()
If this gets called while seeking, do the right thing. This moves the
elapsed_time setter from method Run(), which is now redundant.
|
2015-11-05 00:30:04 +01:00 |
|
Max Kellermann
|
990f473bb3
|
player/Control: initialize seek_time in EnqueueSongLocked()
Allows removing a few special cases in the player thread.
|
2015-11-05 00:29:03 +01:00 |
|
Max Kellermann
|
cf1de78205
|
player/Thread: remove decoder error check from ActivateDecoder()
It is futile to check for decoder errors before the decoder has
finished startup. At this time, it's unlikely that the decoder has
already failed.
|
2015-10-28 18:24:42 +01:00 |
|
Max Kellermann
|
ccea6dd74b
|
player/Thread: rename WaitForDecoder() to ActivateDecoder()
.. and fix its API documentation.
|
2015-10-28 18:20:48 +01:00 |
|
Max Kellermann
|
166b490eed
|
player/Thread: move code to ForwardDecoderError()
|
2015-10-27 23:28:13 +01:00 |
|
Max Kellermann
|
efd871ad2f
|
player/Thread: clear pc.next_song earlier in WaitForDecoder()
|
2015-10-27 23:25:50 +01:00 |
|
Max Kellermann
|
e753c924ef
|
player/Thread: merge the cross_fading flag into enum CrossFadeState
|
2015-10-27 22:43:46 +01:00 |
|
Max Kellermann
|
9dc7b5a6d9
|
player/Thread: move ResetCrossFade() calls to where pipes are set
Move ResetCrossFade() to where cross-fading would actually break, to
make the cross-fading state more reliable.
|
2015-10-27 22:11:56 +01:00 |
|
Max Kellermann
|
f5d21c9cdb
|
player/Thread: add method ResetCrossFade()
|
2015-10-27 22:05:41 +01:00 |
|
Max Kellermann
|
6ce13646da
|
player/Thread: more CrossFadeState documentation
|
2015-10-27 21:12:20 +01:00 |
|
Max Kellermann
|
151653dd98
|
player/Thread: automatic CrossFadeState enum values
|
2015-10-27 21:05:10 +01:00 |
|
Max Kellermann
|
619cfe6a1c
|
player/Thread: move enum CrossFadeState into the Player class
|
2015-10-27 20:48:14 +01:00 |
|
Max Kellermann
|
5fba8d773c
|
PlayerThread, ...: move to src/player/
|
2015-08-15 15:55:46 +02:00 |
|