Hajime Hoshi
633cfe3a0f
audio/internal/readerdriver: Update comments
...
Updates #1660
2021-06-02 00:35:20 +09:00
Hajime Hoshi
0f5aa315d6
audio/internal/oboe: Bug fix: Player must be protected by a mutex
...
As Close can be invoked by the finalizer, Player must be concurrent
safe. Especially the member player must be synced.
Updates #1549
Updates #1656
2021-06-01 03:01:35 +09:00
Hajime Hoshi
b0a8ecefeb
android/internal/oboe: Update Oboe to 1.6.0
2021-05-30 05:07:16 +09:00
Hajime Hoshi
cfb6c2c3ad
audio/internal/readerdriver: Disable Android readerdriver
...
Disable Android reade rdriver, which uses OpenSL. AAudio should be
used as OpenSL causes an issue especially on Android 8.
Updates #1656
2021-05-30 01:45:23 +09:00
Hajime Hoshi
c46981a719
audio/internal/readerdriver: Refactoring (Windows)
2021-05-29 03:43:05 +09:00
Hajime Hoshi
98bfe5a692
audio/internal/readerdriver: Reimplement Windows driver with multiple waveOutOpen
...
This improves the result of examples/piano significantly.
The issue of mutexes (#1652 ) is also resolved by this new
implementation.
Closes #1652
Closes #1653
2021-05-28 23:54:36 +09:00
Hajime Hoshi
3e113e69e8
audio/internal/readerdriver: Revert 2 commits
...
This reverts commit 43789c72a9
.
This reverts commit 100b42513e
.
Updates #1652
Updates #1653
Reason: This causes noises on examples/piano when a lot of notes played at the same time
2021-05-28 22:19:57 +09:00
Hajime Hoshi
43789c72a9
audio/internal/readerdriver: Bug fix: some of waveOut* functions should be protected by mutex (Windows)
...
Updates #1652
2021-05-28 21:10:39 +09:00
Hajime Hoshi
100b42513e
audio/internal/readerdriver: Reduce the mutex usages (Windows)
...
Closes #1652
2021-05-28 21:00:16 +09:00
Hajime Hoshi
c2148dcc01
Revert "tmp"
...
This reverts commit 9619276326
.
Reason: Wrong commit
2021-05-28 19:49:59 +09:00
Hajime Hoshi
9619276326
tmp
2021-05-28 19:38:03 +09:00
Hajime Hoshi
dc2f5e296e
audio/internal/readerdriver: Reduce mutext on Windows
...
The granularity of context switches on Windows is pretty big and
mutexes might not be efficent.
2021-05-28 19:25:59 +09:00
Hajime Hoshi
646f48ef09
audio/internal/readerdriver: Change the timing of updating the player state (Windows)
2021-05-28 17:10:28 +09:00
Hajime Hoshi
c54e5371ad
audio/internal/readerdriver: Refactoring (Windows)
2021-05-28 16:45:55 +09:00
Hajime Hoshi
541156f255
audio/internal/readerdriver: Wait the loop when there is no player (Windows)
2021-05-28 16:16:56 +09:00
Hajime Hoshi
6a8abac194
audio/interna/readerdriver: Bug fix: Potential issue when all the players were gone
...
When all the players were gone, the waveOut is closed once. From
this state, playing an audio again might take long.
This change fixes the issue by not closing the waveOut even when
all the players are gone.
This change also changes the returning value of read when the
player doesn't play.
2021-05-28 16:09:43 +09:00
Hajime Hoshi
c3b8fa1c45
audio/internal/readerdriver: Handle errors correctly (Windows)
2021-05-28 14:09:05 +09:00
Hajime Hoshi
6c3c3533fb
audio/internal/readerplayer: Bug fix: Potential deadlock when waveOutWrite failed (Windows)
2021-05-28 05:17:32 +09:00
Hajime Hoshi
f334eee1e4
audio/internal/readerdriver: Refactoring: unify add and play (Windows)
2021-05-28 04:40:50 +09:00
Hajime Hoshi
72d8d77173
audio/internal/readerdriver: Bug fix: AudioQueuePause/Reset might take long time
...
This issue has existed since ae14caee93
.
This change fixes the issue by skipping the C function calls when
possible.
Updates #1650
2021-05-28 02:51:14 +09:00
Hajime Hoshi
c9fcf57fbd
audio/internal/readerdriver: Refactoring (Android)
2021-05-27 01:00:41 +09:00
Hajime Hoshi
c4f85bea2b
audio/internal/readerplayer: Bug fix: Delay on audio on Android
...
Updates #1650
2021-05-27 00:52:45 +09:00
Hajime Hoshi
88d2663bc5
audio/internal/readerdriver: Mark EOF at the first reading
2021-05-26 13:03:47 +09:00
Hajime Hoshi
46ed239632
audio/internal/readdriver: Bug fix: Potential busy loop on Android
...
This is basically the same fix as 91d3d6b4e7
but for Android.
Updates #1650
2021-05-26 12:46:48 +09:00
Hajime Hoshi
8692ba5f06
audio/internal/readerdriver: Refactoring (js)
2021-05-26 03:45:12 +09:00
Hajime Hoshi
91d3d6b4e7
audio/internal/readerdriver: Bug fix: Avoid busy loop when EOF is reached
...
This is a part of reverting 81015a3c19
.
On Drawin, the loop became busy when the source reached EOF. This
change fixes this issue by making the loop wait when the EOF is
reached and until the state is reset.
Updates #1650
2021-05-26 03:37:50 +09:00
Hajime Hoshi
800a929e84
audio/internal/readerdriver: Add comments
...
Updates #1549
2021-05-23 00:38:18 +09:00
Hajime Hoshi
5bd1a883d1
audio/internal/readerdriver: Implmeent a reader driver for Windows
...
Updates #1549
2021-05-23 00:14:59 +09:00
Hajime Hoshi
e43dcc2265
audio/internal/readerdriver: Bug fix: An error was overwritten
2021-05-18 21:08:26 +09:00
Hajime Hoshi
ae14caee93
audio/internal/readerdriver: Refactoring (darwin)
2021-05-17 23:18:55 +09:00
Hajime Hoshi
58f6eb0dea
audio/internal/readerdriver: Refactoring
2021-05-17 04:04:04 +09:00
Hajime Hoshi
66999989e1
audio/internal/readerdriver: Bug fix: Need to lock the callback logic
2021-05-17 04:03:04 +09:00
Hajime Hoshi
089883aba0
audio/internal/readerdriver: Refactoring
2021-05-17 03:51:24 +09:00
Hajime Hoshi
d1138bc615
audio/internal/readerdriver: Make Play async on Android
...
Updates #1549
2021-05-16 20:13:39 +09:00
Hajime Hoshi
cf6edae5b3
audio/internal/readerdriver: Bug fix: Protect playImpl by the mutex on Darwin
2021-05-16 20:07:51 +09:00
Hajime Hoshi
58c1ed0e23
audio/internal/oboe: Bug fix: Opening a stream might fail when too many streams are opened
...
openStream might fail when too many streams are opened in a short time.
In this case, sleep 1[ms] and retry to open the stream.
Updates #1549
Closes #1645
2021-05-16 19:43:47 +09:00
Hajime Hoshi
1dd48388b4
audio/internal/readerdriver: Disable the reader driver for Android temporarily
...
Updates #1549
Updates #1645
2021-05-16 15:54:02 +09:00
Hajime Hoshi
bb4a3ce89b
audio/internal/oboe: Add prefixes to the C functions
2021-05-16 03:03:34 +09:00
Hajime Hoshi
fc8b3d70fe
audio/internal/oboe: clang-format
2021-05-16 03:01:43 +09:00
Hajime Hoshi
2edb286ec4
audio/internal/oboe: Bug fix: Use-after-free of a player
...
In theory, a closed player was used unexpectedly by these steps:
1. Suspend is called by switching the application
2. Player_Close is called
3. Resume is called by reactivating the application
The set of GetPlayersToResume() had a closed player and the trying to
play it caused the use-after-free problem.
This changes fixes the issue by removing the player from the set of
GetPlayerToResume() when closing it. iOS version already has the logic
to remove the player appropriately.
Updates #1645
Closes #1646
2021-05-16 02:21:00 +09:00
Hajime Hoshi
5f773a3277
audio/internal/readerdriver: Refactoring
2021-05-16 02:08:33 +09:00
Hajime Hoshi
49172a235b
audio/internal/readerdriver: Bug fix: AudioQueueFlush was not needed
...
Rather, AudioQueueFlush after AudioQueueReset might cause an error.
Closes #1644
2021-05-15 22:47:09 +09:00
Hajime Hoshi
81015a3c19
audio/internal/readerdriver: Refactoring: EOF doesn't matter to determine when to stop the waiting
2021-05-15 22:39:54 +09:00
Hajime Hoshi
9b965a6308
audio/internal/go2cpp: Simplify reading the source
2021-05-10 04:00:58 +09:00
Hajime Hoshi
9585c1e09a
audio/internal/go2cpp: Refactoring
2021-05-10 03:35:21 +09:00
Hajime Hoshi
52c609459c
audio/internal/readerdriver: Change the returning type of UnplayedBufferSize int64 -> int
2021-05-10 03:22:19 +09:00
Hajime Hoshi
7a6bdc8388
audio/internal/readerdriver: Bug fix: Deadlock at Close (js)
2021-05-10 01:10:42 +09:00
Hajime Hoshi
2c8d3826fa
audio/internal/readerdriver: Create a dedicated loop to read the source (js)
...
Closes #1637
2021-05-10 00:47:07 +09:00
Hajime Hoshi
df40217427
audio/internal/readerdriver: Skip operation on error (js)
2021-05-09 23:09:15 +09:00
Hajime Hoshi
737ccf18fb
audio/internal/readerdriver: Make Play async internally on macOS and iOS
...
Updates #1638
2021-05-09 22:03:48 +09:00