Commit Graph

787 Commits

Author SHA1 Message Date
twinaphex
e57963a394 coreaudio_set_nonblock_state - check if pointer is non-NULL 2014-10-03 17:00:35 +02:00
aliaspider
81254c13d9 (PSP) add new resampler parameters to resampler_CC_init. 2014-10-02 20:54:46 +01:00
twinaphex
3a2f3755ad Rename some files 2014-10-01 23:27:52 +02:00
twinaphex
a35c61ec90 (Audio driver) Add 'alive' function callback 2014-10-01 21:42:19 +02:00
twinaphex
1a94f14e50 Move recording and resampler drivers to 'driver' global struct -
moving it outside of g_extern
2014-09-30 21:23:00 +02:00
twinaphex
d4fcdba6cd (Resampler) Start hooking up config code bit by bit 2014-09-26 17:05:24 +02:00
twinaphex
3e33697dc8 Update rarch_resampler typedef struct 2014-09-26 16:49:03 +02:00
twinaphex
73de119a84 (Resamplers) Add RESAMPLER_API_VERSION 2014-09-26 16:36:36 +02:00
twinaphex
72ea0f5b13 (Resamplers) Pass SIMD mask to resampler implementations 2014-09-26 16:13:10 +02:00
twinaphex
9abaa15873 (Resampler code) Cleanups 2014-09-26 15:50:24 +02:00
twinaphex
ce6c884724 Take out HAVE_CC_RESAMPLER define 2014-09-24 09:39:41 +02:00
twinaphex
3ad9cb5182 Make resampler code more export-friendly 2014-09-23 07:20:10 +02:00
twinaphex
75bc44fc8e Add some RARCH_INTERNAL checks to resampler code to make it
easier to export outside
2014-09-23 07:06:26 +02:00
aliaspider
40032aafb2 CC resampler: align internal buffer correctly. 2014-09-22 11:20:06 +01:00
aliaspider
7899dea89f add NEON optimizations for the CC resampler. 2014-09-22 08:28:24 +01:00
aliaspider
493a8aea2d fix resampler tests. 2014-09-17 19:07:40 +01:00
aliaspider
d1a785823d add a faster (approximated) version of the CC resampler using SSE
intrinsics
2014-09-17 19:06:53 +01:00
twinaphex
bd4f28af21 Move audio_frame_float typedef struct to resampler.h 2014-09-16 00:54:18 +02:00
twinaphex
8dc95da1ac (Nearest Resampler) C89 build fixes 2014-09-16 00:27:23 +02:00
twinaphex
07d86c7ac3 Create config_file_userdata.c 2014-09-15 21:25:40 +02:00
twinaphex
49f9f4b5fd (dspfilter.h) style/indent nits 2014-09-15 21:00:03 +02:00
twinaphex
d32f63b6ed (nearest.c) style nits 2014-09-13 01:48:33 +02:00
twinaphex
d4a4dd14bf Add 'nearest' resampler 2014-09-13 00:10:15 +02:00
twinaphex
75d2e13dcb Make drivers non-const 2014-09-11 07:06:20 +02:00
twinaphex
478fa43261 (Rsound) Build fix 2014-09-11 00:51:46 +02:00
twinaphex
4093aeeccf (Audio) Indenting/style nits 2014-09-09 22:24:29 +02:00
twinaphex
7e1764f095 (audio/utils.c) indenting nit 2014-09-09 22:07:22 +02:00
twinaphex
0d4cacfd9b (Resamplers) Identing/style nits 2014-09-09 22:06:18 +02:00
twinaphex
598421e7d7 Move resampler drivers to audio/resamplers 2014-09-09 21:54:41 +02:00
twinaphex
07ee234d5d (Audio) Set write_avail and buffer functions to NULL so far 2014-09-09 21:44:39 +02:00
twinaphex
8df3a51790 (Audio) Implement missing use_float function for audio drivers 2014-09-09 21:42:10 +02:00
twinaphex
c6c1fbbf0a Style nits 2014-09-09 05:56:12 +02:00
Lioncash
6b84ccdcef Make some functions static 2014-09-06 00:10:52 -04:00
Twinaphex
66427db631 Merge pull request #942 from lioncash/unused
Remove some unused variables.
2014-09-06 03:40:56 +02:00
Lioncash
ab1ab62a6d Fix some printf specifiers to the correct signed-ness 2014-09-05 19:43:32 -04:00
Lioncash
a7aa077cc6 Remove some unused variables. 2014-09-05 19:27:46 -04:00
Mike Robinson
addbcc6487 Fix buffer overflow in JACK audio driver
retroarch.c:flush_rewind_audio() can potentially send up to
audio_data.rewind_buf of 2048 frames (4096 samples) to audio_flush().

rarch_resampler_process() can potentially multiply the number of
frames by AUDIO_MAX_RATIO, to 32768 frames.

audio/jack.c:write_buffer() allocates a buffer of only 2048 frames on
the stack, which can overflow. This reliably happens when rewinding in
slow motion.

Multiply the JACK driver buffer by AUDIO_MAX_RATIO to prevent overflow.

However, DSP can also adjust the number of frames without limit. There
is no DSP_MAX_RATIO, so check the number of frames in
audio/jack.c:write_buffer() and truncate if they will not fit the
buffer. This will cause garbled audio, but in practice it is unlikely
to occur (DSP plugins do not usually add frames, flush_rewind_audio()
does not usually send the maximum possible number of frames).
2014-08-31 15:50:34 +01:00
twinaphex
b1871b54c3 (audio/dsp_filter.c/audio/sinc.c) Remove more extraneous elses 2014-08-27 03:31:19 +02:00
twinaphex
cec2afe6cb Get rid of some extraneous elses 2014-08-27 03:11:06 +02:00
twinaphex
5c2006c072 Remove extraneous elses 2014-08-27 02:06:39 +02:00
Higor Eurípedes
e88f3b4355 (SDL) Fix double initialization
Signed-off-by: Higor Eurípedes <heuripedes@gmail.com>
2014-08-19 16:55:32 -03:00
twinaphex
0bd97eb1ba (SoftFilter) Bump up API version - start supporting config files
(stub for now)
2014-08-19 17:05:47 +02:00
twinaphex
9203160abe Move xenon drivers to input/audio 2014-08-15 21:11:26 +02:00
twinaphex
4a17a7b832 (GX) Build fix 2014-08-15 21:08:56 +02:00
twinaphex
49e9e97f38 Refactor resampler.c 2014-08-15 18:17:44 +02:00
twinaphex
88af50ab82 Add null drivers 2014-08-14 03:05:44 +02:00
Higor Eurípedes
16e0d24e17 (SDL*) Properly initialize SDL library/subsystems 2014-08-11 19:47:30 -03:00
Higor Eurípedes
f53b67aab7 (SDL2) Use sdl_audio.c as audio driver 2014-08-10 19:54:49 -03:00
twinaphex
fbb0b57cae Use __ARM_NEON__ define instead of HAVE_NEON 2014-07-26 20:18:37 +02:00
Themaister
cae625e489 Copy def_audio_resampler, not def_audio. 2014-07-18 19:17:59 +02:00
twinaphex
dbf239f8d4 (Settings data) Add default audio resampler option 2014-07-18 19:11:53 +02:00
Themaister
d3ffe3292a Use correct resampler fallback. 2014-07-18 18:39:35 +02:00
twinaphex
df448d37da Make find_resampler_driver more robust 2014-07-18 18:23:19 +02:00
twinaphex
6f32841647 Rename g_extern.verbose to g_extern.verbosity to avoid
collisions on OSX
2014-07-18 00:39:31 +02:00
aliaspider
67fa60f81d (PSP) increase audio buffer size and chunk size. 2014-07-14 02:36:13 +01:00
aliaspider
ba7cefc529 (PSP) add BIG_STACK makefile option
fix overflow in VFPU resampler when input_frames is 0
add support for GU_PSM_5551 pixel format when using hardware rendering
2014-06-29 05:45:36 +01:00
twinaphex
9bfb76e7fb (PSP) Add initial version of PSP pthread wrapper - very incomplete right now 2014-06-29 01:05:13 +02:00
Themaister
89f052f5e5 Fix some Win32 build issues. 2014-06-17 17:52:00 +02:00
twinaphex
6fdefb4ab7 (Android) Build fix 2014-06-13 02:16:41 +02:00
twinaphex
ddf0dcb165 (Android) Build fixes/cleanups to frontend 2014-06-13 01:10:14 +02:00
twinaphex
2a32a397c9 (Xbox 1) Take out unnecessary audio DSP effect option 2014-06-11 00:55:14 +02:00
twinaphex
353bbb5f83 (GX) Make gx_audio.c and platform_gx.c more generic 2014-06-04 18:54:40 +02:00
twinaphex
9fc7db8db9 (GX) Make gx_audio.c more backwards/forwards compatible 2014-06-04 02:01:15 +02:00
twinaphex
9911aac09c Add performance.h header include in audio/dsp_filter.c 2014-06-01 22:12:57 +02:00
twinaphex
35716e981c Move alsa_qsa.c to audio/ 2014-06-01 16:12:36 +02:00
twinaphex
f36589cf11 Update some comments 2014-06-01 15:33:42 +02:00
Themaister
716adbb85a Fix lfo_ptr increment. 2014-06-01 14:35:12 +02:00
Themaister
cea2b160cd Add Chorus DSP. 2014-06-01 14:32:01 +02:00
Themaister
1d36ab8c49 Fix up some IIR presets. 2014-05-30 23:17:24 +02:00
Themaister
0ca79f964f Make dumping EQ filter coefficients a config option. 2014-05-30 19:04:40 +02:00
twinaphex
c3f19c13bf (GX) Audio driver - some cleanups 2014-05-30 00:24:09 +02:00
Themaister
49d47e1aaf Revert "Avoid buffer overflow in EQ."
Derp. It's already twice size.
2014-05-29 20:30:34 +02:00
Themaister
47f4486507 Avoid buffer overflow in EQ. 2014-05-29 20:08:59 +02:00
Themaister
87810fe9c6 Create a correct linear phase filter. 2014-05-29 10:35:09 +02:00
twinaphex
839c121ecd (Xbox 1) Add C++ ifdef __cplusplus extern "C" header guards 2014-05-28 21:45:58 +02:00
Themaister
bafae15635 Add missing EQ.dsp. 2014-05-28 18:07:03 +02:00
Themaister
748cd81ba8 Fix stale comment in eq.c. 2014-05-28 17:50:03 +02:00
Themaister
244b072ab8 Fix Android build. 2014-05-28 10:40:24 +02:00
Themaister
0c83bf7d0b Merge branch 'master' of github.com:libretro/RetroArch into eq-dsp
Conflicts:
	griffin/griffin.c
2014-05-28 10:38:04 +02:00
Themaister
7bf6554661 Add EQ to griffin. 2014-05-28 10:37:21 +02:00
Themaister
31249ab9da Some fixes to EQ. 2014-05-28 10:36:13 +02:00
twinaphex
152e022b5b (Android) Fix build 2014-05-28 04:15:52 +02:00
Themaister
902c92acfc Read config in EQ. 2014-05-28 00:30:03 +02:00
Themaister
95d1582f3c Equalizer works. 2014-05-28 00:07:14 +02:00
Themaister
b99b288980 Implement more of EQ. 2014-05-27 22:26:16 +02:00
Themaister
ce14f2f517 Begin implementing EQ. 2014-05-27 18:38:25 +02:00
Themaister
8f913e8e9b Add new FFT implementation.
To be used for EQ implementation.
2014-05-27 18:02:38 +02:00
Themaister
04522647ec Add some additional DSP presets. 2014-05-25 16:23:31 +02:00
Themaister
e9c3921050 Add EchoReverb dsp preset. 2014-05-25 16:13:16 +02:00
Themaister
92ef78242b Add reverb DSP. 2014-05-25 16:06:19 +02:00
Themaister
581c2e1d91 Add wahwah DSP. 2014-05-25 14:14:32 +02:00
Themaister
828552d111 Add phaser. 2014-05-25 13:54:46 +02:00
Themaister
33e3eee5ab Nit. 2014-05-23 09:53:27 +02:00
twinaphex
745a36508f (GX) Add missing gx_audio_use_float - set it to false 2014-05-22 23:51:30 +02:00
twinaphex
890b7f9bcf (OSX PPC) Fix Altivec errors 2014-05-22 23:46:41 +02:00
twinaphex
565ccf2ace (OSX PPC) CoreAudio should be compatible now with OSX 10.5 for PowerPC 2014-05-22 22:20:17 +02:00
twinaphex
166ee3785e (CoreAudio) Some OSX PPC build fixes 2014-05-22 22:11:14 +02:00
twinaphex
dd2d15c144 (Apple) Move iOS/OSX to separate dirs so that both ports can have their own
modules/ directory
2014-05-22 18:54:10 +02:00
Themaister
6ebd71f906 Use defaults for Echo. 2014-05-20 20:58:35 +02:00
Themaister
7351a228cc Add Echo DSP filter. 2014-05-20 17:04:57 +02:00
Themaister
0d370e828d Add the IIR filter types. 2014-05-20 15:43:05 +02:00
Themaister
d2161dfa50 Rewrite IIR DSP filter. 2014-05-20 15:19:22 +02:00
Themaister
7aaa0c254f Add builtin crap for DSP plugs. 2014-05-20 14:21:29 +02:00
Themaister
1b9bbbd381 Some Panning fixes. 2014-05-20 14:00:48 +02:00
Themaister
ead69172a2 Add new DSP plug "Panning". 2014-05-20 13:32:34 +02:00
Themaister
b498476531 Remove broken DSP plugs.
They will all have to be properly rewritten for new interface.
2014-05-20 12:38:01 +02:00
Themaister
79f4ed34ba Rename rarch_dsp.h. 2014-05-20 12:30:50 +02:00
Themaister
addba80c3b Rewrite DSP plugin interface. 2014-05-20 12:28:33 +02:00
twinaphex
d62164c4ae (BB10) Build fixes
(General) Fix some unused variable warnings
2014-05-17 22:16:25 +02:00
twinaphex
6bde636fac (Console) Move audio drivers to audio/ directory 2014-05-13 17:09:17 +02:00
twinaphex
b5d1e9aa83 (iOS) Take out forcibly hacking out all ARM ASM code for iOS port 2014-05-10 23:37:01 +02:00
twinaphex
e61401c101 (CC resampler) Add RARCH_INTERNAL check 2014-05-07 16:46:28 +02:00
twinaphex
7d3b436c2a (cc_resampler.c) Remove some unneeded header includes / make it more
backwards compatible
2014-05-07 00:42:59 +02:00
twinaphex
cb53d65fc3 Compile with HAVE_BUILTIN_FILTERS for Android - and some C90 build
fixes for filters. Note/FIXME: We need to get rid of the complex.h
dependency in the equalizer plugin
2014-05-03 04:59:35 +02:00
twinaphex
9f020f6786 (DSP Filters) echo.c - Teardown fix 2014-04-30 19:14:06 +02:00
twinaphex
2ea61d4e70 cleanup ident name for phaser.c 2014-04-29 23:11:23 +02:00
twinaphex
78a21f6d80 Use boolean.h for eq.c 2014-04-29 23:07:26 +02:00
twinaphex
b1c1eae907 Fix warnings re: redefining ALIGNED 2014-04-29 23:03:58 +02:00
twinaphex
8321506b39 (MSVC) Build fixes 2014-04-29 23:02:07 +02:00
twinaphex
1bf9a43db6 (DSP Filters) Add SIMD detection to DSP Filter API 2014-04-29 18:38:23 +02:00
twinaphex
669ebbabf6 (DSP filters) Bump up ABI of DSP Filter API to version 6 - make it
more like SoftFilters API
2014-04-29 18:24:49 +02:00
twinaphex
752099808d (DSP Filters) Move to pre-SSE2 version of echo filter - SSE2 optimizations could
come later when 'simd' toggling gets added to the spec
2014-04-29 17:03:12 +02:00
twinaphex
47f6cc40ba (DSP Filters) Cleanups 2014-04-29 16:32:08 +02:00
twinaphex
a716070cdc (Audio DSP) Add NULL entry to initializer lists for 'events' 2014-04-29 07:06:25 +02:00
twinaphex
40a1dc4eab (rarch_dsp.h) Typo fix 2014-04-28 06:28:20 +02:00
twinaphex
79f16c267e Add RARCH_INTERNAL ifdefs (for consoles/handhelds later on) 2014-04-28 05:59:24 +02:00
twinaphex
9d927ef827 (DSP Filters) Use the namespace 'rarch_dsp_*' for symbols 2014-04-28 05:49:19 +02:00
twinaphex
e763788857 (DSP Filters) Update names 2014-04-28 05:41:06 +02:00
twinaphex
7f9ea6052e Update audio/filters/link.T 2014-04-28 05:38:30 +02:00
twinaphex
45010add45 (Audio DSP) Add audio DSP filters to audio/filters directory -
C convresions of original RetroArch-Audio-DSP-Plugins
2014-04-28 05:33:07 +02:00
twinaphex
4968eafddf Put sinc resampler upfront in struct table - rename cc resampler
back to original name
2014-04-20 06:26:48 +02:00
twinaphex
4942306fff Add HAVE_CC_RESAMPLER to nearly all targets 2014-04-20 04:17:18 +02:00
twinaphex
fd215a1d27 (iOS) Build fix - don't compile in ARM NEON code in the meantime
until assembly files are fixed to assemble with LLVM/Clang
2014-04-17 23:04:40 +02:00
twinaphex
63b942b301 Ifdef out unsupported .arm line (also - LLVM/Clang assembler does
not seem to like float literals at all. Please try to change these
into something else)
2014-04-17 22:56:28 +02:00
Themaister
24906b8869 Add resampler tests for CC resampler. 2014-03-23 14:27:31 +01:00
Themaister
1d32b3080d Remove some old RSound cruft. 2014-03-23 14:16:55 +01:00
Themaister
4d9ff7d147 Stylistic cleanups in CC resampler. 2014-03-23 14:14:42 +01:00
aliaspider
dc95cf4c82 (PSP) add a C reference implementation of the VFPU audio resampler.
asm version still lacks some improvements found in the C version.
2014-03-19 20:52:15 +01:00
aliaspider
035e9b0919 (PSP) add an audio resampler using VFPU/allegrex assembly 2014-03-14 16:53:04 +01:00
aliaspider
dc3405bbb4 (PSP) add allegrex VFPU optimized s16 <-> float conversions. 2014-03-14 15:12:47 +01:00
Themaister
a098129a9b Fix Android build.
No idea how it built before (?!)
2014-03-02 14:17:26 +01:00
Themaister
d98af82baf Honor ident param. 2014-02-25 09:56:39 +01:00
Themaister
b782778edf Forgot that FFmpeg also uses resampler. 2014-02-25 09:51:24 +01:00
Themaister
cd597dc247 Make resampler "driver" hook code consistent with rest. 2014-02-25 09:39:48 +01:00
twinaphex
69267a8fa2 (Resampler) Change 'OSK' to 'Resampler' 2014-02-25 03:27:17 +01:00
twinaphex
4b1438e4b2 (Menu) Add audio resampler selection to 'Drivers' section 2014-02-25 03:23:50 +01:00
twinaphex
7452a48864 Add back resampler selection code 2014-02-25 02:55:25 +01:00
Themaister
190db263b0 [ALSA] Try to fallback on get_buffer_size.
Apparently some driver returns error here.
2014-02-22 15:31:23 +01:00
twinaphex
ff94787d86 (PPC Altivec) turn vec_splats into vec_splat - PPC OSX (Leopard) doesn't
support vec_splats intrinsic
2014-02-11 18:32:18 +11:00
Themaister
57e48f7ee2 Rewrite threaded audio a bit.
Avoid calling stop() right after init.
Driver init/teardown now happens only in audio thread.
2014-01-26 13:08:51 +01:00
Themaister
8c9e1a5f5c Fix some unused function warnings.
Clang 3.4 is more aggressive on this.
2014-01-22 16:39:39 +01:00
twinaphex
0a15a17d44 Update years on all license headers 2014-01-01 01:50:59 +01:00
twinaphex
c71a688d18 (ARM NEON ASM) Ifdef sinc_neon.S / utils_neon.S with __ARM_NEON__
and/or HAVE_NEON
2013-12-30 20:22:31 +01:00
twinaphex
c80e4c4315 (iOS) Linker requires that ASM function names are prefixed with '_' -
verified it still builds on Android
2013-12-30 17:53:13 +01:00
Themaister
92753e8b8a Add volume control to NEON ASM. 2013-12-29 12:59:57 +01:00
twinaphex
4ba46df0ef (Android) Build fix 2013-12-19 03:45:17 +01:00
twinaphex
ec5153ab57 (Android) Build fix 2013-12-17 20:56:31 +01:00
twinaphex
38d785984f Add RETRO_ENVIRONMENT_GET_PERF_INTERFACE to libretro.h 2013-12-17 19:10:40 +01:00
twinaphex
d417669d48 (GX) Compile in HAVE_RSOUND for both Wii and NGC 2013-11-11 11:14:55 +01:00
Lioncash
db2a619a90 Shrink another struct. This shrinks audio_lock from 32 bytes to 24 bytes. 2013-11-04 00:10:22 -05:00
Lioncash
fac2783a09 Optimize some struct sizes.
This is the list of reduced sizes:

file: dsound.c         - struct dsound_t reduced from 56 bytes to 52 bytes.
file: shader_parse.h   - struct gfx_fbo_scale reduced from 32 bytes to 28 bytes.
file: thread_wrapper.c - struct texture reduced from 28 bytes to 24 bytes.
file: libretro.h       - struct retro_hw_render_callback reduced from 40 bytes to 36 bytes.
file: movie.c          - struct bsv_movie reduced from 36 bytes to 32 bytes.
file: netplay.c        - struct delta_frame reduced from 16 bytes to 12 bytes.
file: performance.h    - struct rarch_perf_counter_t reduced from 40 bytes to 32 bytes.
2013-11-03 23:57:41 -05:00
Themaister
83cdd0f250 Remove sthread_exit(). Fix detach. 2013-11-01 09:12:36 +01:00
twinaphex
e4c1ebf344 Expand thread.c - replace pthread with thread.c wrappers 2013-11-01 04:49:29 +01:00
twinaphex
93c1bae991 (Librsound) Update comment in rsnd_get_time_usec 2013-11-01 00:13:17 +01:00
twinaphex
a8696e2506 (RSound) Bake in rsound for Android port - should also be possible
to bake it in by default for PC now - made librsound.c crossplatform
2013-11-01 00:07:52 +01:00
Themaister
7aa8b40759 Fixup C89 for loops. 2013-10-22 21:37:56 +02:00
twinaphex
d2c87e3039 Convert most C99-style for loop initial declarations to C89-compliant
ones
2013-10-22 15:08:17 +02:00
twinaphex
8487cd0204 Start using C89-style for loop initial declarations for
reusable code module parts that we reuse in other projects. It's
a huge maintenance burden having to change this stuff around everytime
when compiling in non-C99 mode
2013-10-19 19:39:38 +02:00
Alcaro
c8f28f25d7 Fix typo 2013-09-28 22:39:03 +02:00
meancoot
c9d968fa79 (iOS, CoreAudio) Don't deadlock in coreaudio_write if the audio session is interrupted. 2013-09-25 11:56:02 -04:00
Themaister
38ec55573c Rework SET_AUDIO_CALLBACK.
When disabling audio and/or muting, the core has no way
of knowing this, causing potential issues in a threaded mixer.

This environ is not used by any public core to my knowledge so the old
API has been removed and replaced with a change to environment number
(20 -> 22).
2013-09-14 17:28:09 +02:00
Hans-Kristian Arntzen
7d90ff4011 Merge pull request #303 from libretro/emscripten
Emscripten/Javascript port
2013-09-11 01:01:29 -07:00
ToadKing
a09dda3a9d [EMSCRIPTEN] add custom input driver, removes SDL dependency + adds mouse support 2013-09-10 20:21:48 -04:00
meancoot
081e526bf9 (OSX) Support video_monitor_index and audio_device settings 2013-09-07 21:30:58 -04:00
Themaister
73cb566620 "Revert" audio buffer behavior on Android.
Add audio_block_frames setting (only used by OpenSL atm).
2013-08-24 12:04:47 +02:00
twinaphex
d13542f12b (Android) Detects buffer size properly now on Android 4.2 and up -
bases requested latency on this. Old fallback applies for non-4.2
2013-08-24 05:10:14 +02:00
Themaister
16ca310f93 Add high latency audio support for Android.
Should fix ghetto hardware again.
2013-08-12 20:13:06 +02:00
Themaister
4bf3d47be1 Use GCC atomics to avoid locking in callback. 2013-08-11 01:08:19 +02:00
Themaister
a543b5da74 Fix threaded audio race conditions. 2013-08-11 01:07:59 +02:00
Themaister
bb0993b6eb Fix Android build. 2013-08-11 01:07:30 +02:00
Themaister
6a82db13d5 Fixups for frame time callback. 2013-08-11 01:05:33 +02:00
Themaister
f4a23115c2 Begin adding AUDIO_CALLBACK/FRAME_TIME_CALLBACK. 2013-08-11 01:05:33 +02:00
Themaister
510ed100e8 Use GCC atomics to avoid locking in callback.
Conflicts:
	audio/opensl.c
2013-07-17 22:47:34 +02:00
Themaister
54cc4ee469 Fixes and tweaks for OpenSL. 2013-07-17 22:46:38 +02:00
twinaphex
4e390c0dd1 Add librsound_orig.c for targets other than PS3 2013-07-08 00:38:03 +02:00
twinaphex
6d1e9dcaff Change asoundlib.h include to <alsa/asoundlib.h> 2013-07-07 19:26:03 +02:00
twinaphex
75cce7fb4d (Pandora) Add static preliminary Makefile for Pandora
(Alsathread) Name functions uniquely vs. alsa to resolve
symbol namespace conflicts when compiling with Griffin
2013-07-07 19:22:54 +02:00
twinaphex
3a0cc21d7a QNX ALSA is too different from regular mainline ALSA - QNX ALSA driver
will be separate from main ALSA driver
2013-06-20 10:13:45 +02:00
twinaphex
8bb8b3aea3 (Blackberry/ALSA) Start work on Blackberry ALSA support 2013-06-19 12:53:19 +02:00
Themaister
347fdaadce Fix ALSA error when unpause on driver reinit. 2013-06-05 20:51:57 +02:00
Themaister
e215033edd Fix CXX_BUILD. 2013-06-05 10:47:19 +02:00
Themaister
973f35339c Add pausing to ALSA.
Also use snd_pcm_avail() instead of avail_update()
for more accuracy (helps dynamic rate control).
2013-06-05 02:12:34 +02:00
Themaister
8d716f4ca1 Fixup log message in pulse. 2013-06-02 23:57:43 +02:00
Themaister
0aa157a5b9 Handle when pulse spuriously changes buffer size. 2013-06-02 23:43:04 +02:00
Themaister
74f3e8e11c Pause audio when going into RGUI. 2013-06-02 23:10:03 +02:00
Themaister
de01d42cd8 Fixups in pulse.
Add proper pause/unpause, and improve pa_write().
2013-06-02 22:57:44 +02:00
Themaister
4dd117b5ab Use correct buffer size in Pulse. 2013-05-27 00:56:41 +02:00
meancoot
c15463ad7c (iOS) Various:
Fix symbol conflict for audio_cb in CoreAudio driver and dummy lib
   Don't show a frame from the last loaded game when loading a new one
   Fix settings not being refreshed after a failed game load
   Fix issue that could cause the display time of the native pause button to be cut short
2013-04-18 20:39:43 -04:00
twinaphex
250b52c130 (RARCH_CONSOLE) Build fix for now - dummy loading sidestepped
for now until solution arrives
2013-04-14 17:15:57 +02:00
twinaphex
06d3fd16ae Simplify resampler.c 2013-04-07 18:38:21 +02:00
twinaphex
4102d1cfb8 Make sinc resampler the default and remove Hermite - audio
quality at high samplerates was too bad to be of any use
2013-04-07 03:41:06 +02:00
Themaister
913aeabe47 Use more compatible .globl symbols in NEON ASM. 2013-03-27 00:38:11 +01:00
twinaphex
3bc487be87 Merge branch 'ios' of git://github.com/meancoot/RetroArch 2013-03-15 20:05:15 +01:00
Themaister
9fd1f7edad Fix audio test build on Windows. 2013-03-12 12:23:28 +01:00
meancoot
9fadca2a54 Merge branch 'master' of https://github.com/Themaister/RetroArch into ios 2013-03-09 20:09:32 -05:00
Themaister
1e44407bd8 Bump SINC_HIGHEST BW to 0.962. 2013-03-09 13:28:40 +01:00
meancoot
e8e822ffc3 Merge branch 'master' of https://github.com/Themaister/RetroArch into ios
Conflicts:
	gfx/gfx_context.c
	gfx/gfx_context.h
	retroarch.c
2013-03-03 21:36:47 -05:00
Themaister
3ed3217270 Seed rand(). 2013-03-03 12:39:11 +01:00
Themaister
f11ccfc108 Add simple script to generate rate control tests. 2013-03-01 17:05:13 +01:00
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
Themaister
1554f8ce2d Rewrite OpenSL driver (untested).
Use openal-soft-android as a starting point.
2012-10-29 23:55:36 +01:00
Themaister
c92f1e8281 Do not fail in OSS if write() returns 0. 2012-10-23 22:27:15 +02:00
twinaphex
497f4dfb31 (OpenSL ES) Add workaround for OutputMix - setting volume not working
with Android OSL ES implementation - seems to fail at init now though
2012-10-18 08:03:21 +02:00
twinaphex
943ee288e1 (OpenSL ES) memset pcmData to 0 at init 2012-10-18 07:51:57 +02:00
twinaphex
26fcdae48b (OpenSL ES) Small nits 2012-10-18 07:33:45 +02:00
twinaphex
161afd98dc (OpenSL ES) OpenSL init seems to work now despite OutputMix interface
apparently being unsupported on Android. Included note for workaround.
2012-10-18 07:28:56 +02:00
twinaphex
6bf7c3cb06 Update credits for collaborated files 2012-10-18 06:06:55 +02:00
twinaphex
63238d3b67 (OpenSL) Add preliminary driver - OpenSL ES implementation in NDK
is a half-baked, half-implemented hackfest, so will have to go over
Android-specific examples to get this to work
2012-10-18 05:46:09 +02:00
Themaister
be7a63932f Remove output_rate from DSP plug. 2012-10-16 12:54:58 +02:00
Themaister
d027287d71 Leave some notes about downsampling. 2012-10-16 12:54:58 +02:00
Themaister
a22193d83d Fix potential crash in hermite as well. 2012-10-15 23:13:51 +02:00
Themaister
34713f40d1 Fix spurious segfaults when ratio dips below 1. 2012-10-15 22:53:05 +02:00
twinaphex
174c7d9d98 (RARCH_CONSOLE) g_console struct removed now - console settings
now a part of g_extern and also compiled in for PC - will use
this for RMenu
2012-10-15 06:25:12 +02:00
Themaister
11b9f039b2 Remove some useless ifdefs. 2012-10-14 23:22:16 +02:00
Themaister
b8abf34785 Purge some now useless code.
Removes manual input rate adjustments.
Don't allow DSP plugs to resample as it would complicate things alot
with dynamic rate control.
Also purges optional ssnes_* symbols for external plugs.
2012-10-13 20:22:45 +02:00
Themaister
254e711e2d Comment out spammy error message. 2012-09-25 13:33:11 +02:00
Themaister
c472688663 Do not segfault when snd_pcm_avail_update() fails. 2012-09-24 16:40:51 +02:00
Themaister
d4712d97c9 Fixup error checking in ALSA. 2012-09-14 21:41:58 +02:00
Themaister
82d726f6dd Add some diagnostics for ALSA. 2012-09-10 21:25:03 +02:00
Themaister
6a169513c9 Allow ~/ to be used in config for regular paths on *nix. 2012-09-07 22:20:49 +02:00
Themaister
29a1e7ac27 Purge some still lingering SSNES-isms. 2012-09-07 21:56:26 +02:00
twinaphex
eca2c09fdd (Xbox 1 RMenu) Add sound volume level setting 2012-08-22 16:59:12 +02:00
Themaister
2234073c2f Readding static to globals in dsound. 2012-08-17 23:20:08 +02:00
twinaphex
6a08c92ada (Xbox 1) Cut down on some static variables 2012-08-17 17:45:14 +02:00
Themaister
bfdb1615b5 Style nitting. 2012-07-25 04:50:46 +02:00
freakdave
64378ea072 (Xbox 1) Fixed low volume issue 2012-07-19 16:53:24 +02:00
twinaphex
c676341404 (Xbox 1) DirectSound works 2012-07-08 19:30:19 +03:00
Themaister
45481634f2 Add tests for fixed point sinc. 2012-07-06 17:04:54 +01:00
Themaister
7b12182a0f Add optional fixed point resampler. 2012-07-06 17:36:37 +02:00
TwinAphex51224
e4e7216b90 Revert rarch_stdint.h references 2012-06-24 21:55:36 +02:00
TwinAphex51224
d5bb5fd7af (Xbox 1)) Changes 2012-06-24 21:25:11 +02:00
Themaister
e5b3a61f9f Replace use of unsafe strtok() with strtok_r.
Implement compatibility for strtok_r() on Win32.
2012-06-24 02:37:19 +02:00
Themaister
acda9dea35 Forgot to commit null drivers ... 2012-06-20 00:44:40 +02:00
Themaister
2b712f5f46 Avoid ifdef. 2012-05-22 15:34:53 +02:00
Themaister
4debf60bad Do not output FFT sanity test to stdout. 2012-05-08 13:02:29 +02:00
Themaister
bc604f5029 Output SNR results to CSV. 2012-05-08 12:55:12 +02:00
Themaister
3878e81ce4 Improve SNR measurement. 2012-05-08 12:14:03 +02:00
Themaister
6b6e1556f6 Clean up ALSA plug a bit. 2012-04-25 19:49:56 +02:00
Themaister
b95b101a37 Add compat to external APIs. 2012-04-21 23:36:55 +02:00
Themaister
ce740f8948 More fixups. 2012-04-21 23:31:57 +02:00
Themaister
aab8fb6151 ssnes_* => rarch_*. 2012-04-21 23:25:32 +02:00