Commit Graph

204 Commits

Author SHA1 Message Date
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
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
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
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
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
9e73b0d287 audio: Rename UnwrittenBufferSize -> UnplayedBufferSize 2021-03-01 01:27:42 +09:00
Hajime Hoshi
dbdfce5fed audio: Add readerDriverPlayer.UnwrittenBufferSize to get the exact position 2021-02-28 01:42:48 +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
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
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
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
3fb304e5a8 audio/internal/convert: Refactoring 2021-01-04 21:42:00 +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
bf515bb594 Update version to v2.0.0-alpha 2020-10-04 04:30:40 +09:00
Hajime Hoshi
cba109ebee audio/mp3: Bug fix: Accept non-io.Closer at Resampling 2019-04-01 00:04:57 +09:00
Hajime Hoshi
f16f6cf4b9 audio/internal/convert: Add Float32Reader and NewReaderFromFloat32Reader 2019-01-15 11:46:31 +09:00
Hajime Hoshi
5c55df87d7 audio: Deprecate Size() and add Length() (#466) 2018-01-09 01:25:38 +09:00
Hajime Hoshi
ef282f7f4f audio/internal/convert: Remove unused functions 2018-01-09 00:26:54 +09:00
Hajime Hoshi
e83810fc57 audio/internal/convert: Add resampling_test.go
Fixes #369
2018-01-08 23:44:44 +09:00
Hajime Hoshi
11a1e6ec39 audio/internal/convert: Adjust window size again (confirmed this worked well on iPhone 6) 2018-01-06 01:49:55 +09:00
Hajime Hoshi
5b2dbf6036 audio/internal/convert: Adjust resamplingBufferSize again 2018-01-06 01:46:54 +09:00
Hajime Hoshi
ab70f6fc58 audio/internal/convert: Much faster sine/cosine functions 2018-01-06 00:15:07 +09:00
Hajime Hoshi
005d18ceff audio/internal/convert: Use int64 (now it is fast enough on browsers?) 2018-01-05 20:03:17 +09:00
Hajime Hoshi
c020101afc audio/internal/convert: Use cosine table 2018-01-05 19:40:12 +09:00
Hajime Hoshi
2884fb7070 audio/internal/convert: Fix algorithm 2018-01-05 18:21:14 +09:00
Hajime Hoshi
de1a22d9f3 audio/internal/convert: Bug fix: remove unneeded import 2017-12-31 00:15:36 +09:00
Hajime Hoshi
03942292f5 audio/internal/convert: Change the window smaller for performance
On iOS, resapling performance was not good.
2017-12-31 00:14:52 +09:00
Hajime Hoshi
e2a026138a audio/internal/convert: Use float64 for positions 2017-12-27 18:55:17 +09:00
Hajime Hoshi
6d6504085c audio/internal/convert: Rename members 2017-12-27 18:05:55 +09:00
Hajime Hoshi
b4e3e9375c audio: Use samller window for resampling on browsers 2017-09-29 02:05:14 +09:00
Hajime Hoshi
db902dbbee audio: Bug fix: stream size must be multiple of 4 (#384) 2017-07-12 00:51:36 +09:00
Hajime Hoshi
1828830b4a audio/internal/convert/resampling: Better boundary check 2017-07-12 00:40:15 +09:00
Hajime Hoshi
d78a534a0b audio/internal/convert: Bug fix: invalid size comparison 2017-07-09 15:29:56 +09:00
Hajime Hoshi
e3176f6693 audio/internal/convert: Optimization for seeking 2017-06-26 02:18:11 +09:00
Hajime Hoshi
9130c490c2 audio: Remove convert.Seeker: mp3.Decoded is now io.Seeker 2017-06-25 23:33:23 +09:00
Hajime Hoshi
09ce575774 audio/mp3: Add sample rate conversion 2017-06-18 22:51:11 +09:00
Hajime Hoshi
766072cdbb audio: Make 'oto' package and use that (#351) 2017-05-04 21:09:02 +09:00
Hajime Hoshi
7e4e762d96 audio: Reuse jmethodID objects 2017-04-08 01:41:07 +09:00
Hajime Hoshi
b5a422700a audio: Reuse jclass objects 2017-04-08 01:35:48 +09:00
Hajime Hoshi
a6c5b98f0f audio: Release AudioTrack class (#336) 2017-04-07 11:36:24 +09:00
Hajime Hoshi
713a537637 audio: Delete local refs explicitly in JNI (#336) 2017-04-06 02:12:20 +09:00
Hajime Hoshi
5da58fc949 audio: Fix comment 2017-02-18 15:48:31 +09:00
Hajime Hoshi
8bfcea8f42 audio: Fix compile error on macOS (#324) 2017-02-18 15:42:35 +09:00
Hajime Hoshi
bd1a486b3a Bug fix: gopherjs build failed on Windows 2017-02-09 02:37:40 +09:00
Hajime Hoshi
0ef1e61d55 mobile: Fix iOS tag usages (#310) 2017-01-26 01:32:33 +09:00
Hajime Hoshi
8c2064c8b7 audio: Apply delaying when initializing 2017-01-22 19:43:03 +09:00
Hajime Hoshi
7201015d02 audio: Bug fix: Noise on Safari because of performance issue (#307) 2017-01-22 19:19:24 +09:00
Hajime Hoshi
6ee4b46dbe audio: Improve delay on browsers (#299) 2017-01-17 01:14:09 +09:00
Hajime Hoshi
abd0958566 audio: Better conversion from 8bit to 16bit 2017-01-16 23:08:01 +09:00
Hajime Hoshi
ed8d87dd87 audio: Convert 8bit monoral to 16bit stereo (#282) 2017-01-16 00:03:18 +09:00
Hajime Hoshi
5bdcd8825c Rename audio/internal/resampling -> audio/internal/convert 2017-01-15 22:37:59 +09:00
Hajime Hoshi
71cecea9c9 audio: Auto resampling (#301) 2017-01-15 17:49:57 +09:00
Hajime Hoshi
d80b213184 audio: Bug fix: Touch is required by Chrome 55+ on Android 2016-12-17 00:14:33 +09:00
Hajime Hoshi
741ce9c7b8 audio: Bug fix: Handle touch event for iOS (#296) 2016-11-30 03:25:24 +09:00
Hajime Hoshi
443c58104b audio: Remove logger on Android 2016-11-16 10:25:04 +09:00
Hajime Hoshi
1f8cd41326 windows: Add comments 2016-09-11 22:34:39 +09:00
Hajime Hoshi
acb66fffe8 audio: Use timshannon's OpenAL lib 2016-09-10 15:11:11 +09:00
Hajime Hoshi
9de581f832 audio: Check returning values of write (android) 2016-07-01 22:05:11 +09:00
Hajime Hoshi
0b8fe25350 opengl: Implement GlslHighpSupported for iOS 2016-06-17 04:13:46 +09:00
Hajime Hoshi
dfe4db67be Fix for iOS 2016-06-17 02:08:25 +09:00
Hajime Hoshi
a95edaceba audio: Remove unneeded padding 2016-05-31 22:32:10 +09:00
Hajime Hoshi
3ce8122557 audio: Replace APIs with low level APIs 2016-05-31 22:29:25 +09:00
Hajime Hoshi
84bf1ddf5c audio: Bug fix: Avoid blocking when sending buffer 2016-05-31 10:17:22 +09:00
Hajime Hoshi
ebac6cbb81 audio: Refactoring for mobiles (reduce calls) 2016-05-29 18:34:52 +09:00
Hajime Hoshi
a329f7939d audio: Remove confusing comments 2016-05-29 13:19:17 +09:00
Hajime Hoshi
2dd1e9c567 audio: Remove unneeded args 2016-05-28 19:01:26 +09:00
Hajime Hoshi
6a74ea5b30 Introduce internal/jni 2016-05-28 19:01:26 +09:00
Hajime Hoshi
4254e7b70e audio: Add comment to explain why we don't free memory 2016-05-27 19:43:03 +09:00
Hajime Hoshi
ca2f85f3d1 audio: Refactoring: Add loop 2016-05-26 03:15:51 +09:00
Hajime Hoshi
d6dee0815e audio: Bug fix: Avoid deadlock 2016-05-26 03:13:56 +09:00
Hajime Hoshi
644dfcd0fd audio: Create an independent goroutine for enqueuing 2016-05-26 02:50:54 +09:00
Hajime Hoshi
12d62621e9 audio: Bug fix: Play sound correctly on Android 2016-05-26 01:46:26 +09:00
Hajime Hoshi
b65aeb7ac3 audio/internal/driver: Add driver_android.go (WIP) 2016-05-25 03:40:04 +09:00
Hajime Hoshi
64afa87def audio: Add driver_mobile.go 2016-05-24 01:24:40 +09:00
Hajime Hoshi
f7211f3391 audio: Refactoring: No need to hold a buffer source 2016-04-23 02:33:13 +09:00
Hajime Hoshi
9a7e5683a1 audio: Remove redundant code in JS 2016-04-21 02:54:18 +09:00
Hajime Hoshi
5d5f27bcbf audio: Bug fix: Reduce noise by using long buffers (#205) 2016-04-21 02:48:43 +09:00
Hajime Hoshi
b0178e8425 audio: Move exp/audio -> audio (#206) 2016-04-19 01:26:37 +09:00