From 92aa2400f6f2564ffbb50caa3de826917b33679c Mon Sep 17 00:00:00 2001 From: DYefremov Date: Tue, 20 Dec 2022 14:36:14 +0300 Subject: [PATCH] mpv module correction * fixed work with API ver. 2 --- app/tools/mpv.py | 45 +++++++++++++-------------------------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/app/tools/mpv.py b/app/tools/mpv.py index 16e4cd0f..6fc6eebc 100644 --- a/app/tools/mpv.py +++ b/app/tools/mpv.py @@ -16,17 +16,17 @@ # . # -from ctypes import * -import ctypes.util -import threading -import os -import sys -from warnings import warn -from functools import partial, wraps -from contextlib import contextmanager import collections +import ctypes.util +import os import re +import sys +import threading import traceback +from contextlib import contextmanager +from ctypes import * +from functools import partial, wraps +from warnings import warn if os.name == 'nt': dll = ctypes.util.find_library('mpv-1.dll') @@ -569,10 +569,13 @@ _mpv_free_node_contents = backend.mpv_free_node_contents backend.mpv_create.restype = MpvHandle _mpv_create = backend.mpv_create +_API_VER = _mpv_client_api_version()[0] + +_handle_func('mpv_destroy' if _API_VER > 1 else 'mpv_detach_destroy', [], None, errcheck=None) _handle_func('mpv_create_client', [c_char_p], MpvHandle, notnull_errcheck) _handle_func('mpv_client_name', [], c_char_p, errcheck=None) _handle_func('mpv_initialize', [], c_int, ec_errcheck) -_handle_func('mpv_detach_destroy', [], None, errcheck=None) + _handle_func('mpv_terminate_destroy', [], None, errcheck=None) _handle_func('mpv_load_config_file', [c_char_p], c_int, ec_errcheck) _handle_func('mpv_get_time_us', [], c_ulonglong, errcheck=None) @@ -608,28 +611,6 @@ _handle_func('mpv_get_wakeup_pipe', [], c_int, errcheck=None) _handle_func('mpv_stream_cb_add_ro', [c_char_p, c_void_p, StreamOpenFn], c_int, ec_errcheck) -# Disabled for compatibility with the old version of mpv!!! -# _handle_func('mpv_render_context_create', [MpvRenderCtxHandle, MpvHandle, POINTER(MpvRenderParam)], c_int, ec_errcheck, ctx=None) -# _handle_func('mpv_render_context_set_parameter', [MpvRenderParam], c_int, ec_errcheck, ctx=MpvRenderCtxHandle) -# _handle_func('mpv_render_context_get_info', [MpvRenderParam], c_int, ec_errcheck, ctx=MpvRenderCtxHandle) -# _handle_func('mpv_render_context_set_update_callback', [RenderUpdateFn, c_void_p], None, errcheck=None, ctx=MpvRenderCtxHandle) -# _handle_func('mpv_render_context_update', [], c_int64, errcheck=None, ctx=MpvRenderCtxHandle) -# _handle_func('mpv_render_context_render', [POINTER(MpvRenderParam)], c_int, ec_errcheck, ctx=MpvRenderCtxHandle) -# _handle_func('mpv_render_context_report_swap', [], None, errcheck=None, ctx=MpvRenderCtxHandle) -# _handle_func('mpv_render_context_free', [], None, errcheck=None, ctx=MpvRenderCtxHandle) - - -# Deprecated in v0.29.0 and may disappear eventually -if hasattr(backend, 'mpv_get_sub_api'): - _handle_func('mpv_get_sub_api', [MpvSubApi], c_void_p, notnull_errcheck, deprecated=True) - - _handle_gl_func('mpv_opengl_cb_set_update_callback', [OpenGlCbUpdateFn, c_void_p], deprecated=True) - _handle_gl_func('mpv_opengl_cb_init_gl', [c_char_p, OpenGlCbGetProcAddrFn, c_void_p], c_int, deprecated=True) - _handle_gl_func('mpv_opengl_cb_draw', [c_int, c_int, c_int], c_int, deprecated=True) - _handle_gl_func('mpv_opengl_cb_render', [c_int, c_int], c_int, deprecated=True) - _handle_gl_func('mpv_opengl_cb_report_flip', [c_ulonglong], c_int, deprecated=True) - _handle_gl_func('mpv_opengl_cb_uninit_gl', [], c_int, deprecated=True) - def _mpv_coax_proptype(value, proptype=str): """Intelligently coax the given python value into something that can be understood as a proptype property.""" @@ -934,7 +915,7 @@ class MPV(object): self._message_handlers[target](*args) if eid == MpvEventID.SHUTDOWN: - _mpv_detach_destroy(self._event_handle) + _mpv_destroy(self._event_handle) if _API_VER > 1 else _mpv_detach_destroy(self._event_handle) return except Exception as e: