commit c06493e448332ace78721f5dfc3718c863783a12 Author: Sven Göthel Date: Sun Aug 31 01:30:24 2025 +0200 Prepare 2.6.0 Release Build commit 24e6a89e203f61dfbbdea7425a920b53595881f5 Author: Sven Göthel Date: Sat Aug 30 11:56:24 2025 +0200 Bug 1532: UnsafeUtil: Remove usage of deprecated field `sun.misc.Unsafe::objectFieldOffset` (JDK 24 warning) commit 0dea7cd41120291486f4906333bfe639ea1bc198 Author: Sven Göthel Date: Sat Aug 30 11:10:13 2025 +0200 Bug 1531: Specify jvmarg.modules and jvmarg.generic and use 'em for unit testing value: `--enable-native-access=ALL-UNNAMED --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.awt.windows=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED` commit 40762774126dc8ef2978d3b22417a82deaab7244 Author: Sven Göthel Date: Wed Aug 27 07:55:48 2025 +0200 Bug 1529: FreeBSD: Use apache-ant pkg default commit 394bbe763a536dc0c6c06114f85dfd24a543877b Author: Sven Göthel Date: Tue Aug 26 22:36:06 2025 +0200 JogAmpPlatforms*: Add versioned variant(s) commit 7c8371e1c83d19bb9ad91891a20f9b3d26ae583c Author: Sven Göthel Date: Tue Aug 26 21:57:58 2025 +0200 Bug 1529: Updated FreeBSD Support (HowToBuild) commit 3781194a745a36a9d2b8469e1ef1e94f4b98a366 Author: Sven Göthel Date: Tue Aug 26 12:06:40 2025 +0200 Bug 1529: Updated FreeBSD Support IOUtil::getExeTestShellCode(): On non Windows, use `/usr/bin/true` or `/bin/true` is existing - otherwise return null. Previously, only `/bin/true` was used but FreeBSD has only `/usr/bin/true` available. commit 7f5b5dd136d1c68044bed72368f7299347217915 Author: Sven Göthel Date: Sat Aug 23 15:38:53 2025 +0200 Bug 1527: VersionUtil.getManifest: Exclude the parent-classloader resources to locate manifest Excluding the parent classloader resources reduces the risk of returning an arbitrary manifest in case of accept-first. Further it reduces I/O work to be performed, i.e. reading and parsing the parent's manifests. Using an Android fat jar, .e.g `com.jogamp.opengl.demos.androidfat`, this reduces the number of uniq manifest resources to one. Enhances commit 822459302bdd784cacc52d91c3f2f1a3e0d2903e . `jogamp.debug.VersionUtil` property may be used to enable logging. commit 822459302bdd784cacc52d91c3f2f1a3e0d2903e Author: Sven Göthel Date: Sat Aug 23 05:29:52 2025 +0200 Bug 1527 - JogampVersion: Accept accept first manifest w/ extension-name if no extension matches VersionUtil.getManifest() shall have one overload w/ and option to accept first manifest w/ extension-name if no extension matches. This is useful for custom packaging like `com.jogamp.opengl.demosfat` (jogl's new fat android demo apk), where a custom extension is being used. JogampVersion then utilizes this fallback, if the given Manifest is null and the regular jogamp fat extension-name also fails (-> custom package). +++ Further JogampVersion's getManifestInfo() only adds certain attribute value if found, i.e. all SHA and Android tags. commit 978a9661c1b9e28ecd02612d85a9ded7bde1878c Author: Sven Göthel Date: Fri Aug 22 08:05:46 2025 +0200 Bug 1526 - JarUtil::getJarBasename: Remove '.jar' suffix check of result This change allows using jogamp's fat jar wrapped in an exe by launch4j. commit 303a6701c2b643d5579a5b88a101a53ccba9f90c Author: Sven Göthel Date: Tue Jul 22 04:18:42 2025 +0200 Bug 1523: Enhance UnsafeUtil: Expose certain get/put methods as well as getDirectBufferAddress commit c8adeee2becd24c8103c4921cdf944a0794cb928 Author: Sven Göthel Date: Tue Jul 22 04:17:23 2025 +0200 Bug 1523: Java8 build setup using target.releaselevel=8 and target.buildlevel=11 target.buildlevel is only used for build-time dependencies, otherwise not possible commit d59059e6adb2d0eccb53bd32c4fb042897faf6ba Author: Sven Göthel Date: Tue Jul 22 04:15:27 2025 +0200 Bug 1523: Eclipse Java8 settings commit d8d5640f2ebaefe887f517b70eb76edafcc6debc Author: Sven Göthel Date: Tue Jul 22 04:14:51 2025 +0200 Bug 1523: Documentation for Java8 + adding unit- and bring-up tests commit d05fb992362042440c94d7905d3238b2e43ef4d3 Author: Sven Göthel Date: Tue Jul 22 04:11:42 2025 +0200 Bug 1523: JavaRetire src/java/net/highteq/nativetaglet/NativeTaglet.java commit 3dfdc1010649d3a6f9ba413d166f8fbc9d549eaa Author: Sven Göthel Date: Mon Jul 21 20:20:35 2025 +0200 Fix JVM_JNI6.c #error message commit 253d2639f4d27a82cb0c1fc4c17e9bd9362d488e Author: Sven Göthel Date: Mon Jul 21 18:55:00 2025 +0200 Remove maven '-android' aliasing, our make-copy-jars-one handles it commit 73f27219340049956a1e3e05e2d98971802337a4 Author: Sven Göthel Date: Mon Jul 21 15:17:29 2025 +0200 Eclipse: Use `Android 26 (stripped)` User Library to gluegen/make/lib/android-sdk/26/android-stripped.jar commit 9f8cc99afd00400e9102e936cff0caac653e0a8e Author: Sven Göthel Date: Mon Jul 21 05:34:49 2025 +0200 JogAmpPlatforms: Fix typo commit 3e559767bc58891191ff4d77462dfbb203c9b045 Author: Sven Göthel Date: Mon Jul 21 05:00:52 2025 +0200 Android: Min API 24 -> 26 Desugaring w/ adding missing classes didn't work out well, hence we are still in a Java 8 API situation within JogAmp until using Android API 32 (Version 12) w/ full Java 11 support (?). See commit 6577aab6e3cb49bcfa08216521594a99592c74b7 Author: Sven Göthel Date: Sun Jul 20 21:35:00 2025 +0200 doc: Use reachable absolute html links commit eb7f6a5c32ff0b1095cd40eb2af1c5a9c23241d1 Author: Sven Göthel Date: Sun Jul 20 21:27:23 2025 +0200 Eclipse: Bump lang settings commit 69d575cb838a40366495fd1aef413d48028aacc1 Author: Sven Göthel Date: Sun Jul 20 21:26:52 2025 +0200 glibc-compat-symbols: Add macro `GLIBC_NOVERSION_SYMBOL` for libdl (dladdr, dlclose, dlerror, dlopen and dlsym) Enhance commit 2e49db6801b69fa45b2510fd424fca83dd998dec - Add macro `GLIBC_NOVERSION_SYMBOL` for libdl (dladdr, dlclose, dlerror, dlopen and dlsym) - `GLIBC_COMPAT_SYMBOL` shall set a no-version entry where no version was expected, hence act like `GLIBC_NOVERSION_SYMBOL` commit c48d31078d4f76f9e36160427ae69a65c75b775e Author: Sven Göthel Date: Sun Jul 20 21:24:16 2025 +0200 VersionNumber*: toString() drops unused components; Added VersionNumberString ctor for convenience commit 24b22d9b47f1be920e5f80b9e3af14baced1ccdd Author: Sven Göthel Date: Sun Jul 20 21:23:18 2025 +0200 gluegen-cpptasks-base: Whitespace commit 610a1f4f0d7ae6d90f34e7b5143750f7e7b41d7b Author: Sven Göthel Date: Sun Jul 20 21:23:00 2025 +0200 doc/JogAmpPlatforms: JogAmp's Supported Platforms (Evolved from JogAmpMacOSVersions) Evolved from: - doc/JogAmpMacOSVersions.{md, html) -> doc/JogAmpPlatforms.{md, html) Detail all supported platforms (OS + arch) for JogAmp 2.6.0 commit 2e49db6801b69fa45b2510fd424fca83dd998dec Author: Sven Göthel Date: Fri Jul 18 03:50:47 2025 +0200 glibc-compat-symbols: Add GLIBC_COMPAT_SYMBOL for libdl (dladdr, dlclose, dlerror, dlopen and dlsym) Build on Debian 12 hardlinked against GLIBC_2.34, e.g. `U dlsym@GLIBC_2.34` commit 82462a5485c1ce30bcf8c61266292ad643ccd931 Author: Sven Göthel Date: Fri Jul 18 03:49:30 2025 +0200 jogamp-androidtasks: aapt.signed: Add assets also from {jarbasename}, drop jarbasename suffix '(-android.*$)' commit 554f7ca7eb5de640d0d3d9302648ddf9c88b3178 Author: Sven Göthel Date: Wed Jul 16 04:13:56 2025 +0200 JNILibLoaderBase.addNativeJarLibsImpl: Enhance DEBUG output commit 5400c3ce900b3be7472ff36b33ff7751686d2c1f Author: Sven Göthel Date: Mon Jul 14 02:54:02 2025 +0200 Eclipse: Use android-stripped.jar in .classpath (via use library) commit 35896e7984b8047282df474b76eadb20eb6bddda Author: Sven Göthel Date: Mon Jul 14 02:53:24 2025 +0200 Android: Add android-stripped.jar (API 24) less java.* packages, avoiding collisions w/ Eclipse editor commit 1afa0e423e5c949976395a05dba35ee0e6eb7ee9 Author: Sven Göthel Date: Mon Jul 14 02:51:08 2025 +0200 Bug 1520: Android 14 (SDK API 34): Fix Writable dex file is not allowed Simply set the copied apk dex-file to read-only. commit 59de183975b5189b6169c428ebef75937dc7d079 Author: Sven Göthel Date: Mon Jul 14 02:50:03 2025 +0200 TestVersionNumber: Add test w/ an `ES 3.10` version commit 605815987d11b458b102cc549ed870a69fe9b95e Author: Sven Göthel Date: Mon Jul 14 02:49:00 2025 +0200 Bug 1520: Package visibility in Android 11 Allow queries in JogAmp's AndroidLauncher `jogamp.android.launcher` manifest to - com.jogamp.common - com.jogamp.openal - com.jogamp.opengl - com.jogamp.openal.test - com.jogamp.opengl.demos commit 4a385f0c06b0117ded3fca87bc433f157bfca6a1 Author: Sven Göthel Date: Mon Jul 14 02:46:49 2025 +0200 Bug 1520: JNI: Only request min JNI_VERSION_1_6 (Android) commit fa8f7d836e4432d289d6674a4760d5fa9f98978a Author: Sven Göthel Date: Sun Jul 13 15:41:59 2025 +0200 NativeLibrary: Simplify system search API doc commit 14de909065a29b7b3ac14a2c76f6ea7cf958f889 Author: Sven Göthel Date: Sat Jul 12 20:55:24 2025 +0200 NativeLibrary.LibPath: Use pre-calculated hash code commit f051db16085b615e8609b889817d43209ebd1ebf Author: Sven Göthel Date: Sat Jul 12 20:49:03 2025 +0200 Bug 1519 - NativeLibrary: `searchPathPrepend` shall act independent of `addToSearchPath`, do a null-check when using (Windows) Current usage sets both, i.e. addToSearchPath=true and searchPathPrepend=. However, it shall be used independent offering more flexibility and fail-proof. commit 581549571c0a0bd245621a004cc2a9be6d10888b Author: Sven Göthel Date: Sat Jul 12 18:27:05 2025 +0200 Bug 1519 - NativeLibrary: Clarify search order, allow added search-path + add property `jogamp.primary.library.path` This feature enhances Bug 1510 and Bug 1511 further. +++ NativeLibrary now allows adding (user) search path to the OS linker facility where supported (Windows). For this feature, we require to have more information for the `DynamicLinker` implementation, i.e. the new `NativeLibrary.LibPath` exposing - whether its an absolute path, - contained directory shall be added to search path (first) and - otherwise potential added search path to prepend. This feature is currently only supported by the Windows native linker, since the POSIX `dlopen` facility doesn't allow to modify `LD_LIBRARY_PATH` at runtime. +++ Add Java property `jogamp.primary.library.path` containing a separated path in the OS system's format. These paths will be searched first, allowing to inject custom native libraries at runtime. +++ NativeLibrary's search order was not clear, or had a bug in regards to `searchSystemPathFirst`. Here the system and user lib-path was not well separated. Clarified search order is documented in NativeLibrary class API doc. commit 9726442a2c70c4d496184a4bc97d306bb75e443f Author: Sven Göthel Date: Fri Jul 11 10:49:17 2025 +0200 uses-sdk android:minSdkVersion="24" android:targetSdkVersion="35" (2025-08-31 requirements) commit 38a658622c27290e580e278d512c12cdf42d2c6c Author: Sven Göthel Date: Sun Jul 6 17:32:47 2025 +0200 VersionSemanticsUtil: Ignore missing classes, report to stdout and use summary only commit 6d113b7ebd764d53b567604e641dc94a19132e60 Author: Sven Göthel Date: Sun Jul 6 15:20:05 2025 +0200 doc/*.md: Fix comment of new source format `markdown+lists_without_preceding_blankline` commit 3a382c2f38f7bdddf7ddfc5050a19873d2294abf Author: Sven Göthel Date: Sun Jul 6 14:45:02 2025 +0200 doc/GlueGen_Mapping.md: Add anchors for Doxygen (Mainpage); Use pandoc `markdown+lists_without_preceding_blankline` commit 926483fb0ccbea33b66df61c71e5cbaf9c4659c7 Author: Sven Göthel Date: Sat Jul 5 20:39:55 2025 +0200 Doxygen: Realign w/ orig 'javadoc' locations and archive name, to preserve doc-root commit c68c5383dd4d911f4ebb0d42ddc44ebf1535100a Author: Sven Göthel Date: Sat Jul 5 20:12:08 2025 +0200 Fix doc/HowToBuild.html: Remove target.* options (we use defaults) commit 029b2851c633fbb48d11228fa895ca7f8eae4317 Author: Sven Göthel Date: Sat Jul 5 19:12:54 2025 +0200 Add doxygen.all.zip and doxygen.public.zip Doxygen targets commit 549b88f5358e7974dcde4f694f806578839776d3 Author: Sven Göthel Date: Sat Jul 5 13:54:52 2025 +0200 Cleanup android apk task: Only leave aligned-unsigned 'name-unsigned.apk' and aligned-signed 'name.apk' commit 7bb64273dcc7d0aaa7dfb78035b8650e3121375d Author: Sven Göthel Date: Sat Jul 5 13:15:01 2025 +0200 DynamicLibraryBundle:loadLibraries(): Allow having toolLibSymbolNames.size() < toolLibNames.size() Simply use null symbolName if not given for certain library bundle infos. commit b2bf390d45d7e985f80c4ea36b5ade48726fd022 Author: Sven Göthel Date: Fri Jul 4 20:07:59 2025 +0200 DynamicLibraryBundle: Expose `toolGetProcAddressHandle` and add `NativeLibrary getToolLibrary(final int i)` Exposing `toolGetProcAddressHandle` via getToolGetProcAddressHandle() allows passing through symbol lookup throughout toolkits. commit bcf3913bbe94009c9576221301dd8c2750218a7d Author: Sven Göthel Date: Fri Jul 4 20:06:15 2025 +0200 DynamicLookupHelper: Add isOpen() commit c6f1eed53ec8c0e4810f98cb5a5866184c7ec63b Author: Sven Göthel Date: Sun Jun 29 13:05:54 2025 +0200 Eclipse: Drop android from build-path, no more working w/ using JRE-11 from JDK-21 Causes 'package is accessible from more than one module/source'. commit 2ddfb7cb34ed2015b7803a0db25f6bdba8717ea3 Author: Sven Göthel Date: Sat Jun 28 22:36:04 2025 +0200 Eclipse Java-11 (min target) setting commit 492240c5176c91fd159e9010983aebc0e616b325 Author: Sven Göthel Date: Fri Jun 27 02:58:17 2025 +0200 Replace 'semver' w/ 'japicmp' for Java >= 11 Compatibility The original semantic-versioning 'semver' 0.9.33-SNAPSHOT is no more maintained and not compatible w/ Java >= 11 class files. The frozen project recommends using 'japicmp', which we use as a replacement now (version 0.23.1). Both projects are licensed under the Apache License 2.0 commit 47eec7e7eb549572461861120c2d6969999ecc93 Author: Sven Göthel Date: Thu Jun 26 23:49:50 2025 +0200 JDK-21 Perf: TestIntIntHashMap: Add 2nd warm-up, increase tolerance to 4x on JDK-21 (1.5 on JDK < 21) Might be related to JDK-8309361 as well commit 480e57b817f0c8d832f1988355e015f6ed1d36bd Author: Sven Göthel Date: Thu Jun 26 23:22:16 2025 +0200 JDK-8309361: JDK-21 perf-issue (annotation) commit 1056fa168591fcc8e9531cc37dadfb777c5f0486 increased timing/clock tolerances due to thread scheduler changes introduced in JDK-21. Issue is now identified as: JDK-8309361 See commit 1056fa168591fcc8e9531cc37dadfb777c5f0486 Author: Sven Göthel Date: Thu Jun 26 21:34:35 2025 +0200 Tests: Increase timing/clock tolerance: TestClock01 + TestWorkerThread01 OpenJDK 21 seems to behave slower on our old/slow MacOS x86_64 and Windows x86_64, regarding thread scheduling (sleep?). TestClock01: MacOS TestWorkerThread01: MacOS + Windows commit 89274d6737591f6f9070d82e810dae2473712edf Author: Sven Göthel Date: Thu Jun 26 20:10:16 2025 +0200 Android NDK 29 strip is llvm-strip commit b063ea93d87cae41e3465e4dc1adf1f59a2695db Author: Sven Göthel Date: Thu Jun 26 09:54:22 2025 +0200 Use Java-11 Target and Android SDK 36 / NDK 29 (2025-06-25) - Drop target.rt.jar - target.sourcelevel=11, target.targetlevel=11 Android - Android SDK 36 / NDK 29 (2025-06-25) - commit 20a7dd16924486e59ff0f48b7b69ed41e10cc58f Author: Sven Göthel Date: Tue Jun 24 08:49:23 2025 +0200 Update md -> html commit 3863ee3504a508c04ee57903bdbb62f6291c82d0 Author: Sven Göthel Date: Tue Jun 24 08:38:28 2025 +0200 JogAmpMacOSVersions: Bump adding MacOS 15 Sequoia testing commit bf234e8f24a4f9da4e4bafdfce00e0fe9703f2c0 Author: Sven Göthel Date: Tue Jun 24 08:37:38 2025 +0200 Build/test: Use OpenJDK-21 per default commit 390794a4647e1f7e9755f2936922abbe096c85eb Author: Sven Göthel Date: Sat Jun 21 11:35:00 2025 +0200 Bug 1510: NativeLibrary shall respect OS library-path environment variable for searching in system-path NativeLibrary's 'enumerateLibraryPaths' system search only uses the library basename to utilize the OS's search algorithm. This is not sufficient for all OS, e.g. Windows 10. Example: Prepend a custom Mesa3D OpenGL library to the environment variable PATH. Solution is to explicitly search in all directories of the system environment variable: - Windows: PATH - MacOS: DYLD_LIBRARY_PATH - Unix: LD_LIBRARY_PATH before using the plain basename. commit fe97e31fa237f51e0fb842d47bcf28af80cc0c16 Author: Sven Göthel Date: Sat Jun 21 07:45:51 2025 +0200 Eclipse: Bump + Add CDT for native files commit 2aab0400e406cd131ed08f64b8713e0a71947d19 Author: Sven Göthel Date: Sat Jun 21 07:41:42 2025 +0200 bump test script commit bed67d20e1860c094204504d2ffd2847332ef933 Author: Sven Göthel Date: Sat Jun 21 07:40:43 2025 +0200 jogamp-env: Cleanup whitespace commit 2ed04d813073dde75435e7caa2bc8c20340fdc55 Author: Sven Göthel Date: Sat Jun 21 07:40:25 2025 +0200 jogamp-env: Default sourcelevel/targetlevel to 1.8 commit e64dfa8223127f0760206f05fe1f9400eea6f6c2 Author: Sven Göthel Date: Sat Jun 21 07:33:01 2025 +0200 HowToBuild: Debian 12 commit 30a23edaf3e793de5a9179ef56972e0953a46c6a Author: SiboVG Date: Fri Jun 21 11:22:45 2024 +0900 Fix casting in Buffers.c commit 1728ddeac61296e74fbedb87eb065729cd935c91 Author: Mathieu Féry Date: Tue Apr 9 14:08:43 2024 +0200 feat(manual): Update configuration documentation (all are documented). Add following configuration : * DelegateImplementation * ImmutableAccess * JavaCallbackDef * LibraryOnLoad * MethodJavadoc * NIOOnly * RenameJavaSymbol * RelaxedEqualSemanticsTest * ReturnsOpaque * StructMachineDataInfoIndex * TagNativeBinding * UnsupportedExceptionType Update following configuration : * ClassJavadoc * NioDirectOnly doc/manual/index.html are updated with following command : `../pandoc-buttondown-cgit/pandoc_md2html_local.sh doc/manual/index.md > doc/manual/index.html` (Use following repo : https://jausoft.com/cgit/users/sgothel/pandoc-buttondown-cgit.git on master -> fb38ada0c8d71a2b26bd3ee9d075acce84d76b2c) commit d9604cf4687c3f4e14967ee748749c784fd1578f Author: Sven Göthel Date: Sun Feb 4 07:15:27 2024 +0100 Rename StringUtil.strip() -> StringUtil.trim(), refine API doc commit 1947c156ca033d98c40435d17bdfc70ab53db7af Author: Sven Göthel Date: Sun Feb 4 07:07:36 2024 +0100 Bump runtest.sh script w/ StringUtil test commit 36f595b37220976125222f7f5b3dbfc74df163e0 Author: Sven Göthel Date: Sun Feb 4 07:05:40 2024 +0100 Adding StringUtil, containing basic utility functions as well as unicode space (whitespace) and full- and halfwidth tests. commit a67d19d005de669c0c4b240745d5359921acc90a Author: Sven Göthel Date: Fri Feb 2 08:15:26 2024 +0100 PTS: Rename millisToTimeStr() -> toTimeStr(), analogue to toMillis() commit af281cc88434f5cf6cdaeaf7fe379ba7f9e6d978 Author: Sven Göthel Date: Fri Feb 2 07:03:44 2024 +0100 PTS: Add toMillis(String), parsing string representation in '[H[H]:]m[m]:s[s][.S*]' using custom DateTimeFormatter to milliseconds, complementing millisToTimeStr(..) commit e933eb4cdf939a0b2284bf36e084959ffd4f04b2 Author: Sven Göthel Date: Wed Jan 31 11:29:02 2024 +0100 PTS: Add convenient getCurrent() passing Clock.currentMillis() to get(long). commit e3b10d335cc2fb659bb5bd3d8ab82e93eb36080c Author: Sven Gothel Date: Sat Dec 30 21:13:54 2023 +0100 PTS: Add millisToTimeStr(..) convenient time string representation, also used by added get{SCR, Last, }TimeStr(..) methods commit d56cd13883c2af1f42906a5327c78b1a7c684012 Author: Mathieu Féry Date: Wed Dec 6 14:15:29 2023 +0100 feat(callbackGenerator): Prevent NPE during call of java callback NPE can occured when argument supplied by native api are compoundTypeWrapper but pointer are NULL commit 2a48dd9009e5b0b17d78f016e149e4cb387539e6 Author: Sven Gothel Date: Sat Dec 2 18:40:50 2023 +0100 Bug 1481 - Remove redundant isPascalLen() branch commit 0cad15cc7538600ec741e685cc8f054d8607a52d Author: Sven Gothel Date: Sat Dec 2 18:33:08 2023 +0100 TestStructGen*: Enable standalone testing, enforce Platform.initSingleton() commit 0666c8f9a353b42ffde4902dc0cdec66f925a6e3 Author: Sven Gothel Date: Sat Dec 2 18:32:34 2023 +0100 Bug 1481 - Hide [ArgumentIs]PascalString argument's length Native pascal strings shall be just treated as normal Java strings on the Java side. Hence drop the length parameter across generated API, i.e. - C Function bindings - Java Callbacks commit 0f731bfabcdd19665c3c09c5f40f898101c501c9 Author: Sven Gothel Date: Tue Nov 28 10:14:03 2023 +0100 Bug 1474: Only quote exe-file path on Windows for execution Double quoting of the exe-file for execution is only allowed and required on Window. commit c8cb87e17a14281a9d0e2f311b8534ecb7ac00b4 Author: Sven Gothel Date: Tue Nov 28 03:56:33 2023 +0100 Bug 1474: Allow temp folder for exe-file test to contain parenthesis on Windows If the temp path contains parenthesis on Windows, e.g. the username or the sub-temp folder, the used exeTestFile.getCanonicalPath() can't be used by 'Runtime.getRuntime().exec( path )'. Example: C:\Users\(ABC)abc\AppData\Local\Temp Output: Exe-Tst: 'C:\Users\' is not recognized as an internal or external command, operable program or batch file. Hence the complete canonical path must be quoted, i.e. Path: "C:\Users\(ABC)abc\AppData\Local\Temp" commit c7efca6d9b0db7305f5352ebf15d915ae5a1fa24 Author: Sven Gothel Date: Sun Nov 26 09:49:12 2023 +0100 Bug 1479: NativeLibrary: Add getNativeLibraryPath() returning queried used native library path, supported throughout DynamicLibraryBundle[Info] Motivation: It is helpful to retrieve the actually used native library pathname, since loading a library w/o absolute path but lookup through LD_LIBRARY_PATH may render it hard for the user to determine which library is used. +++ +++ Windows implementation simply can use GetModuleFileNameA() with the native library handle. POSIX implementation may utilize a symbol-name to retrieve its address within the loading native library used to retrieved the library information via dladdr(). To support this feature throughout DynamicLibraryBundle and DynamicLibraryBundleInfo, the custom DynamicLibraryBundleInfo specializations shall provide optional symbol-names per each tool-library-name for the POSIX implementation, see above. public interface DynamicLibraryBundleInfo { ... /** * Returns optional list of optional symbol names per {@link #getToolLibNames()} * in same order for an OS which requires the symbol's address to retrieve * the path of the containing library. */ public List getSymbolForToolLibPath(); ... } commit aea14464d521dca28165498ffe943ef1122fc2e3 Author: Sven Gothel Date: Mon Oct 16 05:19:17 2023 +0200 PTS: Add copy constructor commit 2a91bec43a7a58efc22dd36e919308ecc50d9b4a Author: Sven Gothel Date: Mon Oct 16 03:03:45 2023 +0200 PTS: get(currentMillis): Employ rounding in integer conversion commit 52725b4c6525487f93407f529dc0a758b387a4fc Author: Sven Gothel Date: Sun Oct 15 06:41:41 2023 +0200 Bug 1472: Enhance AV Sync: Pass through PTS object in AudioSink, tracking last PTS value against System Clock Reference (SCR) This allows passing through actual SCR with the PTS when enqueueing audio frames and utilizing it when querying actual time lapsed PTS value (interpolation SCR to currentMillis). commit dbd0236203f3d969575e62097f42a2a86e2a36ae Author: Sven Gothel Date: Fri Oct 6 12:21:08 2023 +0200 AudioSink: Rename getQueued{Time->Duration}(), add updateQueue() commit 8376f21f2b6f25f3fc8ff2688ef49a2e9c91f966 Author: Sven Gothel Date: Fri Oct 6 12:19:59 2023 +0200 AudioSink/TimeFrame1: API doc: Add notes about integer stored milliseconds for PTS and duration, i.e. good for 24.855 days commit ba3748eb1d478d4377ea003f909c668db90a82c3 Author: Sven Gothel Date: Fri Oct 6 12:16:25 2023 +0200 Clock/Platform: Add currentMillis() analogue to currentNanos(), returning current monotonic milliseconds **since start of this application** Also added TSPrinter, a simple millisecond timestamp prepending `print*()` wrapper for a {@link PrintStream}. Test coverage via TestClock01. commit e23a4c7fcc0b585c0708be114fa364e391da4843 Author: Sven Gothel Date: Wed Oct 4 08:59:47 2023 +0200 AudioSink: Just pass a finte buffer size (KISS), add getLastBufferedPTS() to access the last buffered audio pts commit 0a0d4fc054670e2a40721a18930322b91ae580c8 Author: Sven Gothel Date: Mon Oct 2 15:00:06 2023 +0200 build.xml: Fix typo in a target description commit f4a8ffff69f5882a11e1fec34bd22e0441c63d2c Author: Sven Gothel Date: Fri Sep 22 19:27:09 2023 +0200 WorkerThread.start(paused): Merge RUNNING | ACTIVE Last review editting I hope :) commit b91eced514871ccfc1462657d437ecadd2d7f197 Author: Sven Gothel Date: Fri Sep 22 16:08:15 2023 +0200 Uri: Added `Uri tryUriOrFile(final String uri_s)` for convenience / usability, as well as getScheme(String), isValidScheme(String), isFileScheme(String) and isHttpxScheme(String) commit fdda2f12a5aa6f931f693b15e1c3cd7dab030882 Author: Sven Gothel Date: Fri Sep 22 16:06:42 2023 +0200 WorkerThread: Enhanced testing, added optional StateCallback for state changes, using bitfield state (earmarked to be used within GLMediaPlayerImpl etc) commit 7fe177c87184cbe9c170ed708a1db3deeb7e390c Author: Sven Gothel Date: Thu Sep 21 18:34:10 2023 +0200 WorkerThread: Remove minDelayMS field, have it in Runnable branch only commit 2b754aafac129493976fcd82d0dacf145d44cab1 Author: Sven Gothel Date: Thu Sep 21 10:28:06 2023 +0200 WorkerThread: Fix minDelayMS assignment using validated field value commit 53790cc4718d5e46f390a80957a45d30955c430f Author: Sven Gothel Date: Thu Sep 21 10:07:11 2023 +0200 WorkerThread: Add optional minDelay to throttle excecution commit dbacecc077fe44142d7ed1ba74a41d5e50cd8dc8 Author: Sven Gothel Date: Wed Sep 20 00:06:52 2023 +0200 WorkerThread: Move 'streamErr' Exception to local Runnable commit fedfc22ba3a3583a3ecf4b55f7f8a822045b690c Author: Sven Gothel Date: Wed Sep 20 00:03:54 2023 +0200 Add WorkerThread: A re-start'able, pause'able and interrupt'able worker thread with an optional minimum execution duration commit afe9f7e1694d93ac68fd34ff29b5cf3ee2fbd64d Author: Sven Gothel Date: Wed Aug 23 03:54:49 2023 +0200 Bump 2.6.0-rc-... commit 7da4c280b7424e63af45725d1735a9de733eee4c Author: Sven Gothel Date: Wed Aug 23 03:39:49 2023 +0200 InterruptSource.Thread: Add ctor variant w/ sole Runnable argument (was missing)