Chris Robinson
e4bbbe06fa
Avoid manual loops for ALfilterState processing
2016-07-25 19:04:54 -07:00
Chris Robinson
94dd34fb4b
Increase the default thunk array size
...
This value should be enough to hold IDs for most apps without needing to
reallocate it, while not being unnecessarily large (4KB).
2016-07-25 06:29:08 -07:00
Chris Robinson
c0e7aab823
Properly skip loading of already-loaded HRTF data sets
...
Previously, if an HRTF file was loaded it would not only skip loading it, but
it would also skip adding it to the output enumeration list. Now it properly
skips loading it when it's already loaded, but still adds it to the enumeration
list if it's not already in it.
2016-07-24 21:59:02 -07:00
kcat
9f2e416bbd
Merge pull request #49 from ryanpcmcquen/patch-1
...
Fix for ffmpeg.
2016-07-21 16:42:21 -07:00
Ryan P.C. McQuen
69af50cadb
Fix for ffmpeg.
...
Closes https://github.com/kcat/openal-soft/issues/48 .
2016-07-21 08:09:31 -07:00
Chris Robinson
fbba2828cd
Update the default quad decoder matrix
2016-07-18 19:42:11 -07:00
Chris Robinson
dc8bbca7f1
Constify and use the correct size for an array
2016-07-17 15:38:39 -07:00
Chris Robinson
84ca38ba95
Make a MAX_AMBI2D_COEFFS macro instead of a magic number
2016-07-17 00:46:18 -07:00
Chris Robinson
35cbecabf9
Repack the ambisonic dual-band decoder matrices
...
The decoders use a row of the HF decoder matrix followed by a row of the LF
decoder matrix, for each given output channel in turn. Packing the two matrices
accordingly results in less memory hopping.
2016-07-17 00:29:43 -07:00
Chris Robinson
2f3cffa517
Improve the UHJ encoder's allpass processing loops
2016-07-14 01:42:02 -07:00
Chris Robinson
470f454c53
Modify bs2b_cross_feed to do multiple samples at once
2016-07-13 23:08:11 -07:00
Chris Robinson
5106f035df
Move the input channel array out of the DirectParams and SendParams
2016-07-13 01:39:44 -07:00
Chris Robinson
e8202b915d
Fix indentation
2016-07-12 19:05:56 -07:00
Chris Robinson
b4cb0e9bf5
Fix a copy-paste message error
2016-07-12 19:05:21 -07:00
Chris Robinson
ee929a2eea
Enumerate the embedded HRTF resources when available
2016-07-12 19:02:19 -07:00
Chris Robinson
4898234da8
Add a cmake option to embed the HRTF data
2016-07-12 14:22:17 -07:00
Chris Robinson
14166264d6
Store the voice output buffers separate from the params
2016-07-11 23:30:32 -07:00
Chris Robinson
e4039cb9ae
Update comment about the source radius calculations
2016-07-10 22:11:11 -07:00
Chris Robinson
fe2fb81047
Fix a direct access to a UIntMap
2016-07-09 16:42:36 -07:00
Chris Robinson
0aae992f94
Reorder some source fields
2016-07-07 19:48:21 -07:00
Chris Robinson
745cad5231
Avoid standard malloc/free for Hrtf allocation
2016-07-07 10:31:43 -07:00
Chris Robinson
7ec89b4b6e
Avoid function calls to get the HRTF sample rate and IR size
2016-07-07 10:26:42 -07:00
Chris Robinson
b495d80f56
Avoid using memcpy to copy a single struct
2016-07-06 13:33:40 -07:00
Chris Robinson
d096e183a8
Remove a slightly outdated comment
2016-07-06 09:52:42 -07:00
Chris Robinson
d340d50d49
Remove the VirtOut buffer alias
2016-07-05 14:18:17 -07:00
Chris Robinson
8f4d6c48ce
Use separate arrays for UIntMap keys and values
2016-07-04 20:35:32 -07:00
Chris Robinson
f0cbcdc928
Use al_malloc/al_free for the UIntMap array
2016-07-04 10:26:46 -07:00
Chris Robinson
80da138d7f
Ensure voices has been updated once before mixing them
...
Sometimes the mixer is temporarily prevented from applying updates, when
multiple sources need to be updated simultaneously for example, but does not
prevent mixing. If the mixer runs during that time and a voice was just
started, it would've mixed the voice without any internal properties being set
for it.
2016-06-16 18:29:18 -07:00
Chris Robinson
697ee19f71
Rename MaxNoOfSources for consistency
2016-06-08 11:19:33 -07:00
Chris Robinson
a49db89d7a
Remove an IN_IDE_PARSER hack
...
Not all IDE parsers necessarily choke on restrict, and even those that do can
probably have their own configuration to define macros that can hide the
parsing errors caused by it.
2016-06-07 16:11:50 -07:00
Chris Robinson
0477d61599
Look in the executable's dir for another config file
...
On Windows it'll look for alsoft.ini, and elsewhere is alsoft.conf. This
applies after the user-local settings and before ALSOFT_CONF.
2016-06-04 10:45:44 -07:00
Chris Robinson
b2041a5ddf
Only define 8 HRTF filter states and params for the device
...
It will only be used with a cube channel setup, so there's no need to have one
for every possible output channel.
2016-06-04 08:40:06 -07:00
Chris Robinson
2c402e1ab5
Add property queries to get the device latency with the clock
2016-06-03 09:40:30 -07:00
Chris Robinson
e38a81c5b6
Improve the filter processing function
2016-06-03 06:55:54 -07:00
Chris Robinson
ce676ab70a
Remove some unnecessary volatile keywords
2016-06-03 05:46:29 -07:00
Chris Robinson
b7da69510c
Implement a Neon-enhanced MixRow
2016-06-01 23:39:13 -07:00
Chris Robinson
a16d0b192e
Make a function static
2016-06-01 10:21:16 -07:00
Chris Robinson
c63d468d4c
Use a macro to specify the ambisonic periphonic channel mask
2016-06-01 05:30:06 -07:00
Chris Robinson
5e64882be9
Use SSE for applying the HQ B-Format decoder matrices
2016-05-31 10:18:34 -07:00
Chris Robinson
72d2febccb
Don't access the band splitter fields in the processing loops
...
perf shows a 5% drop in relative execution time on the alffplay example with an
audio-only file (20% to 15%). Kinda figured the optimizer would handle it
better, but I guess not.
2016-05-31 07:50:23 -07:00
Chris Robinson
d1c4fb6364
Don't try to emulate almtx_timedlock
2016-05-30 05:04:49 -07:00
Chris Robinson
612b24fa91
Clean up a couple variable names and declarations
2016-05-30 02:10:06 -07:00
Chris Robinson
70a105c22c
Remove unnecessary VECTOR_INSERT
2016-05-30 00:05:10 -07:00
Chris Robinson
4802465f1a
Hold the effectslot map lock while handling it
2016-05-29 02:47:54 -07:00
Chris Robinson
8aa4a74a7b
Use a linked list for active effect slots
2016-05-29 01:40:16 -07:00
Chris Robinson
4b8aa9caf1
Avoid the mixer lock when getting the plain source offset
...
i.e. without the latency
2016-05-28 06:23:55 -07:00
Chris Robinson
9025e42afd
Avoid an explicit mixer lock for getting the source offset and latency
...
The only mixer locking involved is with the backend, as determined by it's
ability to get the device clock and latency atomically.
2016-05-28 04:11:57 -07:00
Chris Robinson
6d4380a48c
Change the backend getLatency method to return the clock time too
...
This will also allow backends to better synchronize the tracked clock time with
the device output latency, without necessarily needing to lock if the backend
API can allow for it.
2016-05-28 00:43:14 -07:00
Chris Robinson
800e38bac6
Use the backend lock for the effectstate's deviceUpdate call
2016-05-27 19:40:54 -07:00
Chris Robinson
c837484015
Use a specific lock for the backend's stop/reset/play calls
...
This helps protect against the device changing unexpectedly from multiple
threads, instead of using the global list/library lock.
2016-05-27 19:23:39 -07:00