aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Sync OpenAL-Soft to commit b82cd2e60edb8fbe5fdd3567105ae76a016a554cHEADmasterSven Göthel2024-01-051-0/+0
|
* JoalVersion: Avoid using Map.of(..), i.e. streaming API to be compatible w/ ↵Sven Göthel2024-01-051-10/+14
| | | | JRE 1.8.0
* feat(alext): Add tests related to ALC_SOFT_system_events.Mathieu Féry2023-12-063-2/+317
| | | | | Change java callback configuration of ALC_SOFT_system_events : Because events aren't related on context but on device and context are device specific, ALC_SOFT_system_event use default Callback-KeyClass with a plain java object
* feat(alext): Add ALC_SOFT_system_events inside JoalVersion.getALStrings if ↵Mathieu Féry2023-12-053-0/+30
| | | | supported
* feat(alc): Fix typo of following methods in ALC api :Mathieu Féry2023-12-053-8/+8
| | | | | * aclEnumerationExtIsPresent -> alcEnumerationExtIsPresent * aclEnumerateAllExtIsPresent -> alcEnumerateAllExtIsPresent
* feat(alc): Add missing @Override annotation in ALCImplMathieu Féry2023-12-051-0/+4
|
* Bug 1480 - Adjust for MacOS >= 10.13 (Min Deployment Version)Sven Gothel2023-12-031-0/+0
|
* Bump OpenAL-Soft to git 571b546f35eead77ce109f8d4dd6c3de3199d573 2023-11-25, ↵Sven Gothel2023-12-0212-352/+672
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | post v1.23.1; Adding 2 extensions (ALExt) New extensions: - ALC_EXT_debug - AL_EXT_debug - ALC_SOFT_system_events Testing: - ALDebugExtTest contains minimal test for - ALC_EXT_debug - AL_EXT_debug +++ commit 1aaf4f070011490bcece50394b9b32dfa593fd9e (HEAD -> master) Merge: 6e7cee4f 571b546f Author: Sven Gothel <[email protected]> Date: Tue Nov 28 12:51:46 2023 +0100 Merge remote-tracking branch 'upstream/master' commit 571b546f35eead77ce109f8d4dd6c3de3199d573 (upstream/master) Author: Chris Robinson <[email protected]> Date: Sat Nov 25 22:09:28 2023 -0800 Update some in-progress format enums
* Bug 1481: ALAudioSink: Adopt to GlueGen's PascalString ChangeSven Gothel2023-12-021-3/+3
|
* Merge remote-tracking branch 'Mathieu_Fery/1477-remove-eax-headers'Sven Gothel2023-11-289-866/+0
|\
| * drop(eax): Remove support of legacy EAX extensionMathieu Féry2023-11-229-866/+0
| |
* | Bug 1476: Reviewed updated OpenAL header (extensions) via ↵Sven Gothel2023-11-283-0/+82
| | | | | | | | | | | | make/scripts/cmpOld2New.sh No API change of old methods or fields!
* | Merge remote-tracking branch 'Mathieu_Fery/1476-bump-al-and-efx-headers'Sven Gothel2023-11-2810-406/+705
|\ \
| * | feat(headers): Update al*.h and efx*.h to latest version of openal-soft embeddedMathieu Féry2023-11-2210-406/+705
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eax.h is 'ignored' because usable reference header file are located inside submodule openal-soft/al/eax/api.h but this header contains many symbol not processed by Gluegen like constexpr and other c++ feature Following extensions has been added : * AL_EXT * AL_EXT_BFORMAT -> https://github.com/Raulshc/OpenAL-EXT-Repository/blob/master/AL%20Extensions/AL_EXT_BFORMAT.txt * AL_EXT_MULAW_BFORMAT -> https://github.com/Raulshc/OpenAL-EXT-Repository/blob/master/AL%20Extensions/AL_EXT_MULAW_BFORMAT.txt * AL_SOFT * AL_SOFT_deferred_updates -> https://openal-soft.org/openal-extensions/SOFT_deferred_updates.txt * AL_SOFT_block_alignment -> https://openal-soft.org/openal-extensions/SOFT_block_alignment.txt * AL_SOFT_MSADPCM -> https://openal-soft.org/openal-extensions/SOFT_MSADPCM.txt * AL_SOFT_source_length -> https://openal-soft.org/openal-extensions/SOFT_source_length.txt * AL_SOFT_buffer_length_query -> https://openal-soft.org/openal-extensions/SOFT_buffer_length_query.txt * AL_SOFT_gain_clamp_ex -> https://openal-soft.org/openal-extensions/SOFT_gain_clamp_ex.txt * AL_SOFT_source_resampler -> https://openal-soft.org/openal-extensions/SOFT_source_resampler.txt * AL_SOFT_source_spatialize -> https://openal-soft.org/openal-extensions/SOFT_source_spatialize.txt * AL_SOFT_direct_channels_remix -> https://openal-soft.org/openal-extensions/SOFT_direct_channels_remix.txt * AL_SOFT_bformat_ex -> https://openal-soft.org/openal-extensions/SOFT_bformat_ex.txt * AL_SOFT_effect_target -> https://openal-soft.org/openal-extensions/SOFT_effect_target.txt * AL_SOFT_callback_buffer -> https://openal-soft.org/openal-extensions/SOFT_callback_buffer.txt * AL_SOFT_UHJ -> https://openal-soft.org/openal-extensions/SOFT_UHJ.txt * AL_SOFT_UHJ_ex -> https://openal-soft.org/openal-extensions/SOFT_UHJ_ex.txt * AL_SOFT_source_start_delay -> https://openal-soft.org/openal-extensions/SOFT_source_start_delay.txt * ALC_EXT * ALC_EXT_DEFAULT_FILTER_ORDER -> https://github.com/Raulshc/OpenAL-EXT-Repository/blob/master/ALC%20Extensions/ALC_EXT_DEFAULT_FILTER_ORDER.txt * ALC_SOFT * ALC_SOFT_pause_device -> https://openal-soft.org/openal-extensions/SOFT_pause_device.txt * ALC_SOFT_HRTF -> https://openal-soft.org/openal-extensions/SOFT_HRTF.txt * ALC_SOFT_output_limiter -> https://openal-soft.org/openal-extensions/SOFT_output_limiter.txt * ALC_SOFT_device_clock -> https://openal-soft.org/openal-extensions/SOFT_device_clock.txt * ALC_SOFT_loopback_bformat -> https://openal-soft.org/openal-extensions/SOFT_loopback_bformat.txt * ALC_SOFT_reopen_device -> https://openal-soft.org/openal-extensions/SOFT_reopen_device.txt * ALC_SOFT_output_mode -> https://openal-soft.org/openal-extensions/SOFT_output_mode.txt
* | sound3d.Context: Add tryMakeCurrent(..) variantSven Gothel2023-11-281-28/+44
| |
* | Bug 1475: Minor revision of orig patch-setSven Gothel2023-11-285-35/+28
| | | | | | | | | | | | | | | | | | | | - Implement ALC.alcIsDoubleNullTerminatedString() in Java w/ our existing functionality, drop JNI function - JoalVersion.devicesToString(..) revert to original API dropping boolean params - C: Drop using stdbool.h, earmarked as obsolete in std
* | Merge remote-tracking branch 'Mathieu_Fery/1475-devices-specifiers'Sven Gothel2023-11-288-51/+232
|\ \
| * | feat(devices): Move ALC_EXT constant from ALCconstants into ALHelpers with ↵Mathieu Féry2023-11-145-15/+16
| | | | | | | | | | | | other ALC_EXT names
| * | feat(version): Invoking JoalVersion no longer destroys the current contextMathieu Féry2023-11-132-9/+77
| | |
| * | feat(devices): Allow to retrieve devices specifiers with ALC_ENUMERATE_ALL_EXTMathieu Féry2023-11-108-42/+154
| |/
* / Bug 1479 - NativeLibrary: Add getNativeLibraryPath() returning actual native ↵Sven Gothel2023-11-261-0/+3
|/ | | | library path, support throughout DynamicLibraryBundle[Info]
* ALAudioSink: Use clipAudioVolume(..) function for claritySven Gothel2023-10-161-5/+9
|
* Bug 1472: Enhance AV Sync: Pass through PTS object in ALAudioSink, tracking ↵Sven Gothel2023-10-153-25/+20
| | | | | | last PTS value against System Clock Reference (SCR) See GlueGen commit 52725b4c6525487f93407f529dc0a758b387a4fc
* ALAudioSink: getPTS() returns time-adjusted last dequeued PTS, new ↵Sven Gothel2023-10-062-186/+216
| | | | | | | | | | updateQueue() dequeues w/o wait 1st, then returns adjusted PTS; Simplify/split waitFroReleaded*(); Use TSPrinter for DEBUG Returning the time-adjusted PTS from the last dequeued frame seems to be the most accurate value we can deliver. Hence we store the Clock.currentMillis() in playing_pts_t0 when updating playing_pts and add the difference to current Clock.currentMillis() when retrieving.
* Bug 1472: AVSync: Add more comprehensive DEBUG info to detect sync issuesSven Gothel2023-10-042-71/+139
|
* Bug 1473 - ALAudioSink: AV Synchronization Broken, Regression in-between ↵Sven Gothel2023-10-043-164/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | JogAmp Version [2.4.0 - 2.5.0] - Adopt to simplified AudioSink - Add lastBufferedPTS and expose it - Cleanup short* and perf*String() trace/debug presentations to simplify review - Hence drop growBuffers() - Set initial avgFrameDuration to latency, at least a good start +++ dequeueBuffer(..): - Pass releaseBufferCountReq directly, tangible only if wait == true, have enqueueData(..) determine the wait and releaseBufferCountReq value. - Drop dequeueBuffer(..) overload caller, simplifying code - Don't change playingPTS(..) in overload caller, enqueueData(..) takes care of it - Align DEBUG trace with enqueueData(..) to simplify review - Otherwise no semnatic change in dequeueBuffer(..) enqueueData(..): - Dropped growBuffers() - Show DEBUG trace before actual dequeueBuffer(..) to have meanigful output - SOFT (no-wait) dequeueBuffer(..) triggers on 2/3rd full queue - HARD (wait) dequeueBuffer(..) if queue is full - Set playingPTS, either use - old queue-tip (too old) and add (forward) 60% of queue-buffer time - new queue-tail (too young), subtract (delay) 40% of queue-buffer time
* SimpleSineSynth: Reuse WorkerThread, drop handcrafted code ..Sven Gothel2023-10-031-113/+30
| | | | | Actually new GlueGen WorkerThread was created from GLMediaPlayer, which was also the template for this one and hence lead to generalization to WorkerThread.
* ALAudioSink: Allow disabling using AL_SOFT_events via setUseSOFTEvents(boolean)Sven Gothel2023-10-032-5/+16
|
* SimpleSineSynth: Ensure stop() destroys ALAudioSink even if streamWorker is ↵Sven Gothel2023-10-031-0/+2
| | | | not running
* ALAudioSink.dequeueBuffer(..): AL_SOFT_events cumulated released buffers is ↵v2.5.0Sven Gothel2023-08-011-5/+20
| | | | 'sometimes wrong'. Workaround: Query released buffers after receiving event and use minimum.
* AudioSystem3D.checkAL*Error(): Close single quote in error messageSven Gothel2023-08-011-2/+2
|
* AL_SOFT_events: Define 'ALCcontext` as `UserParam` type for more claritySven Gothel2023-07-103-10/+9
|
* ALAudioSink.destroy(): Shutdown alEventCallbackSOFT properly (only if ↵Sven Gothel2023-07-091-7/+9
| | | | hasAL_SOFT_events, 1st disable all events); growBuffers(): No pre-condition exception for hasAL_SOFT_events
* ALContextKey.equals(): Use cached nativeAddress of other item as well.Sven Gothel2023-07-091-2/+1
|
* GlueGen cfg files: Remove now unused import java.security.AccessControllerSven Gothel2023-07-093-3/+0
|
* ALAudioSink: Utilize AL_SOFT_events if available, i.e. use callback for ↵Sven Gothel2023-07-094-43/+225
| | | | | | | released buffer count instead of polling With wait == true, we simply wait until enough buffers have arrived, otherwise take what we got - both w/o polling and querying the alSource.
* Add OpenAL extension AL_SOFT_events using userParam ALCcontext as key for ↵Sven Gothel2023-07-095-0/+120
| | | | | | GlueGen JavaCallback https://openal-soft.org/openal-extensions/SOFT_events.txt
* Sound3d.Context: destroy() shall only 'null' thread-local context if this is ↵Sven Gothel2023-07-091-4/+4
| | | | current; Expose hasALC_thread_local_context to avoid double checks
* ALExtImpl: Remove unused importsSven Gothel2023-07-091-7/+0
|
* Use GlueGen's SecurityUtil.doPrivileged(..) instead of AccessController, ↵Sven Gothel2023-07-093-12/+3
| | | | remove dead code
* Fix file mods in make/configSven Gothel2023-07-098-0/+0
|
* Adopt to GlueGen commit 952e0c1f83c9e0583a97d39988a6ba1428911c8cSven Gothel2023-06-093-3/+0
|
* Promote SimpleSineSynth to API (util) from Synth02AL, allowing user to have ↵Sven Gothel2023-05-232-387/+438
| | | | a simple sound source to test
* ALAudioSink: Use and expose Sound3D object, allow user app to deal w/ ↵Sven Gothel2023-05-231-453/+321
| | | | | | | | | | | JOAL/OpenAL easier and reuse Context context locking Context locking logic has been fixed and moved to Sound3D Context class (beside many other transparency changes), see commit afb386e13fd00fde1401d4551ee4790b1f6d5e09. This also aligns w/ AudioSink API change of Gluegen commits - c04726720a57f8db42f2621ad58ff3bd42006c63 - 6a74d16a805a4204093972bb91361b2aa633065c
* Sound3D: Further OO wrapper to be used in ALAudioSink: Context locking, ↵Sven Gothel2023-05-237-93/+452
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ALCcontext recreation, .. Context - Recursive context locking (only 1st shall do native makeCurrent, only last shall do native release) - Access to the current Context instance (thread local storage) - Obey "One context can only be current on one thread, and one thread can only have one context current!" - ALCcontext recreation within lock, allowing to change native OpenAL specifics via attr list - ALCcontext creation (initial) w/ attr list Device - Retrieve name if default name null has been given - Expose device name - Allow to open() again Source - Allow lazy creation w/ invalid ID - Allow create() post instantiation (for a single source) - Throw ALException in all queued buffer methods as they are crucial in multithreading streaming. - Add queue buffer with OpenAL buffer-id int[] arrays variant to be used w/o Buffer Listener - Fix (get|set)Orientation() API doc: It's 'at' vector, then 'up' vector. General: - Have toString() - Added versatile AudioSystem3D.check*Error(..) Earlier Sound3D changes - 7f73d50c90d05cf7388f23977ca956a4933019ad - 64b40bd4359cad46ebf62751ea342d80205bd98b
* ALException: Suppress serial warningSven Gothel2023-05-231-0/+1
|
* ALAudioSink: Use float in seconds for duration (AudioFormat and ↵Sven Gothel2023-05-212-82/+102
| | | | 'avgFrameDuration') to avoid losing precision when dealing with stats, averages etc
* ALAudioSink: Enhance description re 'AudioFrame' and 'frameDuration'; Drop ↵Sven Gothel2023-05-211-5/+10
| | | | unused field 'avgFrameDuration'.
* Fix ALAudioSink.dequeueBuffer(): AL_BUFFERS_PROCESSED result is total not ↵Sven Gothel2023-05-201-5/+14
| | | | | | | | | | | | | | | | | | accumulative while waiting (not yet dequeueing), ... Further: - brackets were missed in 'sleep =', i.e. 'releaseBufferLimes-releasedBuffers * avgBufferDura' -> '(releaseBufferLimes-releasedBuffers) * avgBufferDura)' - The minimum sleep of avgFrameDuration 'sleep = Math.max(avgFrameDuration, ..' lead to cut-off smaller sleep cycles and the else branch would only sleep for less (1ms) multiple times. Hence use the minimum of 2ms, where we subtract 1ms for busy polling. Notable, this is an extreme situation of small buffer sizes (duration), but may happen on like synthesizer applications (jsyn). We actually could use latency (refresh cycle) as used in OpenAL-Soft, but this is an undocumented feature .. sort of.
* ALHelpers.getALFormat(..): Drop alGetEnumValue("type") and use 'type' via ↵Sven Gothel2023-05-201-17/+18
| | | | | | | | | ALExtConstants directly: Fixes failing al.alGetEnumValue("AL_FORMAT_STEREO_DOUBLE") al.alGetEnumValue("AL_FORMAT_STEREO_DOUBLE") failed w/ OpenAL-Soft, despite having AL_EXT_MCFORMATS, AL_EXT_FLOAT32 and AL_EXT_DOUBLE supported. Notable, al.alGetEnumValue("AL_FORMAT_MONO_FLOAT32") did work.