Releases: cryville/Cryville.Audio
Releases · cryville/Cryville.Audio
6.0.0-rc.2
fix(core): Fix buffer overflow in CachedAudioSource
6.0.0-rc.1
build: Update project version
3.0.2
3.0.1
3.0.0
This version introduces a license change, please check the new LICENSE.
Additions
- AAudio engine
- Property
WaveFormat.FrameSize
- Property
IAudioDevice.BurstSize
MinimumBufferDuration
(nowMinimumBufferSize
) implementation for OpenSL ES
Breaking changes
- Pull up the properties
DefaultBufferDuration
(nowDefaultBufferSize
,)MinimumBufferDuration
(nowMinimumBufferSize
,) andDefaultFormat
fromAudioClient
toIAudioDevice
. - Pull up the method
IsFormatSupported
fromAudioClient
toIAudioDevice
. - Remove the method
AudioClient.Init
and pull up the initialization logic toIAudioDevice.Connect
. - Remove the predefined engine order in
EngineBuilder
.
Now it is required to add engines into theEngineBuilder.Engines
list manually. - Split every engine into its own project.
- Refactor
DefaultBufferDuration
toDefaultBufferSize
andMinimumBufferDuration
toMinimumBufferSize
, changing their units from milliseconds to frames. - Refactor the
bufferDuration
parameter in theIAudioDevice.Connect
method tobufferSize
, changing its unit from milliseconds to frames. - Move
LibavFileAudioSource
into a separate projectCryville.Audio.Source.Libav
.
Changes
DataFlow
enum is now flags.- Remove
Cryville.Audio.WasapiWrapper
in favor of internal COM implementation.
Optimizations
- Optimize latency for OpenSL ES by detecting default sample rate.
Fixes
- A render attempt before the format is set caused potential error.
- Disposing a WASAPI device when its property store is not open caused error.
- Playing when the source is null in OpenSL crashed the application.
2.0.1
2.0.0
Additions
AudioClient.Muted
AudioStream.SeekTime()
AudioStream.SetDuration()
AudioStream.Duration
AudioStream.Time
- Seeking feature for
FunctionAudioSource
,LibavFileAudioSource
, andSimpleSequencerSource
Changes
- Remove
AudioSource.Muted
(nowin favor ofAudioStream.Muted
)AudioClient.Muted
. WaveFormat
is now equatable.- Remove
OpenSL.OutputClient.CallbackFunction
, which is no longer required. - Rename the values of
SampleFormat
enumeration.Unsigned8
->U8
Signed16
->S16
Signed24
->S24
Signed32
->S32
Binary32
->F32
Binary64
->F64
- Rename
AudioSource
toAudioStream
.AudioSource.FillBuffer()
->AudioStream.Read()
- Remove instance method
AudioSource.SilentBuffer()
(nowAudioStream.SilentBuffer()
.) - Calling
AudioSource.SetFormat()
(nowAudioStream.SetFormat()
) twice on a single instance is no longer allowed. - The best stream is selected now on format set in
LibavFileAudioSource
.
Optimizations
- Optimize GC for
CachedAudioSource.FillBuffer()
(nowCachedAudioSource.Read()
) under Mono environment.
Fixes
- The lower clipping edge of
SampleFormat.Signed24
(nowSampleFormat.S24
) was incorrect. - Improper dispose patterns.
- The session queue of
SimpleSequencerSession
was not locked.