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
Hajime Hoshi
a285a84df0
audio/internal/readerdriver: Use AudioQueuePrime
2021-05-09 21:31:55 +09:00
Hajime Hoshi
6644e43025
audio/internal/readerdriver: Bug fix: AudioQueueStop might invoke the callback and then caused deadlock
2021-05-09 21:07:39 +09:00
Hajime Hoshi
015475ad2c
audio/interal/readerdriver: Misspelling
2021-05-09 19:55:12 +09:00
Hajime Hoshi
d9972822e2
audio/internal/readerdriver: unqueuedBufs should be reset when the player is reused later
2021-05-09 19:54:34 +09:00
Hajime Hoshi
f04230da08
audio/internal/readerdriver: Bug fix: The player became closed unexpectedly
2021-05-09 19:35:36 +09:00
Hajime Hoshi
87956560f3
audio/internal/readerdriver: Implement for iOS
...
Updates #1549
2021-05-09 19:04:59 +09:00
Hajime Hoshi
c85ef4e40b
audio/internal/readerdriver: Bug fix: Deadlock at resuming
2021-05-09 18:30:46 +09:00
Hajime Hoshi
fa13b81d38
audio/internal/readerdriver: Prepare AudioQueues first
...
Updates #1638
2021-05-09 17:24:00 +09:00
Hajime Hoshi
99e2d79ec8
audio/internal/readerdriver: clang-format -i
2021-05-09 17:04:15 +09:00
Hajime Hoshi
ac2753f411
audio/internal/readerdriver: Reuse AudioQueue whenever possible
...
AudioQueueStart is expensive when the AudioQueue was newly created.
To mitigate the cost, cache and reuse AudioQueue instances.
Closes #1638
2021-05-09 16:30:24 +09:00
Hajime Hoshi
9caead5a38
audio/internal/readerdriver: Refactoring: Remove player.id
2021-05-09 15:53:33 +09:00
Hajime Hoshi
383bceddd5
audio/internal/readerdriver: Refactoring
2021-05-09 14:41:23 +09:00
Hajime Hoshi
f9b8238cd6
audio/internal/readerdriver: Disable operations when an error is recorded
2021-05-09 05:58:55 +09:00
Hajime Hoshi
7eeaef7ff8
audio/internal/readerdriver: Refactoring
2021-05-09 05:46:55 +09:00
Hajime Hoshi
22567d20b6
audio/internal/readerdriver: Implement {,Set}Volume for macOS
2021-05-09 05:36:03 +09:00
Hajime Hoshi
9df1092507
audio/internal/readerdriver: Bug fix: AudioQueue{Pause,Reset,Flush} cannot be called before AudioQueueStart
2021-05-09 05:28:42 +09:00
Hajime Hoshi
bc22ab53b2
audio/internal/readerdriver: Add comments
2021-05-09 05:01:51 +09:00
Hajime Hoshi
eb3301d30c
audio/internal/readerdriver: Implement a reader-style driver for macOS
...
Updates #1549
2021-05-09 04:56:31 +09:00
Hajime Hoshi
fcdd4e16d4
audio/internal/readerdriver: Fill the buffer whenever starting to play
2021-05-09 03:51:45 +09:00
Hajime Hoshi
ae9e89b814
audio/internal/oboe: Bug fix: Not all players should not be suspended
2021-05-09 03:07:17 +09:00
Hajime Hoshi
7487222740
audio/internal/readerdriver: Remove Context's Close
2021-05-07 16:50:19 +09:00
Hajime Hoshi
410d0f52e5
audio/internal/readerdriver: Bug fix: createBuffer failed when the buffer size is 0
...
When the decoded audio size is exactly multiples of an internal
buffer size, the buffer's size becomes exactly zero when being
appended. In this case, createBuffer fails and the application
crashes.
This change fixes this issue by skipping to append a buffer in such
cases.
Closes #1635
2021-05-07 02:35:57 +09:00
Hajime Hoshi
aa9f669ec3
audio/internal/readerplayer: Move the buffer for resuming to the driver side
...
Closes #1633
2021-05-05 21:54:21 +09:00
Hajime Hoshi
4e0e5c6bbc
audio/internal/oboe: Bug fix: Always use OpenSL
...
AAudio doesn't care about plugging in/out headsets. There is a
workaround [1], but this is not easy to apply. Instead, alwasy use
OpenSL.
[1] https://github.com/google/oboe/blob/master/docs/notes/disconnect.md
Closes #1634
2021-05-05 18:09:44 +09:00
Hajime Hoshi
1fecaa0a90
audio/internal/readdriver: Bug fix: Wait for a while after finishing to write
...
Closes #1632
2021-05-05 17:05:23 +09:00