The chans_to_reorder variable was reset after being set up. Channel
reordering was *not* needed for 5.1 and below, but was needed for upper
configurations.
This reverts commit dcb42685eb.
My bad ! This commit is useless, the code and the documentation were
perfectly clear:
"This callback may be called concurrently with time_get(), play(),
pause() or flush(). It will however be protected against concurrent
calls to start(), stop(), volume_set(), mute_set() or device_select()."
The config "advanced" flag was unused and has been removed by
6a7a137f7b.
It has been removed from many add_*() macros, but not all. Remove it
from the remaining macros.
Set volume/mute function pointers when handle is freed, to ensure
sio_setvol() is not called on a freed handle. Fixes crashes when volume
is adjusted while playback is stopped.
Fixes#25796
VolumeSet (called from any threads) was accessing the au_unit variable,
that is written and setup from the aout stream thread.
This also fixes possible crashes when changing the volume after a
failing Start().
Fix data race with au_init, leading to crashes, since the audiounit was
stopped from a different thread than the playback one. Indeed, mute
callback can be called from any threads.
where identical to shorttext, or near enough.
bad because:
- wastes resources.
- useless tooltips in prefs GUI (poor UX) - tooltip longtext should add
something of value.
- useless repetition of text in certain help output.
in some cases they differed only in full-stop, creating unnecessary extra
burden on translators.
The previous calculation was wrong and could lead to two potential
issues:
- Too much wake/sleep because the block remaining data is very small
- Too long sleep, if the block is longer than the buffer size, that
could lead to underrun
To fix this issue, use the same sleep calculation than wasapi.
Contrary to claims in the commit message, it introduces an extra memory
copy of all audio samples for no apparent reasons.
This reverts commit 0bdc7268dc.
Instead of AudioSystem.getOutputLatency().
That way, we are sure the get the latency of the current output device.
Note: both methods are hidden and should not be used in favor or
AudioTrack.getTimestamp(). Unfortunately, getTimestamp() returns a valid
timestamp too late (after few seconds) or doesn't work with some phones.
Therefore, the usage of the hidden API is still needed as a backup plan.
cf. https://github.com/google/ExoPlayer/issues/5763
The android team allow the usage of this hidden API, waiting for a new
method in next Android versions.
If "--volume-save" == false, then the volume is set from Open(),
therefore a gain is requested causing the vlc_mutex_assert() in
aout_GainNotify().
The gain should be notified from any aout callbacks, but not from the
Open().