Chris Robinson
dd9d30e248
Implement an SSE MixSend method
2012-09-16 06:19:39 -07:00
Chris Robinson
95535ce99e
Properly restore the SSE control word with __control87_2
2012-09-16 06:01:48 -07:00
Chris Robinson
df2e82da78
Properly handle the SSE control word
2012-09-16 05:35:38 -07:00
Chris Robinson
a1daec66e2
Use __control87_2 when available
2012-09-16 01:44:45 -07:00
Chris Robinson
657ee85136
Use a struct to store the FPU mode
2012-09-16 01:35:16 -07:00
Chris Robinson
28086f6cb7
Implement an SSE cubic resampler
2012-09-14 07:01:58 -07:00
Chris Robinson
45bb010b28
Shorten a warning
2012-09-14 05:05:20 -07:00
Chris Robinson
90e0c74721
Implement an SSE linear resampler
2012-09-14 04:48:53 -07:00
Chris Robinson
a20341ac2a
Ensure the ResampledBuffer is aligned
2012-09-14 04:16:49 -07:00
Chris Robinson
7635afcb52
Use a source param for the resampler and move them to the mixer source
2012-09-14 04:13:18 -07:00
Chris Robinson
9f58edd7a8
Fix up some more header includes
2012-09-14 02:42:36 -07:00
Chris Robinson
0f3a575a09
Don't include alu.h in alMain.h
2012-09-14 02:14:29 -07:00
Chris Robinson
ec74fb9ba2
Enable flush-to-zero mode when possible
2012-09-14 01:10:19 -07:00
Chris Robinson
ff809f2271
Move a couple methods to where they're used
2012-09-12 07:57:50 -07:00
Chris Robinson
41f52fdd6a
Restore support for the previous mhr format
2012-09-12 07:25:05 -07:00
Chris Robinson
613ce3f976
Update fnamelist after handling % markers
2012-09-12 04:55:03 -07:00
Chris Robinson
ce8a0a9fd5
Use PATH_MAX for the fname length
2012-09-12 03:45:26 -07:00
Chris Robinson
f59e4ba7c2
Improve parsing hrtf_tables filenames
2012-09-12 03:41:41 -07:00
Chris Robinson
f4642953d4
Warn about SSE performance with non-multiple-of-4 update sizes
2012-09-11 11:17:41 -07:00
Chris Robinson
88b0c30152
Use the correct size for defaultCoeffs
2012-09-11 10:43:53 -07:00
Chris Robinson
01183ad93b
Minor cleanups for variable declarations
2012-09-11 09:40:08 -07:00
Chris Robinson
3f97af4c8c
Don't use count-specific functions to write to the output buffer
2012-09-11 06:41:24 -07:00
Chris Robinson
4c5cb2189b
Use a non-interleaved DryBuffer
2012-09-11 06:32:42 -07:00
Chris Robinson
98ff6f990a
Do the filtering separately from the mixing
2012-09-11 05:56:19 -07:00
Chris Robinson
7e81918f7b
Update HRTF code
...
This update allows for much more flexibility in the HRTF data. It also allows
for HRTF table file names to include "%r" to represent the device's playback
rate (e.g. if you set hrtf-%r.mhr, then it will try to use hrtf-44100.mhr or
hrtf-48000.mhr depending if the device's output rate is 44100 or 48000,
respectively).
The makehrtf utility has also been updated to support more options and input
file formats, as well as the new mhr format.
2012-09-11 02:11:51 -07:00
Chris Robinson
1b840a3db8
Again try to get _WIN32_IE to behave right with MinGW
2012-09-11 01:39:05 -07:00
Chris Robinson
af3b5c23c8
Try to ensure mixing samples in multiples of 4
2012-09-09 04:27:47 -07:00
Chris Robinson
9f208417df
Use the right method to clear a __m128 to 0
2012-09-09 04:09:31 -07:00
Chris Robinson
f1ce139997
Use SSE to do 4 samples at once (non-HRTF direct mix), instead of to apply a matrix row
...
MaxCHannels no longer needs to be a multiple of 4 now, either.
2012-09-09 04:02:54 -07:00
Chris Robinson
f56dddfa73
Implement MixDirect_SSE separately from the C and Neon versions
2012-09-09 00:53:54 -07:00
Chris Robinson
2bf1979d4a
Move the target effect slot to the SendParams struct
2012-09-08 22:32:30 -07:00
Chris Robinson
89cab3cd39
Remove STACK_DATA_SIZE in favor of BUFFERSIZE
2012-09-08 22:09:34 -07:00
Chris Robinson
6723d27e06
Remove some unused code
2012-09-08 21:53:04 -07:00
Chris Robinson
1c03025090
Separate the resampling and mixing steps
2012-09-08 21:34:36 -07:00
Chris Robinson
2b5fdad2c8
Free the global ALSA config after opening capture devices too
2012-09-02 14:26:46 -07:00
Lauri Kasanen
a6f9ede849
alsa: Free the global config cache to remove a lot of reported leaks
...
Signed-off-by: Lauri Kasanen <curaga@operamail.com>
2012-09-02 14:16:23 -07:00
Chris Robinson
795909c39e
Minor cleanups for mixer_inc
2012-08-29 02:43:19 -07:00
Chris Robinson
3c042a054d
Add an SSE-enhanced path for applying the mixer matrix
2012-08-29 01:56:04 -07:00
Chris Robinson
332d66c183
Make sure device buffers are 16-byte aligned
2012-08-29 01:40:42 -07:00
Chris Robinson
f2fa5e7c88
Print the error when reporting snd_pcm_delay failure
2012-08-27 22:52:37 -07:00
Chris Robinson
3b735cc34a
Use _aligned_free for pointers returned by _aligned_malloc
2012-08-24 17:45:16 -07:00
Chris Robinson
bc1ce7b3ac
Add methods to get source properties as doubles
2012-08-20 15:26:35 -07:00
Chris Robinson
50fa9a44be
Properly export alGetSource3i64SOFT
2012-08-20 14:48:08 -07:00
Chris Robinson
f5e0500df4
Add a macro to help make a 64-bit value
2012-08-19 22:31:55 -07:00
Chris Robinson
37924887e8
Use a default method to provide a dummy latency
2012-08-19 12:31:59 -07:00
Chris Robinson
0db7c4131b
Hold the device lock with PulseAudio between mixing and writing
2012-08-18 17:20:20 -07:00
Chris Robinson
a56a974149
Hold the device lock with ALSA between mixing and writing
2012-08-18 17:18:53 -07:00
Chris Robinson
af7f3768fa
Use non-blocking access for ALSA playback
2012-08-18 17:01:56 -07:00
Chris Robinson
0865db564f
Move the device lock into the backend function table
...
For backend-specific implementations: this should hold the audio mixer loop for
playback devices, and provide recursive mutex behavior.
2012-08-18 15:58:04 -07:00
Chris Robinson
2b020040b4
Keep the backend device open until the last reference is released
...
This should generally happen with the next ALCdevice_DecRef call unless the
device is in the middle of being used in another thread, in which case it's
probably best to not remove the resources.
2012-08-18 14:49:42 -07:00