David Reid
8db30c3673
Optimized paths for stereo and 5.1 for mono expansion.
2022-11-24 15:52:03 +10:00
David Reid
c99cb2b901
Channel conversion optimization for mono expansion.
2022-11-24 14:48:45 +10:00
David Reid
72f1fe386b
Optimize sounds by applying volume via the gainer.
...
By using the gainer to apply the master volume, we can essentially get
master volume control for free by premultiplying the per-channel
volumes by the master volume before processing.
2022-11-24 14:17:16 +10:00
David Reid
50f3e12e52
Add the notion of master volume to the spatializer.
2022-11-24 13:53:32 +10:00
David Reid
c2a4c036c7
Add support for master volume to ma_gainer.
2022-11-24 13:44:37 +10:00
David Reid
ab90dc0b55
Remove MA_PREFERRED_SIMD.
...
If you were previously using this, it will no longer have any effect.
SSE2 and NEON will be used if supported, but can be disabled with
`MA_NO_SSE2` and `MA_NO_NEON`.
2022-11-24 13:08:17 +10:00
David Reid
0a788f7965
Remove placeholders for hand-written AVX2 code.
...
Maintaining AVX2 optimizations by hand is not worth the effort. The use
of AVX2 is now dependent on the compiler's auto-vectorization function.
2022-11-24 13:04:43 +10:00
David Reid
da5c5c2eaa
Code clean up for ma_gainer.
2022-11-24 12:40:22 +10:00
David Reid
7fd1246dec
Add some hand written SSE2 code to ma_gainer.
2022-11-24 11:38:27 +10:00
David Reid
90bbfa2c09
Remove an attribute from ma_gainer_process_pcm_frames_internal()
2022-11-23 21:31:09 +10:00
David Reid
43374b19a9
More improvements to vectorization.
2022-11-23 21:30:08 +10:00
David Reid
5c358a75f3
Some vectorization improvements to ma_gainer.
2022-11-23 19:54:28 +10:00
David Reid
89cc773cf1
Experimental optimizations for channel mapping.
2022-11-23 16:52:13 +10:00
David Reid
33854acc8e
Implement optimized paths for 6 and 8 channels to the gainer.
2022-11-23 15:12:14 +10:00
David Reid
f3c36e4947
Fix a bounds check in ma_get_backend_name().
2022-11-22 22:05:05 +10:00
David Reid
596f23c181
Add ma_get_backend_from_name().
2022-11-22 21:52:43 +10:00
David Reid
ff75eb0a4b
Update c89atomic.
2022-11-22 21:39:11 +10:00
David Reid
593897f146
Add an assert to ma_zero_memory_default().
2022-11-22 21:27:50 +10:00
David Reid
d16e6e4d37
Fix a formatting warning.
2022-11-22 21:25:00 +10:00
David Reid
1e1d76687c
Don't try returning a value in ma_pcm_f32_to_s16__neon().
2022-11-22 21:22:15 +10:00
David Reid
6a09fb9cb9
Fix non-Windows builds.
2022-11-22 18:11:53 +10:00
David Reid
a6ec466efa
WASAPI: Don't stop the device while in the middle of rerouting.
...
Public issue https://github.com/mackron/miniaudio/issues/582
2022-11-22 16:48:32 +10:00
David Reid
ec262595f9
Fix a bug where sounds are not resampled when NO_PITCH is used.
2022-11-22 16:34:35 +10:00
David Reid
248fa5c9f6
WASAPI: Fix a crash when starting a device while rerouting.
...
Public issue https://github.com/mackron/miniaudio/issues/582
2022-11-22 14:49:36 +10:00
David Reid
169a75e1de
WASAPI: Abandon rerouting when the device is in the middle of starting.
2022-11-22 13:23:01 +10:00
thedmd
0f392b8b8b
Compile cleanly on Switch.
2022-11-21 13:03:09 +11:00
David Reid
239a6138db
Merge branch 'dev' of https://github.com/mackron/miniaudio into dev
2022-11-20 20:45:31 +10:00
David Reid
a1024dde49
Don't treat some platforms as Unix.
2022-11-20 21:45:02 +11:00
David Reid
8eec6da491
Unify the MA_NO_DLOPEN and MA_NO_RUNTIME_LINKING options.
2022-11-20 21:45:02 +11:00
thedmd
bf64bc79db
Add MA_NO_DLOPEN to disable ma_dlopen implementation.
2022-11-20 21:45:02 +11:00
thedmd
9beb89c1e3
Detect MA_ORBIS and MA_PROSPERO before MA_BSD.
...
Checking for __ORBIS__ and __PROSPERO__ first avoid identifying PS4/PS5 as BSD systems.
2022-11-20 21:45:02 +11:00
thedmd
53bbca81b9
Remove trailing spaces.
2022-11-20 21:45:02 +11:00
David Reid
31f4a6c5b2
Update some documentation.
2022-11-20 17:13:55 +10:00
David Reid
e531dd255e
Remove the old runtime linking system for pthread.
2022-11-20 10:53:46 +10:00
David Reid
0b6e80b030
Update c89atomic.
2022-11-20 10:50:15 +10:00
David Reid
44e58d6038
Fix some bugs with initialization of POSIX threads.
2022-11-20 10:39:15 +10:00
David Reid
d28c1ebee2
Show a more appropriate log when a backend fails due to being disabled.
2022-11-19 20:07:31 +10:00
David Reid
9ba72fa2f6
Fix a bug in ma_gainer.
2022-11-19 14:34:47 +10:00
David Reid
1c4fc2743c
Minor restructuring and fix the C++ build.
2022-11-19 14:00:10 +10:00
David Reid
b1967397dd
Optimization pass on ma_gainer.
2022-11-19 13:20:25 +10:00
David Reid
45d6d5a2c3
Optimization for stereo sounds in the engine.
...
In a stereo scenario, the listener will use a channel map of
{SIDE_LEFT, SIDE_RIGHT}, but sounds will default to
{FRONT_LEFT, FRONT_RIGHT}. As a result, channel mapping will be
performed to do the conversion. By instead defaulting stereo sounds
to be consistent with the listener, a passthrough path can be used
instead, improving efficiency.
2022-11-18 21:20:05 +10:00
David Reid
9bea9fd309
Have ma_sound_init_from_file() return error when no file path is given.
2022-11-18 20:44:12 +10:00
David Reid
055918830f
Remove a reference to an unused function.
2022-11-18 17:04:23 +10:00
David Reid
d33a866c33
Remove an unnecessary atomic.
2022-11-18 17:03:43 +10:00
David Reid
54ff8266ea
Add an assert.
2022-11-18 13:30:48 +10:00
David Reid
ec2bc0ce79
Remove some whitespace for style consistency.
2022-11-18 12:10:40 +10:00
David Reid
2aa98c1df6
Clean up some logic relating to playback data conversion cache.
2022-11-18 12:09:31 +10:00
Jeffrey Poore
4514a71bab
fixed a little problem with changing devices when initialized our device config as duplex; fixed typos
2022-11-18 12:31:01 +11:00
David Reid
4f8e8de301
Migrate atomics from ma_device to new atomics system.
2022-11-14 16:43:16 +10:00
David Reid
84e911726c
Introduce new safe atomic types.
...
The idea behind this is to avoid subtle bugs that are a result of
accidentally not using atomic operations to reference variables that
must always be used atomically.
This commit does not convert every atomic variable to the new system,
however going forward this will need to be adopted over time.
2022-11-13 12:05:32 +10:00