Hajime Hoshi
78459953cf
audio/internal/readerdriver: Use the common player implementation for Android
...
Updates #1662
2021-06-06 22:53:56 +09:00
Hajime Hoshi
0aeb409eba
audio/internal/readerdriver: Refactoring: Separate the player part (Linux)
...
Updates #1549
2021-06-06 16:27:03 +09:00
Hajime Hoshi
a74c00074e
audio/internal/readerdriver: Refactoring
...
Updates #1549
2021-06-06 16:17:14 +09:00
Hajime Hoshi
048a30b4e7
audio/internal/readerdriver: Refactoring (Linux)
...
Updates #1549
2021-06-06 14:19:23 +09:00
Hajime Hoshi
7b320f2aeb
audio/internal/readerdriver: Adjust buffer size for low-spec machines (Linux)
...
Updates #1549
2021-06-05 23:00:52 +09:00
Hajime Hoshi
85b436b5bb
audio/internal/readerdriver: Reduce locked scopes (Linux)
...
Updates #1549
2021-06-05 22:01:55 +09:00
Hajime Hoshi
044a0c69a7
audio/internal/readerdriver: Avoid busy loop (Linux)
...
Updates #1549
2021-06-05 21:33:43 +09:00
Hajime Hoshi
be7bc5ae4c
audio/internal/readerdriver: Remove goroutines to improve latency (Linux)
...
Updates #1549
2021-06-05 21:09:20 +09:00
Hajime Hoshi
da55ab895a
audio/internal/readerdriver: Use PulseAudio for Linux/UNIX
...
Updates #1549
2021-06-05 19:46:36 +09:00
Hajime Hoshi
3fb469d5a5
audio/internal/readerdriver: Add comments (Windows)
...
Updates #1549
2021-06-04 23:58:35 +09:00
Hajime Hoshi
08dbb41b35
audio/internal/oboe: Implement self-mixing and re-enable Oboe
...
Updates #1549
Updates #1656
Closes #1660
2021-06-03 00:54:42 +09:00
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
4fcfdb39d4
audio: Bug fix: Compile error for tests
2021-05-10 04:03:58 +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
Hajime Hoshi
ded3cd1433
audio/internal/readerdriver: Refactoring: Remove player.state
2021-05-05 15:32:53 +09:00
Hajime Hoshi
f556590582
android/internal/readerdriver: Bug fix: Infinite recursive at closeImpl
2021-05-05 03:58:47 +09:00
Hajime Hoshi
c954dfa8fb
audio/internal/readerderiver: Bug fix: Reduce noises on Android
...
Closes #1632
2021-05-05 02:14:59 +09:00
Hajime Hoshi
83c9015468
audio/internal/oboe: Bug fix: Guard the players by a mutex
...
Closes #1631
2021-05-05 00:51:53 +09:00
Hajime Hoshi
ad86c297fb
audio/internal/readdriver: Implement a driver for Android with Oboe
...
Closes #1626
2021-05-04 23:51:36 +09:00
Hajime Hoshi
804881fa94
audio/internal/readerdriver: Enable to return error at Suspend/Resume
2021-05-04 23:18:16 +09:00
Hajime Hoshi
58843b68f9
internal/hooks: Enable to return error at suspend/resume audio
2021-05-04 23:09:01 +09:00
Hajime Hoshi
bcf8ef85b6
audio: Bug fix: Compile error on the tests
...
Updates #1630
2021-05-04 22:10:49 +09:00
Hajime Hoshi
29eade9b4a
audio/internal/readdriver: Bug fix: Implement Suspend/Resume for browsers
...
Closes #1630
2021-05-04 18:49:39 +09:00
Hajime Hoshi
11e76d3fc8
audio/vorbis: Catch the Seek error
2021-05-03 23:11:14 +09:00
Hajime Hoshi
fc5970768d
audio/internal/go2cpp: Bug fix: Potential deadlock at Play
...
Closes #1629
2021-05-03 17:54:25 +09:00
Hajime Hoshi
7adf6aac27
audio/internal/readerdriver: Simplify type names
2021-05-01 16:25:40 +09:00
Hajime Hoshi
1acf5bc260
audio/internal/readerdriver: Bug fix: Compile error
2021-04-29 18:37:10 +09:00
Hajime Hoshi
760072e3a9
audio/internal/readerdriver: Use a channel instead of a callback function
2021-04-29 18:21:06 +09:00
Hajime Hoshi
e62eba387d
audio/vorbis: Accept io.Reader instead of io.ReadSeeker
...
Closes #1621
2021-04-24 16:41:23 +09:00
Hajime Hoshi
68d24f1c62
audio/mp3: Accept io.Reader instead of io.ReadSeeker
...
Updates #1621
2021-04-24 16:39:49 +09:00
Hajime Hoshi
62899e5902
audio/wav: Accept io.Reader instead of io.ReadSeeker
...
Updates #1621
2021-04-24 16:35:28 +09:00
Hajime Hoshi
08c3025560
audio/internal/readerdriver: Refactoring
2021-04-20 03:20:29 +09:00
Hajime Hoshi
24dc20e80e
audio/internal/readerdriver: Bug fix: Need to align the buffer size
2021-04-20 02:39:33 +09:00
Hajime Hoshi
e650e71d8c
audio/internal/readerdriver: Bug fix: ReadFull could get stuck
...
If the source io.Reader's implementation is not good (e.g., Read
returns 0 if the buffer size is not multiples of 4), io.ReadFull
gets stuck forever. Instead, use reguler Read with a decent amount
of bytes buffer.
Closes #1599
2021-04-20 01:29:15 +09:00
Hajime Hoshi
146678596b
audio/internal/readerdriver: Bug fix: Invoke onReady for go2cpp
...
Updates #1599
2021-04-19 23:59:31 +09:00
Hajime Hoshi
ea9d64f5b8
audio: Bug fix: Need to call setReady from the reader player side
...
Updates #1599
2021-04-19 23:56:08 +09:00
Hajime Hoshi
0de024229d
audio: Guarantee that (*Player).Current's returning value is increased monotonically
...
Closes #1501
2021-03-31 23:41:28 +09:00
Hajime Hoshi
83dc3966e7
audio/internal/go2cpp: Bug fix: Set the volume whenever the player state is
2021-03-31 21:08:32 +09:00
Hajime Hoshi
f0d7e16eb2
audio/internal/readerdriver: Refactoring
2021-03-28 23:27:47 +09:00
Hajime Hoshi
bf4c1e3d74
audio: Bug fix: Compile error for tests
2021-03-28 22:57:50 +09:00
Hajime Hoshi
f4efdd6355
audio/internal/go2cpp: Protect the functions by the lock correctly
2021-03-28 22:40:36 +09:00
Hajime Hoshi
f4b770eff6
audio/internal/readerdriver: Add Player.Err
2021-03-28 22:21:07 +09:00
Hajime Hoshi
b46cb324ed
audio: Add audio/internal/readerdriver package
2021-03-28 18:34:16 +09:00
Hajime Hoshi
7212cd7999
audio: Bug fix: Race condition on accessing the set of players
...
Closes #1548
2021-03-24 23:41:18 +09:00
Hajime Hoshi
7696d51839
audio: Bug fix: Duplicated pausing at reader players
...
This caused unexpected 'Unread' calls.
2021-03-24 00:19:49 +09:00
Hajime Hoshi
1083233d5f
audio/internal/go2cpp: Replace isWritable with unplayedBufferSize instead
...
This is the more accurate way not to overflow the underlying buffer.
2021-03-23 23:46:57 +09:00
Hajime Hoshi
6f185063d6
audio: Ensure Close is called at a readerPlayer is GCed
2021-03-22 04:11:08 +09:00
Hajime Hoshi
07c10880f4
audio: Bug fix: Test failures on browsers
2021-03-22 03:50:05 +09:00
Hajime Hoshi
a17fea39a1
audio: Bug fix: Compile error on Go 1.13
2021-03-22 02:16:46 +09:00
Hajime Hoshi
49a8a491cd
audio: Implement the reader player for browsers
...
Updates #1458
2021-03-22 01:53:52 +09:00
Hajime Hoshi
9e73b0d287
audio: Rename UnwrittenBufferSize -> UnplayedBufferSize
2021-03-01 01:27:42 +09:00
Hajime Hoshi
6d442c0a17
audio: Add comments
2021-02-28 23:47:57 +09:00
Hajime Hoshi
4bc0bb607b
audio: Lazy initialization at reader players
2021-02-28 23:41:30 +09:00
Hajime Hoshi
dbdfce5fed
audio: Add readerDriverPlayer.UnwrittenBufferSize to get the exact position
2021-02-28 01:42:48 +09:00
Hajime Hoshi
b8cdcdb847
audio: Bug fix: NewInfiniteLoop(WithIntro) should work with incomplete values
...
Closes #1503
2021-02-22 02:15:45 +09:00
Hajime Hoshi
29099cf660
audio: Bug fix: Continue to play the audio after seeking on go2cpp
2021-02-21 23:54:43 +09:00
Hajime Hoshi
027463ff88
audio: Bug fix: timeStream was not used for a reader player
2021-02-21 18:48:58 +09:00
Hajime Hoshi
68411e9591
audio/internal/go2cpp: Avoid unnecessary allocations
2021-01-25 03:09:13 +09:00
Hajime Hoshi
c8ba51d26e
audio/internal/convert: Avoid unnecessary allocations
2021-01-25 03:04:53 +09:00
Hajime Hoshi
514904392c
audio: Bug fix: Deadlock at acquiring the semaphore
...
Closes #1469
2021-01-23 23:07:19 +09:00
Hajime Hoshi
fbc7b3c884
audio/vorbis: Bug fix: Resampling didn't work correctly
2021-01-19 00:41:47 +09:00
Hajime Hoshi
2432530b51
Revert "audio/internal/go2cpp: Fix C++ side and remove the preparation"
...
This reverts commit 65f974588c
.
Reason: Didn't improve the performance on some devices
2021-01-17 04:48:11 +09:00
Hajime Hoshi
65f974588c
audio/internal/go2cpp: Fix C++ side and remove the preparation
2021-01-17 03:47:45 +09:00
Hajime Hoshi
ed7d7e8976
audio/internal/go2cpp: Prepare the first buffer data to make the audio smoother
2021-01-16 03:28:47 +09:00
Hajime Hoshi
c742ae60bd
audio: Bug fix: Implement renaderPlayer.IsPlayer correctly
2021-01-16 01:02:07 +09:00
Hajime Hoshi
ad218eae2d
audio/internal/convert: Reduce allocations of float32 slices
2021-01-15 00:37:21 +09:00
Hajime Hoshi
612676cb19
audio/internal/go2cpp: Remove the buffer size argument
2021-01-13 22:30:52 +09:00
Hajime Hoshi
aeaa443bf2
audio/internal/go2cpp: Bug fix: Writing data must be concurrent-safe
2021-01-13 10:26:30 +09:00
Hajime Hoshi
78789a511c
Revert "audio: Seek the source first at readerPlayer"
...
This reverts commit 68f12f066e
.
Reason: Some data can be read after seeking before resetting
2021-01-13 02:01:00 +09:00
Hajime Hoshi
68f12f066e
audio: Seek the source first at readerPlayer
2021-01-12 22:52:26 +09:00
Hajime Hoshi
2f8172f819
audio/internal/go2cpp: Recreate the underlying audio player when resetting
2021-01-12 20:42:45 +09:00
Hajime Hoshi
a66097df19
audio/internal/go2cpp: Remove unnecessary set
2021-01-12 11:38:30 +09:00
Hajime Hoshi
2dc37d30de
audio/internal/go2cpp: Add a comment
2021-01-12 01:07:36 +09:00
Hajime Hoshi
a7dd00596a
audio/internal/go2cpp: Add signaling at Pause
2021-01-12 00:43:16 +09:00
Hajime Hoshi
c009070840
audio/internal/go2cpp: Add readerDriverPlayer.Reset
2021-01-11 23:54:43 +09:00
Hajime Hoshi
3abb7a3604
audio/internal/go2cpp: Increase the temporary buffer size
2021-01-11 21:56:47 +09:00
Hajime Hoshi
8e6c3a570e
audio/internal/go2cpp: Bug fix: Pass the correct size
2021-01-11 18:07:25 +09:00
Hajime Hoshi
9cc5bd80f9
audio/internal/go2cpp: Better waiting condition
2021-01-11 15:37:40 +09:00
Hajime Hoshi
dc8217dfeb
audio/internal/go2cpp: Bug fix: Wrong state
2021-01-11 15:25:53 +09:00
Hajime Hoshi
52942751f0
audio: Move go2cpp -> internal/go2cpp
2021-01-09 18:21:32 +09:00
Hajime Hoshi
3579e1d0b7
audio: Implement timeStream
2021-01-09 17:16:37 +09:00
Hajime Hoshi
a2a7f5e701
audio: Add an implementation for go2cpp
2021-01-09 17:16:34 +09:00
Hajime Hoshi
bd3e930eef
audio: Add readerPlayerFactory / readerDriver
2021-01-09 00:45:13 +09:00
Hajime Hoshi
bd1c3ff030
audio: Rename writerContext -> writerPlayerFactory
2021-01-07 11:24:40 +09:00
Hajime Hoshi
a6b3f32f3a
audio: Refactoring
2021-01-07 02:14:42 +09:00
Hajime Hoshi
e04e709a10
audio: Refactor test files
2021-01-07 01:53:41 +09:00
Hajime Hoshi
bda285b376
audio: Refactoring
2021-01-07 01:33:57 +09:00
Hajime Hoshi
e77beac235
audio: Define playerImpl interface
2021-01-07 00:59:13 +09:00
Hajime Hoshi
7cf32efcd5
audio: Rename playerImpl -> writerContextPlayerImpl
2021-01-07 00:46:50 +09:00
Hajime Hoshi
c42a40a541
audio: Rename context -> writerContext
...
This is a preparation of a new type of context with io.Readers.
2021-01-07 00:26:28 +09:00
Hajime Hoshi
9849cb5c2b
audio/wav: Add DecodeWithSampleRate
...
Closes #1460
2021-01-06 23:09:52 +09:00
Hajime Hoshi
b78dde0e37
audio/mp3: Add DecodeWithSampleRate
...
Updates #1460
2021-01-06 23:03:50 +09:00
Hajime Hoshi
f6a440765b
audio/vorbis: Fix comments
2021-01-06 23:02:56 +09:00
Hajime Hoshi
96ca0a7ff9
audio/vorbis: Add DecodeWithSampleRate
...
Updates #1460
2021-01-06 22:57:25 +09:00
Hajime Hoshi
30278b80aa
audio: Use the larget buffer size for go2cpp
2021-01-05 16:07:36 +09:00
Hajime Hoshi
0bf6eee605
audio: Reduce making a slice at a player's read
2021-01-04 21:51:26 +09:00
Hajime Hoshi
3fb304e5a8
audio/internal/convert: Refactoring
2021-01-04 21:42:00 +09:00
Hajime Hoshi
f292594184
audio: Use a new implentation for go2cpp in Oto
2020-12-30 19:21:15 +09:00
Hajime Hoshi
9a705c64f3
audio: Bug fix: Compile error
2020-12-21 18:39:06 +09:00
Hajime Hoshi
2a2866bf65
audio: Use a null context on go2cpp
2020-12-21 18:35:42 +09:00
Hajime Hoshi
8e46769284
audio: Remove returning values from Play/Pause
2020-10-10 23:45:18 +09:00
Hajime Hoshi
0673b384d8
audio: Update the comment
...
Updates #859
2020-10-07 23:43:38 +09:00
Hajime Hoshi
f1f7b350de
audio, audio/mp3, audio/vorbis, audio/wav: Remove Close functions
...
Fixes #859
2020-10-07 23:39:58 +09:00
Hajime Hoshi
426cb5948a
audio/vorbis: Remove the GopherJS part
...
Updates #1129
2020-10-07 01:33:19 +09:00
Hajime Hoshi
a22fdee171
audio/mp3: Remove the GopherJS part
...
Updates #1129
2020-10-07 01:33:19 +09:00
Hajime Hoshi
944a19c6f7
audio: Remove the error returning value from NewContext
...
Updates #1380
2020-10-05 02:25:13 +09:00
Hajime Hoshi
29b4087ebf
audio: Remove the error returning value from NewPlayerFromBytes
...
Updates #1380
2020-10-05 02:18:27 +09:00
Hajime Hoshi
f4d050161a
audio: Remove (*Context).Update
...
Updates #1127
2020-10-04 15:41:34 +09:00
Hajime Hoshi
825972b3e1
audio/mp3, audio/vorbis, audio/wav: Remove deprecated functions
...
Updates #1127
2020-10-04 15:35:17 +09:00
Hajime Hoshi
bf515bb594
Update version to v2.0.0-alpha
2020-10-04 04:30:40 +09:00
Hajime Hoshi
9906e4b882
go generate
2020-09-20 23:28:17 +09:00
Hajime Hoshi
01a84a7121
audio/mp3: Make panic messages more consistent
2020-08-23 19:50:43 +09:00
Hajime Hoshi
d0181ce130
audio/wav: Remove an unused function
2020-08-23 19:49:31 +09:00
Hajime Hoshi
50fc914d72
Revert "audio/wav: Allow passing non-io.Seeker to Decode"
...
This reverts commit 19cd69da55
.
Reason: Marked #1202 'won't fix'
2020-08-23 19:46:28 +09:00
Hajime Hoshi
19cd69da55
audio/wav: Allow passing non-io.Seeker to Decode
...
Updates #1202
2020-08-23 19:15:20 +09:00
Hajime Hoshi
a1ac574a60
docs: Use 'Deprecated:' annotation
...
Fixes #1160
2020-05-19 01:50:55 +09:00
Hajime Hoshi
4fa52dcc56
Remove MonoGame support
...
Fixes #1148
2020-05-08 19:32:28 +09:00
Hajime Hoshi
2e49ed5402
audio: Add a mock implementation for MonoGame
...
Updates #1078
2020-04-21 23:59:41 +09:00
Hajime Hoshi
7ac6b0bfa3
Update dependencies
2020-03-31 03:32:38 +09:00
hiroebe
ad00414a2a
audio: Remove duplicate check for io.Seeker ( #1051 )
2020-01-10 19:37:31 +09:00
Hajime Hoshi
5182060899
Revert "audio: Bug fix: Fill empty data even when audio is suspended"
...
This reverts commit 529dddda53
.
Updates #975
Reason: This causes PARTIAL_WAKE_LOCK on Android (AudioDirectOut) (#931 )
2019-11-09 15:24:56 +09:00
Hajime Hoshi
529dddda53
audio: Bug fix: Fill empty data even when audio is suspended
...
When writing is stopped on Oto's players, unexpected delaying
happens.
The ideal solution is to have APIs to suspend and resume Oto's
player, but this is not easy. For a temporary solution, write
zero values on the players when audio is suspended.
Fixes #975
2019-11-07 01:13:00 +09:00
Hajime Hoshi
3c29fbdce2
jsutil: Refactoring: SliceToTypedArray -> CopySliceToJS
...
This unifieslocations of the temporary buffer.
2019-10-30 00:35:48 +09:00
Hajime Hoshi
fe805d7fd1
audio/vorbis/internal/stb: Bug fix: Forbid to use it from Wasm
2019-10-28 00:07:38 +09:00
Hajime Hoshi
f50875ff4b
Change the build tag strategy: GopehrJS or not GopherJS
2019-10-27 23:33:22 +09:00
Hajime Hoshi
124389561c
audio: Bug fix: The dummy player should have long enough buffer
...
In the current implementation, the audio context will be ready
when a player's Write is finished. If the buffer is too short,
Write finishes immediately without accessing the low audio layer
and the audio context would be ready without playing anything.
This change changes the dummy buffer to have a long enough buffer
so that Write will be wait for acutual audio playing.
Fixes #970
2019-10-23 02:41:12 +09:00
Hajime Hoshi
b78f678700
audio: Bug fix: (*Context).IsReady never returned true unless there is a player
...
The audio context is never ready unless there is a player. This is
problematic when a user tries to play audio after the context is
ready. Play a dummy player to avoid the blocking.
Fixes #969
2019-10-22 23:45:13 +09:00