Skip to content

Commit 7f245c9

Browse files
authored
fix: ffi initialization (#120)
1 parent 87f73a8 commit 7f245c9

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

livekit-rtc/livekit/rtc/_ffi_client.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,11 @@ def get_ffi_lib_path():
5353

5454

5555
ffi_lib = ctypes.CDLL(get_ffi_lib_path())
56+
ffi_cb_fnc = ctypes.CFUNCTYPE(None, ctypes.POINTER(ctypes.c_uint8), ctypes.c_size_t)
5657

5758
# C function types
59+
ffi_lib.livekit_ffi_initialize.argtypes = [ffi_cb_fnc, ctypes.c_bool]
60+
5861
ffi_lib.livekit_ffi_request.argtypes = [
5962
ctypes.POINTER(ctypes.c_ubyte),
6063
ctypes.c_size_t,
@@ -116,7 +119,7 @@ def unsubscribe(self, queue: Queue[T]) -> None:
116119
break
117120

118121

119-
@ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.POINTER(ctypes.c_uint8), ctypes.c_size_t)
122+
@ctypes.CFUNCTYPE(None, ctypes.POINTER(ctypes.c_uint8), ctypes.c_size_t)
120123
def ffi_event_callback(
121124
data_ptr: ctypes.POINTER(ctypes.c_uint8), # type: ignore
122125
data_len: ctypes.c_size_t,
@@ -162,12 +165,7 @@ def __init__(self) -> None:
162165
self._lock = threading.RLock()
163166
self._queue = FfiQueue[proto_ffi.FfiEvent]()
164167

165-
# initialize request
166-
req = proto_ffi.FfiRequest()
167-
cb_callback = int(ctypes.cast(ffi_event_callback, ctypes.c_void_p).value) # type: ignore
168-
req.initialize.event_callback_ptr = cb_callback
169-
req.initialize.capture_logs = True # capture logs on Python
170-
self.request(req)
168+
ffi_lib.livekit_ffi_initialize(ffi_event_callback, True)
171169

172170
@property
173171
def queue(self) -> FfiQueue[proto_ffi.FfiEvent]:

0 commit comments

Comments
 (0)