Commit Graph

563 Commits

Author SHA1 Message Date
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