Commit Graph

500 Commits

Author SHA1 Message Date
Hajime Hoshi
97fa948e5e 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:37:30 +09:00
Hajime Hoshi
1b5b861735 audio: Bug fix: Compile error on the tests
Updates #1630
2021-05-04 22:11:06 +09:00
Hajime Hoshi
273f2fb8f4 audio/internal/readdriver: Bug fix: Implement Suspend/Resume for browsers
Closes #1630
2021-05-04 18:51:25 +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