Add WorkerThread: A re-start'able, pause'able and interrupt'able worker thread with an optional minimum execution duration (details)
WorkerThread: Move 'streamErr' Exception to local Runnable (details)
WorkerThread: Add optional minDelay to throttle excecution (details)
WorkerThread: Fix minDelayMS assignment using validated field value (details)
WorkerThread: Remove minDelayMS field, have it in Runnable branch only (details)
WorkerThread: Enhanced testing, added optional StateCallback for state changes, using bitfield state (earmarked to be used within GLMediaPlayerImpl etc) (details)
Uri: Added `Uri tryUriOrFile(final String uri_s)` for convenience / usability, as well as getScheme(String), isValidScheme(String), isFileScheme(String) and isHttpxScheme(String) (details)
WorkerThread.start(paused): Merge RUNNING | ACTIVE (details)
build.xml: Fix typo in a target description (details)
AudioSink: Just pass a finte buffer size (KISS), add getLastBufferedPTS() to access the last buffered audio pts (details)
Clock/Platform: Add currentMillis() analogue to currentNanos(), returning current monotonic milliseconds **since start of this application** (details)
AudioSink/TimeFrame1: API doc: Add notes about integer stored milliseconds for PTS and duration, i.e. good for 24.855 days (details)
WorkerThread: Enhanced testing, added optional StateCallback for state changes, using bitfield state (earmarked to be used within GLMediaPlayerImpl etc)
Uri: Added `Uri tryUriOrFile(final String uri_s)` for convenience / usability, as well as getScheme(String), isValidScheme(String), isFileScheme(String) and isHttpxScheme(String)
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).
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<String> getSymbolForToolLibPath();
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"
PTS: Add toMillis(String), parsing string representation in '[H[H]:]m[m]:s[s][.S*]' using custom DateTimeFormatter to milliseconds, complementing millisToTimeStr(..)
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)
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