static ffmpeg() { var loadedLibraries = new Dictionary <string, IntPtr>(); GetOrLoadLibrary = (name, version) => { var key = $"{name}{version}"; if (loadedLibraries.TryGetValue(key, out var ptr)) { return(ptr); } ptr = LibraryLoader.LoadNativeLibraryUsingPlatformNamingConvention(abs_path, name, version); loadedLibraries.Add(key, ptr); return(ptr); }; CloseLibrary = (name, version) => { var key = $"{name}{version}"; bool ret = false; if (loadedLibraries.TryGetValue(key, out var ptr)) { ret = LibraryLoader.UnloadLibrary(ptr); loadedLibraries.Remove(key); } return(ret); }; }