The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success
Changes
Summary
SimpleSineSynth: Ensure stop() destroys ALAudioSink even if streamWorker is not running (details)
ALAudioSink: Allow disabling using AL_SOFT_events via setUseSOFTEvents(boolean) (details)
SimpleSineSynth: Reuse WorkerThread, drop handcrafted code .. (details)
Bug 1473 - ALAudioSink: AV Synchronization Broken, Regression in-between JogAmp Version [2.4.0 - 2.5.0] (details)
Bug 1472: AVSync: Add more comprehensive DEBUG info to detect sync issues (details)
ALAudioSink: getPTS() returns time-adjusted last dequeued PTS, new updateQueue() dequeues w/o wait 1st, then returns adjusted PTS; Simplify/split waitFroReleaded*(); Use TSPrinter for DEBUG (details)
Bug 1472: Enhance AV Sync: Pass through PTS object in ALAudioSink, tracking last PTS value against System Clock Reference (SCR) (details)
ALAudioSink: Use clipAudioVolume(..) function for clarity (details)
feat(devices): Allow to retrieve devices specifiers with ALC_ENUMERATE_ALL_EXT (details)
feat(version): Invoking JoalVersion no longer destroys the current context (details)
feat(devices): Move ALC_EXT constant from ALCconstants into ALHelpers with other ALC_EXT names (details)
feat(headers): Update al*.h and efx*.h to latest version of openal-soft embedded (details)
drop(eax): Remove support of legacy EAX extension (details)
Bug 1479 - NativeLibrary: Add getNativeLibraryPath() returning actual native library path, support throughout DynamicLibraryBundle[Info] (details)
Bug 1475: Minor revision of orig patch-set (details)
SimpleSineSynth: Reuse WorkerThread, drop handcrafted code ..
Actually new GlueGen WorkerThread was created from GLMediaPlayer, which was also the template for this one and hence lead to generalization to WorkerThread.
Bug 1473 - ALAudioSink: AV Synchronization Broken, Regression in-between 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
ALAudioSink: getPTS() returns time-adjusted last dequeued PTS, new 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.
feat(headers): Update al*.h and efx*.h to latest version of openal-soft embedded
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
feat(alc): Fix typo of following methods in ALC api : * aclEnumerationExtIsPresent -> alcEnumerationExtIsPresent * aclEnumerateAllExtIsPresent -> alcEnumerateAllExtIsPresent
feat(alext): Add tests related to ALC_SOFT_system_events.
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