humble-video-noarch/src/main/java/io/humble/ferry/JNILibraryLoader.java
@Deprecated
  public static void loadLibrary(String aLibraryName, Long aMajorVersion)
  {
    getInstance().loadLibrary0(aLibraryName, aMajorVersion);
  }
@Deprecated
  public static void loadLibrary(String aLibraryName, Long aMajorVersion)
  {
    getInstance().loadLibrary0(aLibraryName, aMajorVersion);
  }
@deprecated Use {@link JNILibrary} instead.

Attempts to find and load the given library, with the given version of the
library if version is asked for.
<p>
First, if we detect that we've already loaded the given library, we'll just
return rather than attempt a second load (which will fail on some OSes).
</p>
<p>
If we haven't already loaded this library, we will search in the path
defined by the property java.library.path for the library, creating
OS-dependent names, and using version strings. If we can't find it in that
property, we'll search through the OS-dependent shared-library
specification environment variable.
</p>
<p>
If we can't find a versioned library (and one was requested) but can find
an unversioned library, we'll use the unversioned library. But we will
first search all directories for a versioned library under the assumption
that if you asked for a version, you care more about meeting that
requirement than finding it in the first directory we run across.
</p>
<p>
If all that still fails, we'll fall back to the
{@link System#loadLibrary(String)} method (for example, if we cannot guess
a libtool-like convention for the OS we're on).
</p>
<p>
We assume a libtool-like library name for the shared library, but will
check for common variants on that name.
</p>
<p>
Hopefully an illustration will make this all clearer. Assume we're looking
for a library named "foo" with version 1, this method will search as
follows:
</p>
<p>
<table>
<tr>
<th>OS</th>
<th>Filenames searched for (in order)</th>
<th>Directories looked in (in order)</th>
</tr>
<tr>
<td>
On Windows:</td>
<td>
<ol>
<li>foo-1.dll</li>
<li>libfoo-1.dll</li>
<li>cygfoo-1.dll</li>
<li>foo.dll</li>
<li>libfoo.dll</li>
<li>cygfoo.dll</li>
</ol>
</td>
<td>
<ol>
<li>Every directory in the java property <b>java.library.path</b></li>
<li>Every directory in the environment variable <b>PATH</b></li>
</ol>
</td>
</tr>
<tr>
<td>
On Linux:</td>
<td>
<ol>
<li>libfoo.so.1</li>
<li>libfoo.so</li>
</ol>
</td>
<td>
<ol>
<li>Every directory in the java property <b>java.library.path</b></li>
<li>Every directory in the environment variable <b>LD_LIBRARY_PATH</b></li>
</ol>
</td>
</tr>
<tr>
<td>
On Apple OS-X:</td>
<td>
<ol>
<li>libfoo.1.dylib</li>
<li>libfoo.dylib</li>
</ol>
</td>
<td>
<ol>
<li>Every directory in the java property <b>java.library.path</b></li>
<li>Every directory in the environment variable <b>DYLD_LIBRARY_PATH</b></li>
</ol>
</td>
</tr>
</table>

@param aLibraryName
The name of the library, without any OS-dependent adornments like
"lib", ".so" or ".dll".
@param aMajorVersion
The major version of this library, or null if you want to take any
version.

@throws UnsatisfiedLinkError
If we cannot find the library after searching in all the
aforementioned locations.