mirror of
https://github.com/facefusion/facefusion.git
synced 2026-10-13 17:17:30 +02:00
introduce opus and vpx to libraries (#1091)
This commit is contained in:
1 parent
9a390bd5bc
commit
430b16ce56
2 files changed
+97
No files matched your search
@@ -0,0 +1,44 @@
|
|||||||
|
import ctypes
|
||||||
|
from functools import lru_cache
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from facefusion.common_helper import is_linux, is_macos, is_windows
|
||||||
|
|
||||||
|
|
||||||
|
def resolve_library_file() -> Optional[str]:
|
||||||
|
if is_linux():
|
||||||
|
return 'libopus.so.0'
|
||||||
|
if is_macos():
|
||||||
|
return 'libopus.dylib'
|
||||||
|
if is_windows():
|
||||||
|
return 'opus.dll'
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache
|
||||||
|
def create_static_library() -> Optional[ctypes.CDLL]:
|
||||||
|
library_file = resolve_library_file()
|
||||||
|
|
||||||
|
if library_file:
|
||||||
|
library = ctypes.CDLL(library_file)
|
||||||
|
|
||||||
|
if library:
|
||||||
|
return init_ctypes(library)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def init_ctypes(library : ctypes.CDLL) -> ctypes.CDLL:
|
||||||
|
library.opus_encoder_create.argtypes = [ ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.POINTER(ctypes.c_int) ]
|
||||||
|
library.opus_encoder_create.restype = ctypes.c_void_p
|
||||||
|
|
||||||
|
library.opus_encode_float.argtypes = [ ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int, ctypes.c_char_p, ctypes.c_int ]
|
||||||
|
library.opus_encode_float.restype = ctypes.c_int
|
||||||
|
|
||||||
|
library.opus_encoder_destroy.argtypes = [ ctypes.c_void_p ]
|
||||||
|
library.opus_encoder_destroy.restype = None
|
||||||
|
|
||||||
|
library.opus_encoder_ctl.argtypes = [ ctypes.c_void_p, ctypes.c_int, ctypes.c_int ]
|
||||||
|
library.opus_encoder_ctl.restype = ctypes.c_int
|
||||||
|
|
||||||
|
return library
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import ctypes
|
||||||
|
from functools import lru_cache
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from facefusion.common_helper import is_linux, is_macos, is_windows
|
||||||
|
|
||||||
|
|
||||||
|
def resolve_library_file() -> Optional[str]:
|
||||||
|
if is_linux():
|
||||||
|
return 'libvpx.so'
|
||||||
|
if is_macos():
|
||||||
|
return 'libvpx.dylib'
|
||||||
|
if is_windows():
|
||||||
|
return 'vpx.dll'
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache
|
||||||
|
def create_static_library() -> Optional[ctypes.CDLL]:
|
||||||
|
library_file = resolve_library_file()
|
||||||
|
|
||||||
|
if library_file:
|
||||||
|
library = ctypes.CDLL(library_file)
|
||||||
|
|
||||||
|
if library:
|
||||||
|
return init_ctypes(library)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def init_ctypes(library : ctypes.CDLL) -> ctypes.CDLL:
|
||||||
|
library.vpx_codec_enc_config_default.argtypes = [ ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint ]
|
||||||
|
library.vpx_codec_enc_config_default.restype = ctypes.c_int
|
||||||
|
|
||||||
|
library.vpx_codec_enc_init_ver.argtypes = [ ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_long, ctypes.c_int ]
|
||||||
|
library.vpx_codec_enc_init_ver.restype = ctypes.c_int
|
||||||
|
|
||||||
|
library.vpx_codec_encode.argtypes = [ ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int64, ctypes.c_ulong, ctypes.c_long, ctypes.c_ulong ]
|
||||||
|
library.vpx_codec_encode.restype = ctypes.c_int
|
||||||
|
|
||||||
|
library.vpx_codec_get_cx_data.argtypes = [ ctypes.c_void_p, ctypes.POINTER(ctypes.c_void_p) ]
|
||||||
|
library.vpx_codec_get_cx_data.restype = ctypes.c_void_p
|
||||||
|
|
||||||
|
library.vpx_codec_destroy.argtypes = [ ctypes.c_void_p ]
|
||||||
|
library.vpx_codec_destroy.restype = ctypes.c_int
|
||||||
|
|
||||||
|
library.vpx_img_wrap.argtypes = [ ctypes.c_void_p, ctypes.c_int, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint, ctypes.c_void_p ]
|
||||||
|
library.vpx_img_wrap.restype = ctypes.c_void_p
|
||||||
|
|
||||||
|
library.vpx_codec_control_.argtypes = [ ctypes.c_void_p, ctypes.c_int, ctypes.c_int ]
|
||||||
|
library.vpx_codec_control_.restype = ctypes.c_int
|
||||||
|
|
||||||
|
return library
|
||||||
Reference in new issue
Block a user