src/audio


Log

Author Commit Date CI Message
Philipp Wiesemann 7738bd9b 2015-06-04T17:52:51 AIX: Fixed nearly impossible file descriptor leak.
Sam Lantinga 2c4a6ea0 2015-05-26T06:27:46 Updated the copyright year to 2015
Ryan C. Gordon b72938c8 2015-04-20T12:22:44 Windows: Always set the system timer resolution to 1ms by default. An existing hint lets apps that don't need the timer resolution changed avoid this, to save battery, etc, but this fixes several problems in timing, audio callbacks not firing fast enough, etc. Fixes Bugzilla #2944.
Alex Szpakowski fe6c797c 2015-04-10T23:30:31 Fixed an iOS view orientation issue when SDL_GL_CreateContext or SDL_CreateRenderer is called.
Ryan C. Gordon 878c2324 2015-03-24T02:13:25 winmm: Let audio callback buffer size be less than 1/4 second (thanks, Jon!). Maybe this was here for Win9x? There's no reason to insert this much latency by default. Fixes Bugzilla #2835.
Philipp Wiesemann 528e48b9 2015-03-23T20:24:04 Android: Removed not needed include statement.
Ryan C. Gordon 182a7768 2015-03-20T11:11:44 Audio hotplug fixes for winmm and XAudio2 backends.
Ryan C. Gordon 6c072917 2015-03-19T23:54:35 Patched to compile on gcc2.
Ryan C. Gordon 06e85acd 2015-03-19T23:45:34 Removed unused variable.
Ryan C. Gordon b24ff446 2015-03-19T23:44:47 Make static analysis happy.
Ryan C. Gordon 277e07e7 2015-03-19T23:39:53 Fixed a compiler warning on Visual Studio.
Ryan C. Gordon 1877f574 2015-03-19T23:35:43 Patched to compile on Windows.
Ryan C. Gordon 537b68b9 2015-03-19T22:11:20 Zero out the audio hotplug event structure, so the "padded" fields are sane. Just in case we ever need those bits in the future.
Ryan C. Gordon cafd030b 2015-03-19T22:08:12 PulseAudio: Hotplug support!
Ryan C. Gordon 11cffe1d 2015-03-19T15:43:00 SDL_RemoveAudioDevice() should specify capture vs output. This lets us reuse values between the two categories without conflicting, etc.
Ryan C. Gordon 1e78ef21 2015-03-19T13:34:17 Removed the broken audio streaming code, other small cleanups.
Ryan C. Gordon 5cbb32ef 2015-03-19T13:27:10 Disconnected/broken/lost audio devices now continue to fire their callback. The data produced by the callback is just thrown away and the audio thread delays as if it's waiting for the hardware to drain. This lets apps that rely on their audio callback firing regularly continue to make progress to function as properly as possible in the face of disaster. Apps that want to know that the device is really gone and deal with that scenario can use the new hotplug functionality.
Ryan C. Gordon 75973f81 2015-03-19T13:15:28 Don't assert if an audio backend reports the same device disconnected twice.
Ryan C. Gordon 7c4b88f2 2015-03-18T10:29:04 PulseAudio: Improved multidevice support. Added capture device enumeration, report human-readable device name, other cleanups.
Ryan C. Gordon 338bf5d2 2015-03-18T10:09:39 Changed some SDL_memset() calls to SDL_zero().
Ryan C. Gordon 97ff10c6 2015-03-18T10:09:23 Tweaked a couple comments, added some FIXMEs.
Ryan C. Gordon 43674503 2015-03-18T10:05:36 Patched to compile on C89 compilers.
Ryan C. Gordon 9a83151e 2015-03-18T09:59:22 PulseAudio: Added multiple device support, other cleanups. Thanks to Dominik Frizel for most of the effort on this! Fixes Bugzilla #2730.
Ryan C. Gordon f9cfd9fa 2015-03-18T02:01:17 Bunch of reworking to how we manage audio devices. Device enumeration now happens at startup and then is managed exclusively through hotplugging instead of full redetection. The device name list now has a unique "handle" associated with each item and SDL will pass this to the backend so they don't have to figure out how a human readable name maps to real hardware for a second time. Other cleanups, fixes, improvements, plus all the audio backends updated to the new interface...largely untested at this point, though.
Ryan C. Gordon 0e02ce08 2015-03-16T02:11:39 Initial work on audio device hotplug support. This fills in the core pieces and fully implements it for Mac OS X. Most other platforms, at the moment, will report a disconnected device if it fails to write audio, but don't notice if the system's device list changed at all.
Ryan C. Gordon 809b7be2 2015-03-13T12:20:17 Cleaning out a silly coding style I used to use. Changed all the "return (x);" lines to "return x;"
Ryan C. Gordon 3a532588 2015-03-13T00:48:30 Removed an unnecessary #ifdef.
Philipp Wiesemann 6abd242b 2015-02-14T00:16:27 Emscripten: Fixed throwing JavaScript exception if no audio context available. Handling the error in C provides the possibility to just continue without audio.
Edward Rudd b88ca1b4 2015-02-10T16:28:56 the last parameter of XChangeProperty is the number of elements.. and when the element format is 32.. the element is "long" so we have 5 long elements here. Yes this seems confusing as on mac+linux Long is either 32 or 64bits depending on the architecture, but this is how the X11 protocol is defined. Thus 5 is the correct value for the nelts here. Not 5 or 10 depending on the architecture. More info on the confusion https://bugs.freedesktop.org/show_bug.cgi?id=16802
Philipp Wiesemann 60329e6a 2015-02-03T21:22:25 Added missing guards.
Philipp Wiesemann 86f87bf7 2015-01-31T22:45:54 Added missing guards in implementation for PSP. Thanks to Martin Gerhardy for pointing this out.
Philipp Wiesemann d036ad84 2015-01-31T22:43:05 Added missing include statements in implementation for PSP. SDL_internal.h should be included to support dynamic API and fix warnings.
Philipp Wiesemann 7384f147 2015-01-31T10:33:48 Fixed names in implementation for PSP.
Philipp Wiesemann b48e54aa 2015-01-26T22:00:29 Fixed bug 2802 - [patch] Fix android build compiling in wrong filesystem implementation Jonas Kulla The configure script didn't differentiate between Linux and Android, unconditionally compiling in the unix implementation of SDL_sysfilesystem.c. I'm probably one of the very few people building SDL for android using classic configure + standalone toolchain, so this has gone undetected all along.
Philipp Wiesemann 79b3221b 2014-12-25T22:03:07 Fixed compile warnings about unused variables. Found by buildbot.
Ryan C. Gordon fe40a172 2014-12-18T00:19:52 Initial merge of Emscripten port! With this commit, you can compile SDL2 with Emscripten ( http://emscripten.org/ ), and make your SDL-based C/C++ program into a web app. This port was due to the efforts of several people, including: Charlie Birks, Sathyanarayanan Gunasekaran, Jukka Jyl?nki, Alon Zakai, Edward Rudd, Bruce Mitchener, and Martin Gerhardy. (Thanks, everyone!)
David Ludwig 70438be2 2014-12-03T10:55:23 WinRT: fixed bug whereby SDL would override an app's default orientation WinRT apps can set a default, preferred orientation via a .appxmanifest file. SDL was overriding this on app startup, and making the app use all possible orientations (landscape and portrait). Thanks to Eric Wing for the heads up on this!
Philipp Wiesemann 9c398852 2014-11-22T22:20:40 Corrected header file documentation comment.
Gabriel Jacobo 47658057 2014-09-18T11:03:34 [Android] Better fix for #2480, pause/resume audio
Gabriel Jacobo 4544343b 2014-09-17T11:41:12 [Android] Fixes #2480, music does not pause when process backgrounded This modifies SDL_PauseAudio behavior to pause all audio devices instead of just the default one (required on Android, at least for testmultiaudio on my Nexus 4 which reported 2 audio devices). It also changes SDL_PauseAudioDevice to retain the device lock from pause until resume in order to save battery in mobile devices.
Pierre-Loup A. Griffais 24c86b55 2014-09-11T19:24:42 [X11] Reconcile logical keyboard state with physical state on FocusIn since the window system doesn't do it for us like other platforms. This prevents sticky keys and missed keys when going in and out of focus, for example Alt would appear to stick if switching away from an SDL app with Alt-Tab and had to be pressed again. CR: Sam
Philipp Wiesemann a9d4a6b8 2014-08-11T23:18:35 Fixed typo in source comment.
Ryan C. Gordon c0f9a57f 2014-07-30T14:12:54 Fixed comment typo.
Ryan C. Gordon c5b21ea6 2014-07-30T11:11:48 SDL_GetQueuedAudioSize() shouldn't grab lock when not set up for queueing.
Ryan C. Gordon e5d49c20 2014-07-30T11:08:31 Added a GetPendingBytes method to the audio backend. This will (eventually) make SDL_GetQueuedAudioSize() more accurate, and thus reduce latency. Right now this isn't implemented anywhere, so we assume data fed to the audio callback is consumed by the hardware and immediately played to completion.
Ryan C. Gordon db1dd756 2014-07-30T09:54:01 XAudio2: Use XAUDIO2_VOICE_NOSAMPLESPLAYED when possible. For versions of XAudio2 with an IXAudio2SourceVoice::GetState() that offers a flags parameter, we can use XAUDIO2_VOICE_NOSAMPLESPLAYED, since we don't need this information in our current calls. According to MSDN, this makes the the call about 3x faster.
Ryan C. Gordon 987c3355 2014-07-22T23:12:21 Clarifying hard-to-understand piece of code.
Ryan C. Gordon f30e120a 2014-07-22T21:41:49 Added audio device buffer queueing API.
Sam Lantinga 19d878d7 2014-07-08T00:42:14 Skip JUNK chunks in wave files
Sam Lantinga 73cb234b 2014-07-07T10:38:10 Fixed compiler warning on Mac OS X
Sam Lantinga 1ee96bb9 2014-07-07T10:26:28 Fixed mingw64 build and warnings
Sam Lantinga b79e7f32 2014-07-03T15:39:55 Split the XInput and DirectInput code so Windows RT can use the existing XInput support.
Sam Lantinga cbafb158 2014-06-24T01:38:21 Fixed bug 2467 - bad memcpy in SDL_OpenAudio/open_audio_device/prepare_audiospec chain Rainer Deyke If 'SDL_OpenAudio' is called with 'obtained == NULL', 'prepare_audiospec' performs a bad 'memcpy' with the destination and source pointing to the same block of memory. The problem appears to be on in 'SDL_OpenAudio', which calls open_audio_device with 'obtained = desired' when 'obtained == NULL'. 'open_audio_device' cannot deal with 'desired' and 'obtained' pointing to the same block of memory but can deal with 'obtained == NULL'
Sam Lantinga 9f5e3ed7 2014-06-22T10:05:59 Fixed bug 1673 - BEXT wave files only have extra metadata that you can easily skip through bill In SDL_wave.c, BEXT wave files with "bext" instead of "fmt " are choked on if (chunk.magic != FMT) { SDL_SetError("Complex WAVE files not supported"); was_error = 1; goto done; } BEXT files http://en.wikipedia.org/wiki/Broadcast_Wave_Format actually playback the same as regular waves. All they have is (A LOT OF) extra header info. To open them, just SKIP the "bext" chunk, and the "fmt " chunk will be a couple of hundred bytes later. The "fmt " chunk is also bloated, but if you skip past the extra information to the "data" chunk, there is nothing different about a BEXT wave file than a "normal" one. You can then load the data and proceed as normal.
Sam Clegg 7e52722d 2014-06-20T11:10:16 Fix compiler warnings in Native Client and Linux builds.
Sam Lantinga 2a082c07 2014-06-15T17:26:30 Fixed bug 2580 - sndio backend improvements Brad Smith Attached is patch from the OpenBSD ports tree to add 24-bit support to the sndio backend and to make use of the sio_open() option SIO_DEVANY.
Ryan C. Gordon 8719a765 2014-06-10T19:39:33 Regenerated SDL_audiotypecvt.c with updated perl script.
Ryan C. Gordon 91b7fb00 2014-06-10T19:37:59 Fix audio resampling in some cases. Fixes Bugzilla #2389.
Gabriel Jacobo efa2d058 2014-06-08T18:18:13 Fixes audio for Native Client, and other fixes... - SDL_NaClMount, SDL_NaClUmount - Default mounting of https at / in SDL's main function - More documentation in README-nacl.txt
Gabriel Jacobo 1e352d79 2014-06-06T15:45:59 Chrome's Native Client backend implementation
Brandon Schaefer 1f716769 2014-06-05T15:29:23 Fix warnings, only major one being an SDL_SetError not providing enough arguments.
Sam Lantinga da6d9a9f 2014-06-04T10:56:56 Added annotations to help code analysis tools CR: Bruce Dawson
Dimitris Zenios 548a0ee7 2014-05-05T22:21:26 __ANDROID__ is the correct macro to check for an android system.ANDROID is only defined in NDK build system (.mk) and not in the standalone NDK.
David Ludwig 3dcb451f 2014-04-09T21:29:19 Added a README file regarding WinRT support To note, this file is currently formatted with CRLF line endings, rather than LF, to allow the file to be viewed with Notepad.
Ryan C. Gordon ba4b3aa9 2014-03-20T18:00:41 Patched to compile on C89 compilers, removed more streamer code.
Ryan C. Gordon 6d6fba4b 2014-03-20T17:00:33 #ifdef'd out the audio streamer code. It's been hardcoded out forever now, but I've now forcibly removed it with the preprocessor so static analysis doesn't complain about it for now. Eventually I want to rewrite or remove this code.
Ryan C. Gordon a43dbfad 2014-03-20T16:56:37 Static analysis fix: Removed unused variable. (We don't care if closing the device fails anyhow).
Sam Lantinga f9a58968 2014-03-13T21:21:26 Added missing copyright notices
Sam Lantinga 1fe7b27a 2014-03-09T12:27:31 Fixed 64-bit warnings
Sam Lantinga 1367bf87 2014-03-09T11:36:47 Integrated David Ludwig's support for Windows RT
Sam Lantinga 05c23063 2014-03-09T11:06:11 Fixed line endings on WinRT source code
James Legg d3cf7360 2014-02-21T13:57:53 Fix audio conversion when channel count changes - Use the SDL_AUDIO_MASK_DATATYPE bit when selecting an implementation where it matters. Previously two existing AUDIO_F32 cases had been written, but were unreachable. - Add AUDIO_F32 case for SDL_ConvertSurround_4. - Fix incorrect pointer arithmetic causing the 2 to 6 channel conversion for 4 byte audio formats to read and write beyond the end of the buffer.
Sam Lantinga 58edac3e 2014-02-02T00:53:27 Fixed bug 2374 - Update copyright for 2014... Is it that time already??
Ryan C. Gordon 090327e7 2013-12-09T16:03:18 Implemented the Dynamic API magic.
Gabriel Jacobo f848adff 2013-11-29T10:06:08 Improve Android pause/resume behavior.
David Ludwig 46740a5a 2013-11-28T22:09:21 WinRT: merged with latest SDL 2.x/HG code SDL 2.x recently accepted patches to enable OpenGL ES 2 support via Google's ANGLE library. The thought is to try to eventually merge SDL/WinRT's OpenGL code with SDL-official's.
Ryan C. Gordon 7e1289af 2013-11-24T23:56:17 Make internal SDL sources include SDL_internal.h instead of SDL_config.h The new header will include SDL_config.h, but allows for other global stuff.
Ryan C. Gordon 00003e8c 2013-11-14T11:51:24 Renamed things named after BeOS to be named after Haiku instead.
Ryan C. Gordon dd325b97 2013-11-14T01:00:08 Patched to compile on Haiku.
Ryan C. Gordon 7550ddcc 2013-11-13T22:35:26 Started BeOS removal: merged BeOS thread and pthread code. Haiku uses most of the standard pthread API, with a few #ifdefs where we still need to fallback onto the old BeOS APIs. BeOS, however, does not support pthreads (or maybe doesn't support it well), so I'm unplugging support for the platform with this changeset. Be Inc went out of business in 2001.
Sam Lantinga 24731317 2013-11-09T01:15:17 Updated notes about building with the Windows 8 SDK: Get the DirectX SDK.
Sam Lantinga 517886a7 2013-11-03T11:13:06 Fixed bug 2205 - SDL_GetAudioDeviceName returns default-device name on invalid index for default-device only drivers norfanin The audio_enumerateAndNameAudioDevicesNegativeTests test in testautomation_audio.c reports a failure for SDL_GetAudioDeviceName when called on a driver that has only the default device. SDL_GetNumAudioDevices reports 1, but SDL_GetAudioDeviceName does not check if the index passed by the caller is in that range in this case. For positive numbers anyway. This can be reproduced with the dummy driver on Windows and Linux.
David Ludwig 69c5d21d 2013-10-27T21:26:46 WinRT: merged with SDL 2.0.1 codebase
Sam Lantinga 08fa8da7 2013-10-20T21:56:15 Fixed bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings Andreas Ertelt The problem in question is caused by changeset 7771 (http://hg.libsdl.org/SDL/rev/5486e579872e / https://bugzilla.libsdl.org/show_bug.cgi?id=2121) The redefinition of __inline__ (introduced by the addition of begin_code.h:128's "|| __STRICT_ANSI__") results in mingw's gcc throwing multiple warning: always_inline function might not be inlinable [-Wattributes] as well as a whole bunch of redefinitions of mingw internals which break linking of projects including the SDL2 headers.
Sam Lantinga f5fa492e 2013-10-20T20:42:55 Added a macro SDL_TICKS_PASSED() to correctly compare two 32-bit tick values. Went through the code and used the macro and fixed a couple places that were using incorrect timestamp comparisons.
Sam Lantinga 3f8df109 2013-10-17T23:15:27 Fixed 1598 - Mingwin build fails on src/audio/xaudio2/SDL_xaudio2.c
David Ludwig 9de76eb5 2013-09-06T19:23:42 WinRT: removed chunks of C++ hack code from SDL_xaudio2.c
David Ludwig fff78081 2013-09-06T19:07:15 WinRT: made SDL_xaudio2.c compile as C code when building for WinRT XAudio2 2.8's header file, xaudio2.h, doesn't compile in plain C code for WinRT apps, not automatically at least. Initially, this file was adapted to compile as C++, however these changes are now deprecated in favor of some preprocessor based hacks that should get xaudio2.h to compile (while making sure XAudio2 still works).
David Ludwig ac6e5a69 2013-09-04T20:20:36 WinRT: minor code cleanup in SDL_xaudio2.c
Sam Lantinga f79fc33a 2013-08-29T08:29:21 Christoph Mallon: Remove pointless if (x) before SDL_free(x)
David Ludwig 1e78c4a5 2013-08-27T12:20:35 WinRT: more "Windows RT" to "WinRT" renaming
Ryan C. Gordon faf760d2 2013-08-22T13:32:27 XAudio2/DirectSound: Use the usual Windows string convert (thanks, Norfanin!).
Gabriel Jacobo 1e49b1ed 2013-08-21T09:47:10 OCD fixes: Adds a space after /* (glory to regular expressions!)
Gabriel Jacobo 695344d1 2013-08-21T09:43:09 OCD fixes: Adds a space before */
Gabriel Jacobo 552b04c5 2013-08-20T20:34:40 More non C89 compliant comments
David Ludwig d41fdc94 2013-08-13T20:09:52 WinRT: build fixes and additional WinRT-related integrations with SDL 2.0.0
David Ludwig f7049b93 2013-08-12T22:29:55 WinRT: merged with SDL 2.0.0 codebase (aka. SDL hg rev d4ce48ff30d1)
Gabriel Jacobo dad42067 2013-08-12T11:13:50 Fixes #2022, do not resume on Android when surfaceChanged If the app is in landscape mode and the user presses the power button, a pause is followed immediately by a surfaceChanged event because the lock screen is shown in portrait mode. This triggers a "false" resume. So, we just pause and resume following the onWindowFocusChanged events. Also, wait for SDL_APP_WILLENTERBACKGROUND and SDL_APP_DIDENTERBACKGROUND before blocking the event pump.
Sam Lantinga 1ad936eb 2013-08-11T19:56:43 Fixed bug 2027 - Full-screen appears to be broken - hang in SDL_DestroyWindow() Rainer Deyke I'm running Linux Mint 15 with the Cinnamon window manager. SDL_DestroyWindow consistently locks up for me when the window if fullscreen.