Commit Graph

668 Commits

Author SHA1 Message Date
Hajime Hoshi
70a225fd7e audio: Use dummy hooks from tests 2019-04-28 19:35:59 +09:00
Hajime Hoshi
81549a3523 audio: Bug fix: Remove redundant Unlock 2019-04-28 02:44:32 +09:00
Hajime Hoshi
9fc2ae158c audio: Bug fix: Close always returned error 2019-04-28 02:22:11 +09:00
Hajime Hoshi
e4f0a0aa04 audio: Bug fix: Remove depenency on finalizer
This change fixes playerImpl leak by removing dependency on
finalizer usages. Now readLoop can (or should) be called multiple
times even after closing. Only when (*Player).Close is called
explicitly, the read loop cannot be started again.

Fixes #852
2019-04-28 02:03:55 +09:00
Hajime Hoshi
4f831de008 audio: Remove (*playerImpl).sync and use mutex instead
This is a preparation to work syncing wihtout the read-loop.
2019-04-28 01:37:52 +09:00
Hajime Hoshi
acc4ef4e11 audio: Add comments 2019-04-01 01:59:10 +09:00
Hajime Hoshi
df2604c221 audio: Comment about ownership
This behavior might be changed at version 2 though (#837).
2019-04-01 01:32:14 +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
49c0b64b60 audio/mp3: Bug fix: Close source when needed 2019-03-31 22:58:22 +09:00
Hajime Hoshi
aa042980ee audio/mp3: Remove Close calls
Close is removed at 14af46a99b
2019-03-31 22:42:34 +09:00
Hajime Hoshi
ed855d6c6c audio: Refactoring: remove the unused returning value 2019-03-02 04:42:19 +09:00
Hajime Hoshi
a3eddeb50f Improve panic messages 2019-02-06 23:43:03 -10:00
Hajime Hoshi
a4123a479e audio: Initialize the context first
This is necessary to create an audio's Player before the loop if
we want to create *oto.Player for each *audio.Player.
2019-01-30 00:45:36 +09:00
Hajime Hoshi
13b0d82b6d audio: Use oto.NewContext 2019-01-30 00:36:47 +09:00
Hajime Hoshi
f16f6cf4b9 audio/internal/convert: Add Float32Reader and NewReaderFromFloat32Reader 2019-01-15 11:46:31 +09:00
Hajime Hoshi
13f6549cb6 audio/vorbis: Remove duplicated decoded data
There was duplicated decoded date in audio/vorbis package and Ogg
decoder package. This change removes this duplication and reduces
memory usage.
2019-01-15 03:52:27 +09:00
Hajime Hoshi
6d714a16cf audio: Remove unneeded 'break' 2019-01-10 02:34:58 +09:00
Hajime Hoshi
a6b3f761f8 audio: Refactoring: Remove dependency on clock package 2019-01-10 00:59:38 +09:00
Hajime Hoshi
28c96d256a audio: Bug fix: Test compilation error 2019-01-09 23:39:12 +09:00
Hajime Hoshi
14404334e7 audio: Rename players to mux 2019-01-09 22:10:52 +09:00
Hajime Hoshi
e9422a9f2c audio: Improve test flakiness 2019-01-06 00:11:34 +09:00
Hajime Hoshi
7956e0ebbc Revert "Revert "audio: No need goroutine for tests""
This reverts commit 62a9bb195c.
2018-12-28 02:18:16 +09:00
Hajime Hoshi
62a9bb195c Revert "audio: No need goroutine for tests"
This reverts commit 7740656054.
2018-12-28 02:15:11 +09:00
Hajime Hoshi
7740656054 audio: No need goroutine for tests 2018-12-27 03:37:29 +09:00
Hajime Hoshi
ed7552962d audio: Improve test flakiness 2018-12-27 03:34:27 +09:00
Hajime Hoshi
1760070130 audio: Add comments about GC (#746) 2018-12-18 23:07:19 +09:00
Hajime Hoshi
b9eba54115 audio: Use a dummy driver for testing
Fixes #750

This also fixes an out-of-index bug when all players are skipped.
2018-12-17 23:06:59 +09:00
Hajime Hoshi
b0cb216f5f audio: Close audio after its playing finishes
Fixes #746

This is a temporal fix and we will need further re-designing of
audio package.
2018-12-17 04:02:32 +09:00
Hajime Hoshi
08a369b8fd audio: Bug fix: GC audio players correctly
Fixes #746
2018-12-15 22:33:45 +09:00
Hajime Hoshi
feca647087 audio/vorbis: Unretain the Ogg decoder on Close (#733) 2018-11-09 03:48:28 +09:00
Hajime Hoshi
eda8d61413 audio/vorbis: Unretain the Ogg decoder after decoding is done (#733) 2018-11-09 03:46:00 +09:00
Hajime Hoshi
d14202ef7b audio: Add Context.IsReady
Fixes #717
2018-10-16 00:02:19 +09:00
Hajime Hoshi
c0884b5ab2 audio/vorbis: Avoid unnecessary appending 2018-10-06 00:06:47 +09:00
Hajime Hoshi
1cf3022ce6 audio/vorbis: Update stbvorbis.js
Fixes #667
2018-10-05 22:12:39 +09:00
Hajime Hoshi
d5ca4c3953 audio/vorbis: Bug fix: compilation error 2018-09-02 23:55:59 +09:00
Hajime Hoshi
70044013e9 audio/vorbis: Rename []uint8 -> []byte 2018-09-02 23:54:50 +09:00
Hajime Hoshi
59bcbca379 audio: Add NewInfiniteLoopWithIntro (#652) 2018-07-28 21:25:42 +09:00
Hajime Hoshi
2969de5b1f audio: Refactoring: Redefine bytesPerSample 2018-07-24 01:54:01 +09:00
Hajime Hoshi
a0bd31ef1f audio: Rename stream -> src 2018-07-24 01:22:05 +09:00
Hajime Hoshi
6a1afe8fbe audio: Add test for negative position 2018-07-23 04:01:43 +09:00
Hajime Hoshi
0d5924b448 audio: Add test for InifiniteLoop 2018-07-23 03:30:06 +09:00
Hajime Hoshi
34ac185327 audio: Rename file 2018-07-23 03:15:17 +09:00
Hajime Hoshi
082556ad5c audio: Better error message 2018-07-23 02:28:07 +09:00
Hajime Hoshi
05ac690db5 audio/vorbis/internal/stb: Use stbvorbis.js
Fixes #641
2018-07-22 17:15:28 +09:00
Hajime Hoshi
d752408da3 Fix comments not to use the term 'this function' 2018-07-15 01:04:46 +09:00
Hajime Hoshi
c6842f2cd8 audio/vorbis/internal/stb: Use TypedArrayOf (#642) 2018-07-07 17:46:55 +09:00
Hajime Hoshi
c0ccc16767 audio/mp3: Use TypedArray (#642) 2018-07-07 17:19:47 +09:00
Hajime Hoshi
e61af537f4 audio/vorbis: Use jfreymuth/oggvorbis when the target is Wasm 2018-07-05 02:27:23 +09:00
Hajime Hoshi
de7065bbf7 audio/vorbis/internal/stb: Use float32 version of decoder for efficiency 2018-07-05 01:37:51 +09:00
Hajime Hoshi
9bf2eaff58 audio/vorbis/internal/stb: Rename files 2018-07-04 12:04:00 +09:00
Hajime Hoshi
992f6c767a audio/vorbis: Use stb_vorbis.c on browsers
This change adds a Ogg/Vorbis decoder stb_vorbis.c usage that is
compiled by Emscripten as WebAssembly.

Fixes #623
2018-07-04 01:23:11 +09:00
Hajime Hoshi
6e51d31524
Use new GopherWasm API (#634)
I plan to merge this right after
https://github.com/gopherjs/gopherwasm/pull/3 is merged.
2018-06-30 00:02:15 +09:00
Hajime Hoshi
a9359e4ef8 Use GopherJS/GopherWasm 2018-06-24 16:10:24 +09:00
Hajime Hoshi
a8c27b4eb1 audio/mp3: Bug fix: float32ArrayToSlice didn't work for Wasm 2018-06-24 04:33:05 +09:00
Hajime Hoshi
baee2ba4c9 audio/mp3: Bug fix: ArrayBuffer in the backend can be different from Uint8Array range 2018-06-24 02:31:34 +09:00
Hajime Hoshi
4c70ad382d audio/mp3: Bug fix: Avoid using a detached ArrayBuffer 2018-06-24 02:12:00 +09:00
Hajime Hoshi
5aefa837db audio/mp3: Use gopherwasm 2018-06-24 01:42:16 +09:00
Hajime Hoshi
273093b237 audio: Skip the player in the state of starting, seeking or EOF
This is basically reland of
2fee7a6fe5.

Before this change, if a player's buffer was not enough for
reading, 0 value were used and this caused noises. The reading
size should be aligned with all the players.

However, there are some cases that the player should be skippped.
For example, just after a player just starts playing or seeking,
the buffer is empty. In this case, other players should not wait
for the player since decoding might take some time. Another case
is that the player reached EOF.

This change aligns the read buffer sizes but use zero values only
when the player just starts or seeks, or reaches EOF.
2018-06-09 22:00:11 +09:00
Hajime Hoshi
facf184548 Revert "audio: Consider the state of the player's starting and seeking"
This reverts commit 2fee7a6fe5.

Reason: This causes freezing on browsers
2018-06-09 19:28:20 +09:00
Hajime Hoshi
b62e07b9bd audio: Remove println 2018-06-09 19:05:07 +09:00
Hajime Hoshi
2fee7a6fe5 audio: Consider the state of the player's starting and seeking
Before this change, if a player's buffer was not enough for
reading, 0 value were used and this caused noises. The reading
size should be aligned with all the players.

Just after a player just starts playing or seeking, the buffer is
empty but other players should not wait for the player read since
decoding might take some time.

To summerize, this change aligns the read buffer sizes but use
zero values only when the player just starts or seeks.
2018-06-09 19:01:57 +09:00
Hajime Hoshi
91958d24ef audio: Use bigger buffers for mobiles 2018-06-09 18:14:18 +09:00
Hajime Hoshi
faaf391619 audio: Give up syncing audio timer and game timer (#617)
Syncing was already incomplete (e.g. decoding takes more than one
frame and delays can happen in this case). Giving up syncing audio
timer and game timer should not affect the game experience so much.
Instead, clock implementation will be much simpler.
2018-05-27 00:30:12 +09:00
Hajime Hoshi
5976e4bbbc audio: More intellegent suspending/resuming (#617)
Before this change, the audio is suspended when the game stops for
1/12[s]. However, as game often stops for more than 1/12[s]
especially on mobiles, this implemntation caused some audio
glitches.

This change fixes this problem by re-implementing suspending/
resumeing audio by detecting the window is active/focused or not.
2018-05-26 23:31:04 +09:00
Hajime Hoshi
df048d9bf6 audio: Don't use nosync GopherJS
nosync package is good in terms of performance, but this assumes
that duplicated lock never happens. As audio package runs multiple
goroutines, theoretically duplicated lock can happen, and it looks
like this is an actual case (#603).

This change replaces nosync usages with regular sync usages.

Probably I'll deprecate nosync usages via internal/sync package
everywhere in Ebiten.

This might fix #603.
2018-05-09 12:14:20 +09:00
Hajime Hoshi
83f168a010 audio/vorbis: Bug fix: fail to decode too short ogg 2018-04-07 22:13:12 +09:00
Hajime Hoshi
75ac8e6f2b vorbis: Add tests (#570) 2018-03-31 01:51:39 +09:00
Hajime Hoshi
a31874ed48 vorbis: Bug fix: Length returned wrong result with monoral source (#570) 2018-03-30 11:59:03 +09:00
Hajime Hoshi
f1f0277deb wav: Set finalizer for the stream 2018-03-27 12:10:57 +09:00
Hajime Hoshi
88cfd219e7 mp3: Set finalizer for the stream 2018-03-27 10:58:13 +09:00
Hajime Hoshi
f4e018a336 vorbis: Bug fix: Read was not responsible with Close (#569) 2018-03-27 10:51:21 +09:00
Hajime Hoshi
632a97974d audio: Fix wrong English word 2018-03-22 00:36:48 +09:00
Hajime Hoshi
18113f259a audio: NewPlayer now accepts io.ReadCloser
Fixes #414
2018-03-22 00:33:17 +09:00
Hajime Hoshi
1b0e71765f internal/hooks: Rename Update -> BeforeUpdate 2018-03-15 02:50:10 +09:00
Hajime Hoshi
063153e41d ebitenutil: Speed up to avoid copying by image.Rect 2018-03-11 21:39:22 +09:00
Hajime Hoshi
61950817fa audio: Bug fix: importing audio without NewContext causes error 2018-03-04 22:18:14 +09:00
Hajime Hoshi
647d8f0094 audio: Use time.NewTimer and Stop instead of time.After
Fixes #532
2018-03-04 19:23:38 +09:00
Hajime Hoshi
392ee92aeb Add internal/hooks to replace internal/audiobinding 2018-02-04 17:33:17 +09:00
Hajime Hoshi
2322c5600b audio: Revert the buffer size
This basically reverts df62b16270.
2018-01-29 11:57:52 +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
d5d5ebb0b3 clock: Make ProceedAudioTimer take a number of frames 2018-01-07 18:32:19 +09:00
Hajime Hoshi
d12a3d4073 clock: Refactoring 2018-01-07 17:10:56 +09:00
Hajime Hoshi
0b3495b81f audio: Use mock sync on browsers 2018-01-07 15:26:18 +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
df62b16270 audio: Use bigger buffer size for mobile phones 2017-12-31 01:28:08 +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
97ec367e23 audio: Use := 2017-12-30 21:18:34 +09:00
Hajime Hoshi
65c0bf55fc audio: Fix buffer size for the latest Oto 2017-12-28 20:37:36 +09:00
Hajime Hoshi
a98b03f738 audio/mp3: Flexible timeout 2017-12-27 19:18:02 +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
50a6158513 audio/mp3: Adjust timeout 2017-12-26 14:55:01 +09:00
Hajime Hoshi
3855bcc5a4 audio/mp3: Change the timeout for decoding (for Firefox) 2017-12-26 00:59:36 +09:00
Hajime Hoshi
ad54538d07 audio/mp3: Use byte instead of uint8 2017-12-26 00:11:17 +09:00
Hajime Hoshi
bb44eebe78 audio/mp3: Replace magic numbers with consts in io package 2017-12-26 00:10:30 +09:00
Hajime Hoshi
908ccb9404 audio/mp3: Try again decoding when timed out (#464) 2017-12-26 00:08:33 +09:00
Hajime Hoshi
623caad3ec audio: Bug fix: appropriate buffer size on browsers 2017-12-25 01:54:55 +09:00
Hajime Hoshi
60eef4618d audio: Revert size (due to noise on browsers) 2017-12-25 00:16:47 +09:00
Hajime Hoshi
4a06198160 audio: Smaller buffers (experimental) 2017-12-24 22:16:45 +09:00
Hajime Hoshi
5679103d71 audio: Use io.CopyN 2017-12-24 21:21:15 +09:00
Hajime Hoshi
a74cf21f21 audio/mp3: Revert calling Gosched(): Looks like this doesn't make sense 2017-12-24 04:53:51 +09:00
Hajime Hoshi
2155b2f04a audio/mp3: Channels should be used only once 2017-12-24 04:40:20 +09:00
Hajime Hoshi
e14257d76d audio: A little better buffer size for Android Chrome 2017-12-24 04:01:41 +09:00
Hajime Hoshi
ae6bdf23f2 audio: Recalculate audio buffer size 2017-12-24 03:54:42 +09:00
Hajime Hoshi
7b1f501bd7 audio/mp3: Force context switch when decoding 2017-12-24 03:14:10 +09:00
Hajime Hoshi
18c6890d96 audio: More often reading (decoding) audio source to reduce noise 2017-12-24 00:58:14 +09:00
Hajime Hoshi
7ce87a6c82 audio: Simplify read/write logic 2017-12-24 00:51:17 +09:00
Hajime Hoshi
00d8d61795 audio: Adjust buffer size 2017-12-23 23:15:44 +09:00
Hajime Hoshi
f3997cf5ae audio: Fix comments 2017-12-23 21:14:08 +09:00
Hajime Hoshi
a540d6b2bb audio: Adjust buffer size 2017-12-23 19:59:52 +09:00
Hajime Hoshi
19ca74e86b audio: Remove player's mutex 2017-12-23 19:01:28 +09:00
Hajime Hoshi
637ed0d965 audio: Refactoring 2017-12-23 18:39:14 +09:00
Hajime Hoshi
04739a7249 audio: Bug fix: Seek might cause dead lock after Close 2017-12-23 18:31:20 +09:00
Hajime Hoshi
db77658935 audio: Reduce locks by using channels 2017-12-23 17:55:48 +09:00
Hajime Hoshi
ba3de063ac audio: Refactoring 2017-12-23 17:05:14 +09:00
Hajime Hoshi
3dcb486a5c audio: Refactoring 2017-12-23 05:02:15 +09:00
Hajime Hoshi
7cc6154de6 audio: Reduce noise (#443) 2017-12-23 04:25:48 +09:00
Hajime Hoshi
3addbfce8a audio: Simplify error handling 2017-12-23 04:12:12 +09:00
Hajime Hoshi
a21571fb57 audio: Refactoring 2017-12-23 04:01:18 +09:00
Hajime Hoshi
a5f8c1b1f8 audio: Async reading sources (#443) 2017-12-23 03:24:54 +09:00
Hajime Hoshi
31350dc497 mp3: Avoid calling Length() if possible (#463) 2017-12-22 05:17:01 +09:00
Hajime Hoshi
7b76b7822f audio: Fix comments 2017-12-17 01:24:45 +09:00
Hajime Hoshi
7cd89bc44b audio: Adjust buffer size for Android Chrome 2017-12-17 01:20:10 +09:00
Hajime Hoshi
7f9afd4e14 audio: Unify buffer size 1/15[s] experimentally
This would mitigate glitches on Windows (#451)
2017-12-17 00:41:35 +09:00
Hajime Hoshi
6956e15b08 audio: Fix comments 2017-12-02 16:26:20 +09:00
Hajime Hoshi
3db965d547 audio: Fix doc 2017-12-01 01:38:47 +09:00
Hajime Hoshi
0379e3c591 audio: Deprecate Update 2017-12-01 00:26:28 +09:00
Hajime Hoshi
dba7124e38 audio: Use safer buffer size as experiment (#451) 2017-11-23 23:31:26 +09:00
Hajime Hoshi
b46ed224a7 mp3: Add comment about error handling 2017-10-18 02:11:09 +09:00
Hajime Hoshi
2624ed6824 audio: Refactoring 2017-10-14 19:45:32 +09:00
Hajime Hoshi
bc2469a275 audio: Fix wrong comments 2017-10-01 18:07:18 +09:00
Hajime Hoshi
626b772b25 doc: Improve comments 2017-10-01 17:24:30 +09:00
Hajime Hoshi
b4e3e9375c audio: Use samller window for resampling on browsers 2017-09-29 02:05:14 +09:00
Hajime Hoshi
2c6f6e605e audio/mp3: Bug fix: Decode error on Safari (#438) 2017-09-28 03:10:51 +09:00
Hajime Hoshi
1f051b50db audio/mp3: Handle error when decoding 2017-09-28 00:55:18 +09:00
Hajime Hoshi
fe2380f1ab audio: Add comments 2017-09-26 00:38:50 +09:00
Hajime Hoshi
d9f6699b7f audio: Bug fix: Super noisy with 32000 Hz on browsers 2017-09-25 08:04:28 +09:00
Hajime Hoshi
8e75964cb1 audio: Adjust buffer size for browsers (#434) 2017-09-24 20:16:07 +09:00
Hajime Hoshi
32b33dd86d audio/mp3: Fix comments 2017-09-24 19:28:09 +09:00
Hajime Hoshi
8725589619 audio/mp3: Bug fix: decoding a mono MP3 panics on browsers (#421) 2017-08-28 01:36:27 +09:00
Hajime Hoshi
a225f666ac audio: Bug fix: Race condition on 'pos' member (#413) 2017-08-17 11:48:29 +09:00
Hajime Hoshi
8c3a020693 audio: Bug fix: Race condition when seeking (#413) 2017-08-17 11:44:30 +09:00
Hajime Hoshi
3216d50460 audio: Refactoring 2017-08-17 11:15:04 +09:00
Hajime Hoshi
ba75592807 audio: Bug fix: Race condition (#412) 2017-08-17 11:05:59 +09:00
Hajime Hoshi
95a061df7f loop: Remove dependency from audio to loop 2017-08-06 01:43:09 +09:00
Hajime Hoshi
2e7a477f9d clock: Refactoring 2017-08-06 01:28:14 +09:00
Hajime Hoshi
b7d559fdf3 clock: Refactoring: Move frames calculation to clock 2017-08-06 00:18:38 +09:00
Hajime Hoshi
a92f77c207 clock: Rename function names; loop: Rename variables 2017-08-05 22:25:21 +09:00
Hajime Hoshi
94843fbe73 loop: Move clock.FPS to loop.FPS to reduce dependencies 2017-08-05 22:08:58 +09:00
Hajime Hoshi
697c23a807 audio: Fix comment 2017-07-15 16:53:34 +09:00
Hajime Hoshi
b15ad9c1d0 audio: Refactoring 2017-07-15 16:31:08 +09:00
Hajime Hoshi
5fd8fe839b audio: Simplify player's Read/Seek 2017-07-15 03:15:54 +09:00
Hajime Hoshi
59110ba5ec clock: Refactoring: Use clock.FPS everywhere 2017-07-14 03:19:50 +09:00
Hajime Hoshi
8dda875c30 doc: Explaing about audio syncing 2017-07-14 02:26:41 +09:00
Hajime Hoshi
bfb6a2bfe7 audio: Adjust buffer size (examples/audio might cause noises with /30) 2017-07-14 01:57:07 +09:00
Hajime Hoshi
7f320f9518 audio: Fix doc 2017-07-14 01:45:36 +09:00
Hajime Hoshi
3d8fc790b6 loop: Remove dependency on audio 2017-07-14 01:42:58 +09:00
Hajime Hoshi
5d1d0844e1 Add internal/clock 2017-07-14 00:34:05 +09:00
Hajime Hoshi
c3202b8e58 audio: Adjust the buffer size 2017-07-13 23:48:03 +09:00
Hajime Hoshi
3454b32cb6 audio: Bug fix: oto.Player must not be called on init 2017-07-13 01:34:02 +09:00
Hajime Hoshi
80b10b2d49 audio: Use variables instead of channels to avoid GopherJS bugs 2017-07-13 01:34:02 +09:00
Hajime Hoshi
fdaf03b209 audio: Make the game loop depend on the audio clock 2017-07-13 01:33:59 +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
079395dd6f audio: Better variable name 2017-07-09 05:14:13 +09:00
Hajime Hoshi
2552f1625d audio: Discard audio data when queue seems full 2017-07-09 05:06:34 +09:00
Hajime Hoshi
5cf7b2491a audio: Bug fix: noise on audio 2017-07-09 04:09:21 +09:00
Hajime Hoshi
16f84f6a89 audio/mp3: Use new go-mp3 API 2017-07-04 22:01:06 +09:00
Hajime Hoshi
46a3f1530e audio: Fix comment 2017-07-03 02:31:18 +09:00
Hajime Hoshi
d0778b5253 audio: Avoid using time.After on browsers for performance 2017-07-02 17:27:07 +09:00
Hajime Hoshi
45ca2a1f79 audio: Bug fix: possible overflow and closing nil channel 2017-07-02 16:28:02 +09:00
Hajime Hoshi
1fe2d90d8a audio: Bug fix: Write can block and needs to be called asynchronously (#373) 2017-06-29 03:36:19 +09:00
Hajime Hoshi
e3176f6693 audio/internal/convert: Optimization for seeking 2017-06-26 02:18:11 +09:00
Hajime Hoshi
3be2b2516f audio/mp3: Refactoring 2017-06-26 02:03:23 +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
1f28c687cf audio: Bug fix: Seeking might block forever when another seeking is not done yet 2017-06-24 23:33:19 +09:00
Hajime Hoshi
88c5e4ca2d audio/mp3: Remove some comments 2017-06-19 01:10:11 +09:00
Hajime Hoshi
fe70dcc51f audio/mp3: Bug fix: noise on browsers 2017-06-19 01:04:37 +09:00
Hajime Hoshi
0f20b7b216 audio/mp3: Add JavaScript version 2017-06-18 23:49:05 +09:00
Hajime Hoshi
686e2d3318 audio/mp3: Create hajimehoshi/go-mp3 package 2017-06-18 23:11:39 +09:00
Hajime Hoshi
09ce575774 audio/mp3: Add sample rate conversion 2017-06-18 22:51:11 +09:00
Hajime Hoshi
6c0fa5e55f audio/mp3: Add Decoder.SampleRate 2017-06-18 22:36:56 +09:00
Hajime Hoshi
e9c6bec432 audio/mp3: Add Decoder struct 2017-06-18 21:28:16 +09:00
Hajime Hoshi
63f1dceb8b audio/mp3: Remove global variables 'reader*' 2017-06-18 18:34:58 +09:00
Hajime Hoshi
cf05a581a4 audio/mp3: Refactoring 2017-06-18 18:15:56 +09:00
Hajime Hoshi
7b1f3fae99 audio/mp3: Refactoring 2017-06-18 18:08:22 +09:00
Hajime Hoshi
d43df208d2 audio/mp3: Make readMainL3 to return *mpeg1MainData 2017-06-18 18:06:41 +09:00
Hajime Hoshi
940c3e65a2 audio/mp3: Make readHeader to return *mpeg1FrameHeader 2017-06-18 17:44:04 +09:00
Hajime Hoshi
1c779b6017 audio/mp3: Refactoring 2017-06-18 17:40:28 +09:00
Hajime Hoshi
2767136947 audio/mp3: Refactoring: readSideInfo (was readAudioL3) returns *mpeg1SideInfo 2017-06-18 17:37:46 +09:00
Hajime Hoshi
80e6d4a175 audio/mp3: Rename sideInfo to sideInfoBytes 2017-06-18 17:24:33 +09:00
Hajime Hoshi
2b54013ccc audio/mp3: Refactoring: Rename global variables 2017-06-18 17:19:16 +09:00
Hajime Hoshi
8efd0e725f audio/mp3: Remove global variables 'v_vec' and 'store' 2017-06-18 17:13:38 +09:00
Hajime Hoshi
e0661a0ac6 audio/mp3: Refactoring 2017-06-18 16:50:08 +09:00
Hajime Hoshi
0291330a1b audio/mp3: Remove global variable theMainDataBytes 2017-06-18 16:45:36 +09:00
Hajime Hoshi
782284efd9 audio/mp3: Refactoring: Remove mainDataBytes.ptr 2017-06-18 13:45:08 +09:00
Hajime Hoshi
ff4529f1e7 audio/mp3: Refactoring: Remove mainDataBytes.top 2017-06-18 13:15:48 +09:00
Hajime Hoshi
3a55c2f805 audio/mp3: Refactoring 2017-06-18 02:38:43 +09:00
Hajime Hoshi
93c48e15c0 audio/mp3: Remove global variable 'theSideInfo' 2017-06-18 01:32:44 +09:00
Hajime Hoshi
9890a530a2 audio/mp3: Remove global variable 'writer' 2017-06-18 00:02:51 +09:00
Hajime Hoshi
19b3df1da3 audio/mp3: Remove audioWriteRaw 2017-06-17 23:58:15 +09:00
Hajime Hoshi
ae85ec991c audio/mp3: Refactoring: Add frame.numberOfChannels 2017-06-17 23:33:29 +09:00
Hajime Hoshi
76320010f4 audio/mp3: Bug fix: LR was swapped 2017-06-17 23:10:06 +09:00
Hajime Hoshi
c496d94047 audio/mp3: Remove isEOF 2017-06-17 19:33:49 +09:00
Hajime Hoshi
cb6e7366e2 audio/mp3: Add frame struct 2017-06-17 18:56:08 +09:00
Hajime Hoshi
0e4c949471 audio/mp3: Refactoring: layer member usage 2017-06-17 18:20:43 +09:00
Hajime Hoshi
b8a965b471 audio/mp3: Remove C files 2017-06-17 17:51:53 +09:00
Hajime Hoshi
ab8a9a1e36 audio/mp3: Move t_mpeg1_header to Go 2017-06-17 17:51:53 +09:00
Hajime Hoshi
a0af1595de audio/mp3: Move t_mpeg1_side_info to Go 2017-06-17 17:51:53 +09:00
Hajime Hoshi
d30f025d85 audio/mp3: Move t_mpeg1_main_data to Go 2017-06-17 17:51:41 +09:00
Hajime Hoshi
408b37dd7a audio/mp3: Remove eof const 2017-06-17 06:59:27 +09:00
Hajime Hoshi
541a633361 audio/mp3: Refactoring: Use uint32 for output data 2017-06-17 06:53:37 +09:00
Hajime Hoshi
51a2507430 audio/mp3: Remove all exports to C 2017-06-17 06:48:27 +09:00
Hajime Hoshi
02e284ea9d audio/mp3: Refactoring 2017-06-17 06:43:50 +09:00
Hajime Hoshi
e53d5920b0 audio/mp3: Move Decode_L3 to Go 2017-06-17 06:28:25 +09:00
Hajime Hoshi
1c86a90c8e audio/mp3: Remove g_error 2017-06-17 03:01:39 +09:00
Hajime Hoshi
61c76a3749 audio/mp3: Fix Get_Main_Dat to return error 2017-06-17 02:50:38 +09:00
Hajime Hoshi
73190062da audio/mp3: Move Read_Frame to Go 2017-06-17 02:43:13 +09:00
Hajime Hoshi
b08897a4e5 audio/mp3: Make Get_Byte a Go function 2017-06-17 01:36:58 +09:00
Hajime Hoshi
bdb87b0257 audio/mp3: Bug fix: updating cache in getBytes wrongly 2017-06-17 01:32:17 +09:00
Hajime Hoshi
e5fbcd50de audio/mp3: Refactoring getByte(s) 2017-06-17 00:35:01 +09:00
Hajime Hoshi
e41c0d3514 audio/mp3: Move Read_Header to Go 2017-06-17 00:08:47 +09:00
Hajime Hoshi
f6e7e3601f audio/mp3: Move Read_Huffman to Go 2017-06-16 23:41:13 +09:00
Hajime Hoshi
4b9242cbd0 audio/mp3: Move Requantize_Process_Long to Go 2017-06-16 22:56:54 +09:00
Hajime Hoshi
8e4abca1f8 audio/mp3: Move Requantize_Process_Short to Go 2017-06-16 22:29:16 +09:00
Hajime Hoshi
bf9a259565 audio/mp3: Bug fix in L3_Hybrid_Synthesis 2017-06-16 20:00:32 +09:00
Hajime Hoshi
74c2953f56 audio/mp3: Move L3_Requantize to Go 2017-06-16 16:43:45 +09:00
Hajime Hoshi
c96b54dbfb audio/mp3: Refactoring 2017-06-16 16:27:55 +09:00
Hajime Hoshi
3f24b7193a audio/mp3: Move L3_Reorder to Go 2017-06-15 11:06:58 +09:00
Hajime Hoshi
ef85c9a7bc audio/mp3: Move L3_Antialias to Go 2017-06-15 03:20:00 +09:00
Hajime Hoshi
53c2c5d810 audio/mp3: Move L3_Stereo to Go 2017-06-15 02:15:17 +09:00
Hajime Hoshi
9e002e3e52 audio/mp3: Move L3_Frequency_Inversion to Go 2017-06-15 01:40:42 +09:00
Hajime Hoshi
91c022dcda audio/mp3: Move L3_Subband_Synthesis to Go 2017-06-15 01:31:12 +09:00
Hajime Hoshi
b54f711243 audio/mp3: Move L3_Hybrid_Synthesis to Go 2017-06-14 23:45:18 +09:00
Hajime Hoshi
78626426fe audio/mp3: Move Read_Main_L3 to Go 2017-06-14 11:07:08 +09:00
Hajime Hoshi
746548f5d2 audio/mp3: Move Read_Audio_L3 to Go 2017-06-14 02:29:15 +09:00
Hajime Hoshi
49c95eb69f audio/mp3: Move IMDCT_Win to Go 2017-06-14 01:38:38 +09:00
Hajime Hoshi
b3e3adb9f0 audio/mp3: Move Read_CRC to Go 2017-06-13 10:28:21 +09:00
Hajime Hoshi
5dd91f6c83 audio/mp3: Move main_data_* to Go 2017-06-13 10:21:55 +09:00
Hajime Hoshi
3e76a77e6b audio/mp3: Move side_info_* to Go 2017-06-13 02:49:31 +09:00
Hajime Hoshi
68a2625fd2 audio/mp3: Move huffman tables to Go 2017-06-13 02:24:45 +09:00
Hajime Hoshi
bf3f6c9ff6 audio/mp3: Start implementing 2017-06-12 23:32:42 +09:00
Hajime Hoshi
d8f425962c audio: Bug fix: players' buffer can be empty when seeking before proceeding (#366) 2017-06-11 19:13:45 +09:00
Hajime Hoshi
1da2e35b7a android: Adjust the buffer size to reduce noise on Android 2017-06-04 22:42:12 +09:00
Hajime Hoshi
3b9e6c2708 audio: Use the new oto API 2017-06-04 21:09:42 +09:00
Hajime Hoshi
8957b1b857 audio: Non-blocking reading buffers 2017-06-04 16:46:02 +09:00
Hajime Hoshi
10bd1c1786 audio: byte -> uint8 2017-06-04 16:05:22 +09:00
Hajime Hoshi
17d6ea16de audio: More narrow critical section 2017-06-04 04:37:59 +09:00
Hajime Hoshi
7ad82dab44 audio: Bug fix: consider seeking streams when reading multiple sources 2017-06-04 04:05:30 +09:00
Hajime Hoshi
e0bc85e790 audio/vorbis: Cause runtime.Gosched more often 2017-06-04 03:44:39 +09:00
Hajime Hoshi
cf452bb709 audio: Bug fix: nosync might cause unexpected panics because of runtime.Gosched 2017-06-04 03:42:26 +09:00
Hajime Hoshi
873b3905df audio: Split locks 2017-06-04 03:14:48 +09:00
Hajime Hoshi
e7478b794a audio: Change the spec: Now audio.Player's functions are always concurrent safe 2017-06-04 02:52:11 +09:00
Hajime Hoshi
f53a55b63a audio: Bug fix: some fields need to be protected by mutex 2017-06-04 02:45:38 +09:00
Hajime Hoshi
579491afbd audio: Clarify concurrent safety 2017-06-04 01:03:01 +09:00
Hajime Hoshi
98c48463d2 audio: NewPlayerFromBytes now never returns errors 2017-06-03 01:12:58 +09:00
Hajime Hoshi
1b72263ce1 sync: Add sync package 2017-05-27 02:37:01 +09:00
Hajime Hoshi
64862929a9 audio: Fix usage of 'oto' 2017-05-05 15:13:46 +09:00
Hajime Hoshi
766072cdbb audio: Make 'oto' package and use that (#351) 2017-05-04 21:09:02 +09:00
Hajime Hoshi
858824821f doc: Remove 'concurrent-safe' comments from most of non-global functions 2017-04-18 01:33:03 +09:00
Hajime Hoshi
4d3ad434b3 audio/wav, audio/vorbis: Add comments about errors (#331) 2017-04-18 01:25:23 +09:00
Hajime Hoshi
1497d52928 audio: Add comments about errors (#331) 2017-04-18 00:59:10 +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
b0454b874e Fix frame counters to int64 (#337) 2017-04-06 00:45:28 +09:00
Hajime Hoshi
ebedb24e43 audio: Update doc for errors (#331) 2017-04-05 01:12:02 +09:00
Hajime Hoshi
892d5d07d0 audio: Remove TODO 2017-03-27 22:48:57 +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
6437bb28da audio/wav: Bug fix: header size was wrong 2017-01-16 23:36:09 +09:00
Hajime Hoshi
abd0958566 audio: Better conversion from 8bit to 16bit 2017-01-16 23:08:01 +09:00
Hajime Hoshi
f9ab7d9043 audio: Use consts 2017-01-16 22:48:44 +09:00
Hajime Hoshi
244d8204c5 audio/wav: Bug fix: seek correctly when using io.SeekEnd 2017-01-16 22:29:20 +09:00
Hajime Hoshi
2439d407df audio: Bug fix: Adjust data size after resampling 2017-01-16 11:25:46 +09:00
Hajime Hoshi
bb435b7296 audio: Remove NopCloser and Add BytesReadSeekCloser 2017-01-16 02:36:18 +09:00
Hajime Hoshi
8b4389856d audio: Add NopCloser 2017-01-16 02:21:21 +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
adde2f459e audio/wav: Bug fix: fmt header can be more than 16 bytes 2017-01-15 22:02:59 +09:00
Hajime Hoshi
14165cc67e audio: Fix comment 2017-01-15 18:02:21 +09:00
Hajime Hoshi
71cecea9c9 audio: Auto resampling (#301) 2017-01-15 17:49:57 +09:00
Hajime Hoshi
ee3da352db audio: Bug fix: Fix Seek: wav file can have a tail 2017-01-15 01:30:28 +09:00
Hajime Hoshi
f78f4002fa audio: Bug fix: wav.Decoder.Seek's returning value was wrong 2017-01-15 01:16:36 +09:00
Hajime Hoshi
9620c4efb2 audio: Add InfiniteLoop (#291) 2017-01-14 21:00:20 +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
924c55ff5c audio/vorbis: Remove comment 2016-12-12 20:06:54 +09:00
Hajime Hoshi
6d895a2001 audio/vorbis: Remove decode.go 2016-12-12 19:52:52 +09:00
Hajime Hoshi
52f57c4a6a audio/vorbis: Adjust Gosched timing (#297) 2016-12-08 10:56:36 +09:00
Hajime Hoshi
8ed07e0822 audio/vorbis: Avoid appending buffer 2016-12-08 02:14:39 +09:00
Hajime Hoshi
51da710860 audio/vorbis: Read some data before actual using (#297) 2016-11-30 12:00:53 +09:00
Hajime Hoshi
741ce9c7b8 audio: Bug fix: Handle touch event for iOS (#296) 2016-11-30 03:25:24 +09:00
Hajime Hoshi
604827ed3a audio/vorbis: Change the capacity of buffer 2016-11-29 12:12:48 +09:00
Hajime Hoshi
7b4af1b12d doc: Ogg/Vorbis is now available on Safari (#294) 2016-11-29 03:42:16 +09:00
Hajime Hoshi
83f19591ca audio/vorbis: Add decoded.readUntil 2016-11-29 03:37:43 +09:00
Hajime Hoshi
5789ad6920 audio/vorbis: Add comment 2016-11-29 03:36:42 +09:00
Hajime Hoshi
bf4e453cdb audio: Ignore seeking players 2016-11-29 03:36:16 +09:00
Hajime Hoshi
38af8ce615 audio: Remove unneeded locks 2016-11-29 03:01:52 +09:00
Hajime Hoshi
b454ff6547 audio/vorbis: Use oggvorbis for browsers 2016-11-29 01:02:00 +09:00
Hajime Hoshi
b0231c040e audio/vorbis: Adopt pure-Go decoder again (#294) 2016-11-28 11:34:44 +09:00
Hajime Hoshi
b6a8b5f5c9 audio/vorbis: Bug fix: Noise on browsers 2016-11-27 20:26:13 +09:00
Hajime Hoshi
38f0ec40b4 audio/vorbis: Use consts 2016-11-27 01:06:18 +09:00
Hajime Hoshi
8eba9cfc7f doc: Update docs for Safari (#293) 2016-11-27 00:11:23 +09:00
Hajime Hoshi
d16b5d328a Revert "audio/vorbis: Adopt pure-Go decoder (#294)"
This reverts commit 86276d7808.
2016-11-26 05:43:42 +09:00
Hajime Hoshi
86276d7808 audio/vorbis: Adopt pure-Go decoder (#294) 2016-11-26 04:31:56 +09:00
Hajime Hoshi
cf6d843572 vorbis: Return error when decoding fails 2016-11-26 02:06:15 +09:00
Hajime Hoshi
443c58104b audio: Remove logger on Android 2016-11-16 10:25:04 +09:00
Hajime Hoshi
61676616a7 audio: At most one audio context can exist (#271) 2016-10-02 22:18:44 +09:00
Hajime Hoshi
2eac8dca8c audio/wav: Bug fix: return an error when offset is before the start of the data 2016-09-27 02:13:56 +09:00
Hajime Hoshi
a14b4c8046 audio: Revert "audio/vorbis: Use pure Go decoder (#247)": fixing a bug of noisy sound 2016-09-27 01:01:04 +09:00
Hajime Hoshi
c634c588e5 audio: Bug fix: there could be chunks after 'data' chunk 2016-09-27 00:37:40 +09:00
Hajime Hoshi
d162843fbb audio: Add comment 2016-09-26 23:08:34 +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
dd9918d64e Add comments 2016-08-02 01:47:25 +09:00
Hajime Hoshi
77a1117165 audio/vorbis: Use pure Go decoder (#247) 2016-07-22 01:40:08 +09:00
Hajime Hoshi
0c78f2ac48 audio/vorbis: Implement a part in Go to encourage context switch (#247) 2016-07-21 03:08:29 +09:00
Hajime Hoshi
9de581f832 audio: Check returning values of write (android) 2016-07-01 22:05:11 +09:00
Hajime Hoshi
d6c1bb2ae8 audio: Fix a comment 2016-06-28 02:50:13 +09:00
Hajime Hoshi
5551a70776 audio: Fix a comment of (*Player).Close 2016-06-27 13:53:29 +09:00
Hajime Hoshi
b02d89cdc3 audio: Add NewPlayerFromBytes (#231) 2016-06-27 02:23:08 +09:00
Hajime Hoshi
a2402c32c0 audio: Check the stream can be used or not 2016-06-27 02:02:01 +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
4c2bbd47a1 audio: Fix a comment 2016-05-26 23:33:12 +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