Hajime Hoshi
c112c31e7e
audio: Reimplement audio by using multiple oto.Player
2019-04-30 18:20:52 +09:00
Hajime Hoshi
339e76afec
audio: Bug fix: Dead lock at seeking
...
When sending something to channels, a lock should not be used,
or the receiver side might be using the same lock.
Bug: #855
2019-04-30 12:51:22 +09:00
Hajime Hoshi
e19479d243
audio: Add comments about explanation how deadlock happens
...
This might be related to #855
2019-04-30 01:41:34 +09:00
Hajime Hoshi
5ecc595ce4
audio: Bug fix: Reset playing state at the end of the readLoop
2019-04-29 22:31:10 +09:00
Hajime Hoshi
d2979e288d
audio: Bug fix: runningReadLoop must be set to true before starting the goroutine
...
This can cause deadlock by multiple goroutines if runningReadLoop
is set to true in the goroutine.
Related to #855 ?
2019-04-29 21:46:26 +09:00
Hajime Hoshi
89f6eba925
Revert "audio: Bug fix: Make ensureReadLoop exactly atomic"
...
This reverts commit 835497edd3
.
Reason: This causes a dead lock at examples/piano with many notes.
This might be related to #855
2019-04-29 14:57:55 +09:00
Hajime Hoshi
fe3e8e376a
audio: Move seeking from the loop to Seek function
...
Seek should work in both cases the loop runs and not. This change
is a preparation.
2019-04-29 02:27:15 +09:00
Hajime Hoshi
c4c6acacf9
audio: Remove (*mux).hasPlayer
2019-04-29 01:01:29 +09:00
Hajime Hoshi
96012b661f
audio: Bug fix: bufferToInt16 can return smaller result
...
Fixes #854
2019-04-29 00:32:57 +09:00
Hajime Hoshi
835497edd3
audio: Bug fix: Make ensureReadLoop exactly atomic
2019-04-29 00:05:54 +09:00
Hajime Hoshi
b1607de99d
audio: Refactoring
2019-04-28 23:58:06 +09:00
Hajime Hoshi
14b6e95217
audio: Use a boolean value to inidicate inited state intead of channels
...
This is a preparation to use oto.Players for Players. By using a
boolean value, suspending state can be detected from multiple
oto.Players.
2019-04-28 19:53:28 +09:00
Hajime Hoshi
fe55e55b7e
audio: Refactoring
2019-04-28 19:53:28 +09:00
Hajime Hoshi
1327e2239c
audio: Use a boolean value to indicate suspending state instead of channels
...
This is a preparation to use oto.Players for Players. By using a
boolean value, suspending state can be detected from multiple
oto.Players.
2019-04-28 19:53:28 +09:00
Hajime Hoshi
2b7705e7ad
audio: AppendHookOnBeforeUpdate should treat multiple calbacks
2019-04-28 19:53:22 +09:00
Hajime Hoshi
31758bf3ab
audio: Remove comment
2019-04-28 19:49:37 +09:00
Hajime Hoshi
2bea7d4e1a
audio: Error on duplicated source
...
Fixes #853
2019-04-28 19:39:46 +09:00
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