Commit Graph

328 Commits

Author SHA1 Message Date
Themaister 2499cccb1a Add rate control simulation to resampler test. 2013-02-28 17:14:34 +01:00
Themaister 7b389b70bc Use more correct modulation factor in SSE convert.
Use same factor as C.
2013-02-27 20:46:55 +01:00
meancoot 06bb6b7840 Merge branch 'master' of https://github.com/Themaister/RetroArch into ios 2013-02-21 22:18:14 -05:00
Themaister 0c6e456e65 Merge branch 'master' into thread_video 2013-02-17 15:49:58 +01:00
Themaister 59e7bc82db Move warning disable to msvc_compat.h. 2013-02-17 15:10:03 +01:00
twinaphex 6e1cec5090 (Xbox 1) Sinc - get rid of warning 2013-02-17 15:05:36 +01:00
Themaister 76bf41188a Add video_threaded option to Android. 2013-02-17 00:26:17 +01:00
Themaister 75a51c191b Fix Android build. 2013-02-16 12:33:47 +01:00
meancoot 5d139b185b Merge branch 'master' of https://github.com/Themaister/RetroArch into ios 2013-02-15 18:54:57 -05:00
Themaister 3e3d9ec3af Use higher precision Kaiser.
Add test case for Kaiser window in MATLAB.
2013-02-14 12:58:50 +01:00
Themaister dc413ab605 Fix SNR test getting broken result. 2013-02-14 12:30:57 +01:00
Themaister ff14092d8d Use -ffast-math.
Helps SINC resampler to auto-vectorize.
2013-02-14 11:57:07 +01:00
Themaister 11d919b9e8 Fix downsampling for SINC. 2013-02-13 21:55:58 +01:00
Themaister 2aecc0e5f5 De-hardcode number of SINC taps.
Prepare for possible downsampling.
2013-02-13 12:11:49 +01:00
Themaister d68fe248f3 Start using LERP optionally for SINC again. 2013-02-13 11:56:20 +01:00
Themaister 7ceefc9172 Clarify requirements for NEON. 2013-02-12 22:43:04 +01:00
Themaister 578a47d73d Rework SINC resampler. Use Kaiser window. 2013-02-12 22:41:26 +01:00
meancoot 634f4dd543 ios: Patch coreaudio.c and use it instead of OpenAL. 2013-02-11 18:45:45 -05:00
Themaister 8c4410158d Fix potential segfault in AL. 2013-02-11 20:38:16 +01:00
Themaister fe1d9a5a2a Add rate control interfaces to AL. 2013-02-11 20:14:12 +01:00
Themaister db876d59ac Fix resampler tests. 2013-02-08 15:37:40 +01:00
Themaister e19555d394 Make number of sinc taps variable in NEON. 2013-02-08 14:28:25 +01:00
Themaister 202e204fd7 Add resampler.c. 2013-02-08 11:50:45 +01:00
Themaister d33d2e9f0c Make resamplers more modular. 2013-02-08 11:49:51 +01:00
Themaister 64c0e39596 Add NEON check for sinc taps. 2013-02-07 07:32:10 +01:00
Themaister b2226de89d Add some basic SINC profiles. 2013-02-07 07:22:33 +01:00
Themaister 7ab8eaec02 Use NEON conditionally for sample conversions. 2013-01-24 18:37:42 +01:00
Themaister 77207332f1 Use NEON conditionally in SINC. 2013-01-24 18:30:37 +01:00
Themaister a52c0502d0 Actually use POT size in SL. 2013-01-18 11:29:02 +01:00
Themaister 5292191b63 Add some logging to OpenSL. 2013-01-18 01:10:18 +01:00
Themaister aadff4658f Use OpenSL in a more correct fashion. 2013-01-18 01:10:18 +01:00
twinaphex 70e64897be Fixes PC build 2013-01-17 14:24:26 +01:00
twinaphex 3b43155b06 rarch_console_rsound.c code moved to audio/utils.c 2013-01-17 14:21:49 +01:00
Themaister f3309b8997 Compiled XAudio as C++.
No point hacking around with vtables in C and shit ...
2013-01-11 01:13:55 +01:00
twinaphex 6795d74025 (XAudio2) Fix Xbox360 build 2013-01-10 16:33:29 +01:00
Themaister b1eb277d1f Actually use 2.7 CLS id ... 2013-01-10 16:39:39 +01:00
Themaister bd483fbb6b Use XAudio2 2.7 CLS. 2013-01-10 16:33:14 +01:00
Themaister a0f12d6887 Correct XAudio2 interface. 2013-01-10 16:22:39 +01:00
Themaister dec73e17ef Refactor out some redundancies. 2013-01-10 11:05:55 +01:00
Themaister f3da29706c Fix build on Windows. 2013-01-10 10:55:14 +01:00
twinaphex cd28dbcd92 (360) Uses the same Xaudio header now as PC 2013-01-10 02:46:35 +01:00
twinaphex 436f05709b (360) Xaudio2 360 driver uses same C backend file as PC now 2013-01-10 01:53:37 +01:00
twinaphex 11c1d149d6 (Xaudio) indenting nits 2013-01-09 22:17:43 +01:00
twinaphex 589b5eefdb (360) 360 audio driver now goes through the same Xaudio driver
as PC
2013-01-09 22:04:28 +01:00
twinaphex 05863ffe31 (360) Move xaudio.h header to audio/xaudio-c/xaudio_xdk360.h 2013-01-09 20:57:20 +01:00
ToadKing aed2aa146c copyrights 2013-01-04 15:02:40 -05:00
ToadKing fd0bb1b3ee make alsathread a seperate audio driver 2013-01-04 14:58:34 -05:00
Themaister 0b4cf2d053 Update license headers to 2013. 2013-01-01 01:41:15 +01:00
Themaister e3a0668f55 Fix segfault when samples < 8 on NEON. 2012-12-28 21:25:41 +01:00
Themaister 6bb2349833 Kill off external driver plug interfaces.
These are too much work to maintain, and aren't really all
that useful.
2012-12-22 11:37:15 +01:00
OV2 a193bac6a1 Fix hermite compile 2012-12-19 20:01:12 +01:00
twinaphex 5598c75071 (OpenSL) Get rid of Android-specific hack 2012-12-11 14:16:47 +01:00
notaz f6de3722ef (utils_neon) Don't use callee-save registers 2012-12-09 18:58:47 +02:00
notaz 17f42531c3 (sinc_neon) Don't use callee-save registers
fixes a crash on ARM Linux.
2012-12-09 18:30:05 +02:00
notaz 16edc7c80e Add ARM NEON support for main build. 2012-12-09 18:30:04 +02:00
twinaphex 242d2d0d65 (Android) Fixes crippled performance on 4.1 (Jelly Bean) - I thought
4.1 - Jelly Bean - had a fast SL mixer? How to get lower latency with
this then?
2012-12-08 18:10:08 +01:00
twinaphex 3a3953aef3 (Android) Add back PHOENIX_LEGACY hack because new Phoenix frontend
doesn't work yet for me
2012-12-08 12:58:16 +01:00
twinaphex ecc2376e6f (Phoenix Legacy) Adding back phoenix legacy for now 2012-12-08 12:37:00 +01:00
Themaister 4adf390486 Actually align samples to 8. 2012-12-05 23:17:07 +01:00
Themaister eba6cfa3eb Fix build for NEON. 2012-12-05 23:04:44 +01:00
Themaister 36c595335b NEON optimized s16->float->s16. 2012-12-05 22:45:29 +01:00
twinaphex 2c2328d8a0 (NEON) Change WANT_NEON define back to HAVE_NEON 2012-12-04 07:57:31 +01:00
twinaphex 6a7e03aadb (Android) Fix sound - don't fix samplerate at 44Khz 2012-12-03 03:21:10 +01:00
twinaphex 7403faa608 HAVE_NEON define seems to give problems - WANT_NEON seems to work
- so quick-fix hack for now
2012-12-03 00:20:21 +01:00
twinaphex 63cf9247f1 (Hermite) Add log 2012-12-02 23:53:08 +01:00
twinaphex 1c9dec56a8 (NEON/Android) Some fixes 2012-12-02 23:50:32 +01:00
Themaister 2b04e1ece6 Start adding NEON sinc. 2012-12-03 00:22:51 +01:00
Themaister 511995311f Fix very stupid SINC bug.
Note to self: Don't write code when you're
an emotional wreck.
2012-12-02 16:57:04 +01:00
Themaister 92616a66a7 Fix variable shadowing in hermite. 2012-12-02 10:51:28 +01:00
twinaphex a2b0f9afb6 (Android) Set audio_out rate to 44100 2012-12-02 09:09:33 +01:00
twinaphex 623822126a (Android) Set buffer count to 4 instead of 8 for Jelly Bean and
higher - test experimental lower latency for fast OpenSL mixer
2012-12-02 07:32:28 +01:00
Themaister 78d0edc4aa Don't use a crazy large phase LUT. 2012-11-29 17:27:21 +01:00
Themaister c1a00fac4d Improve ratio accuracy in SINC. 2012-11-29 11:49:57 +01:00
Themaister f2e02bde1e Guard against high frequency aliasing a bit. 2012-11-25 14:54:07 +01:00
Themaister ccd1449aa8 Fix hermite cracking when ratio < 1.0. 2012-11-25 12:32:24 +01:00
twinaphex aae3b10169 Move baked-in dependencies to 'deps' directory 2012-11-20 03:34:45 +01:00
twinaphex 1d99cb62a2 (Xbox 1) Build fixes - don't compile in pragma comments for
XBOX
2012-11-15 14:24:56 +01:00
Themaister 0e729bcaa0 Style nits. 2012-11-15 09:40:31 +01:00
OV2 54d39dff74 win32: make d3d9 compile in msvc, add linker pragmas to source files 2012-11-14 21:07:06 +01:00
Themaister 752b7608e7 Fix audio test. 2012-11-07 23:42:23 +01:00
Themaister 6421fe248b Optimize SINC resampler.
Trade memory for performance. Avoid using linear interpolation
between phases.
2012-11-07 23:27:31 +01:00
Themaister bebe0d78a7 Optimize sinc for AVX as well.
Disable it for now however, as it's slightly slower
than SSE1 for the few taps we're using.

From testing, it's 10-20% faster when number of taps are increased.
The AVX path might need some more tuning, but it's fair to
assume the algorithm is memory bound.
2012-11-06 18:52:09 +01:00
Themaister 330e724f34 Use vec_madd instead of vec_mul.
vec_mul was apparently a POWER7 instruction.
2012-11-06 09:26:28 +01:00
twinaphex 876bf69a80 (PS3) Hack around vec_mul not being supported for PS3 VMX/Altivec
for now
2012-11-06 03:33:00 +01:00
Themaister 61a5b42ee7 Purge some more fixed point cruft. 2012-11-03 23:03:57 +01:00
Themaister aaefdbf27e Remove lingering HAVE_FIXED_POINT define. 2012-11-03 23:02:27 +01:00
Themaister 91edc8ff49 Add volume control.
It imposes no performance loss as it is performed
during s16->float conversion.

It is however grouped together with check_mute.
2012-11-03 14:15:03 +01:00
twinaphex 34f5d0ceb6 Revert "(OpenSL/Android) Reduce latency by going from 8 to 6 buffers"
This reverts commit 26d6d18a02.
2012-11-01 21:08:04 +01:00
twinaphex 26d6d18a02 (OpenSL/Android) Reduce latency by going from 8 to 6 buffers 2012-11-01 20:21:07 +01:00
Themaister 50d6080af5 Print more sensible output for SNR. 2012-10-31 00:03:15 +01:00
Themaister ff9167f56b Remove obsolete fixed-point test. 2012-10-30 23:54:30 +01:00
twinaphex 670289839f (Android/OpenSL) Improved latency - still not good enough though 2012-10-30 17:33:33 +01:00
twinaphex fb25f31598 (Android/OpenSL) Bigger audio buffers - bigger latency/longer
delay in audio, but no audio breakup - also applied -O3 and -funroll-loops
for Android Makefile - seems to help
2012-10-30 05:25:14 +01:00
twinaphex 033e94acfd (Android) Force audio input control rate in OpenSL ES driver 2012-10-30 03:50:18 +01:00
twinaphex 492bbc7d78 (OpenSL) Fix derp 2012-10-30 00:48:16 +01:00
Themaister 16d67a43cd Add rate-control interfaces to SL. 2012-10-30 00:40:05 +01:00
Themaister d9a903b293 Revert "Might improve audio performance in SL."
This broke stuff.
2012-10-30 00:37:00 +01:00
Themaister 5812a5e445 Might improve audio performance in SL. 2012-10-30 00:20:32 +01:00
twinaphex 6e79dd6046 (OpenSL) Fixed fall-through in sl_init 2012-10-30 00:05:24 +01:00
twinaphex dccfb80010 (OpenSL) compiles now 2012-10-30 00:01:47 +01:00