Ejemplo n.º 1
0
        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);
            };
        }