Regression in [OUT] parameters handling
The libvlc_log_get_context is improperly wrapped in the latest bindings version: parameters marked as [OUT] are not properly parsed as such, as indicated by the generate.py -dc output, as well as the generated code. The current version
https://github.com/oaubert/python-vlc/blob/master/generated/3.0/vlc.py#L7305 states that the parameter signature is ( (1,), (1,), (1,), (2,), ), (3 in-parameters, 1 out parameter) while the previous version of the bindings (before the tree-sitter change) correctly gets ((1,), (2,), (2,), (2,),) : https://github.com/oaubert/python-vlc/blob/587d6263ba3176e158b6804f7457163ba1bed12c/generated/3.0/vlc.py#L5151
This is a regression, which also happens to other functions (e.g. libvlc_media_tracks_get, libvlc_media_slaves_get...) but sometimes is correct (e.g. libvlc_video_get_size, libvlc_video_get_cursor).
Is there a workaround or fix for this? I've got a small test framework that relies on libvlc_log_get_context to scrape debug info from some vlc modules that I've written. My python C binding knowledge is very limited so please assume I know nothing as far as that goes. Thanks
There is a manual workaround for now, by monkey-patching the vlc function after loading the vlc module
"""Gets log message debug infos (patched).
"""
f = _Cfunctions.get('libvlc_log_get_context', None) or \
_Cfunction('libvlc_log_get_context', ((1,), (2,), (2,), (2,),), None,
None, Log_ptr, ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_uint))
return f(ctx, module, file)
vlc.libvlc_log_get_context = libvlc_log_get_context
(waiting for some time to dedicate for properly fixing this, or some contribution for it)
@yanns1 could maybe have some ideas about it.
I can't help with a proper fix (sorry), but your workaround is great. Thanks.