void-packages/srcpkgs/vidcutter/patches/mpv-0.35-1.patch

388 lines
13 KiB
Diff

https://github.com/ozmartian/vidcutter/commit/1d88825feb5a73a50d019914ba9d0008562a58ce.patch
From 1d88825feb5a73a50d019914ba9d0008562a58ce Mon Sep 17 00:00:00 2001
From: Pete Alexandrou <pete@ozmartians.com>
Date: Tue, 22 Feb 2022 11:29:00 +1100
Subject: [PATCH] Patches to pympv to workaround opengl_cb deprecation from
libmpv
---
vidcutter/libs/pympv/client.pxd | 54 +-
vidcutter/libs/pympv/mpv.pyx | 192 +-
3 files changed, 21832 insertions(+), 24808 deletions(-)
diff --git a/vidcutter/libs/pympv/client.pxd b/vidcutter/libs/pympv/client.pxd
index befe219e..d9a8816f 100644
--- a/vidcutter/libs/pympv/client.pxd
+++ b/vidcutter/libs/pympv/client.pxd
@@ -112,9 +112,9 @@ cdef extern from "mpv/client.h":
int mpv_load_config_file(mpv_handle *ctx, const char *filename) nogil
- void mpv_suspend(mpv_handle *ctx) nogil
+ # void mpv_suspend(mpv_handle *ctx) nogil
- void mpv_resume(mpv_handle *ctx) nogil
+ # void mpv_resume(mpv_handle *ctx) nogil
int64_t mpv_get_time_us(mpv_handle *ctx) nogil
@@ -200,21 +200,21 @@ cdef extern from "mpv/client.h":
MPV_EVENT_START_FILE
MPV_EVENT_END_FILE
MPV_EVENT_FILE_LOADED
- MPV_EVENT_TRACKS_CHANGED
- MPV_EVENT_TRACK_SWITCHED
+ # MPV_EVENT_TRACKS_CHANGED
+ # MPV_EVENT_TRACK_SWITCHED
MPV_EVENT_IDLE
- MPV_EVENT_PAUSE
- MPV_EVENT_UNPAUSE
+ # MPV_EVENT_PAUSE
+ # MPV_EVENT_UNPAUSE
MPV_EVENT_TICK
- MPV_EVENT_SCRIPT_INPUT_DISPATCH
+ # MPV_EVENT_SCRIPT_INPUT_DISPATCH
MPV_EVENT_CLIENT_MESSAGE
MPV_EVENT_VIDEO_RECONFIG
MPV_EVENT_AUDIO_RECONFIG
- MPV_EVENT_METADATA_UPDATE
+ # MPV_EVENT_METADATA_UPDATE
MPV_EVENT_SEEK
MPV_EVENT_PLAYBACK_RESTART
MPV_EVENT_PROPERTY_CHANGE
- MPV_EVENT_CHAPTER_CHANGE
+ # MPV_EVENT_CHAPTER_CHANGE
const char *mpv_event_name(mpv_event_id event) nogil
@@ -249,9 +249,9 @@ cdef extern from "mpv/client.h":
int reason
int error
- cdef struct mpv_event_script_input_dispatch:
- int arg0
- const char *type
+ # cdef struct mpv_event_script_input_dispatch:
+ # int arg0
+ # const char *type
cdef struct mpv_event_client_message:
int num_args
@@ -282,27 +282,27 @@ cdef extern from "mpv/client.h":
void *mpv_get_sub_api(mpv_handle *ctx, mpv_sub_api sub_api) nogil
-cdef extern from "mpv/opengl_cb.h":
- struct mpv_opengl_cb_context:
- pass
+# cdef extern from "mpv/opengl_cb.h":
+# struct mpv_opengl_cb_context:
+# pass
- ctypedef void (*mpv_opengl_cb_update_fn)(void *cb_ctx) nogil
- ctypedef void *(*mpv_opengl_cb_get_proc_address_fn)(void *fn_ctx,
- const char *name) nogil
+# ctypedef void (*mpv_opengl_cb_update_fn)(void *cb_ctx) nogil
+# ctypedef void *(*mpv_opengl_cb_get_proc_address_fn)(void *fn_ctx,
+# const char *name) nogil
- void mpv_opengl_cb_set_update_callback(mpv_opengl_cb_context *ctx,
- mpv_opengl_cb_update_fn callback,
- void *callback_ctx) nogil
+# void mpv_opengl_cb_set_update_callback(mpv_opengl_cb_context *ctx,
+# mpv_opengl_cb_update_fn callback,
+# void *callback_ctx) nogil
- int mpv_opengl_cb_init_gl(mpv_opengl_cb_context *ctx, const char *exts,
- mpv_opengl_cb_get_proc_address_fn get_proc_address,
- void *get_proc_address_ctx) nogil
+# int mpv_opengl_cb_init_gl(mpv_opengl_cb_context *ctx, const char *exts,
+# mpv_opengl_cb_get_proc_address_fn get_proc_address,
+# void *get_proc_address_ctx) nogil
- int mpv_opengl_cb_draw(mpv_opengl_cb_context *ctx, int fbo, int w, int h) nogil
+# int mpv_opengl_cb_draw(mpv_opengl_cb_context *ctx, int fbo, int w, int h) nogil
- int mpv_opengl_cb_report_flip(mpv_opengl_cb_context *ctx, int64_t time) nogil
+# int mpv_opengl_cb_report_flip(mpv_opengl_cb_context *ctx, int64_t time) nogil
- int mpv_opengl_cb_uninit_gl(mpv_opengl_cb_context *ctx) nogil
+# int mpv_opengl_cb_uninit_gl(mpv_opengl_cb_context *ctx) nogil
cdef extern from "mpv/render.h":
diff --git a/vidcutter/libs/pympv/mpv.pyx b/vidcutter/libs/pympv/mpv.pyx
index 540ea649..8af2dcc7 100644
--- a/vidcutter/libs/pympv/mpv.pyx
+++ b/vidcutter/libs/pympv/mpv.pyx
@@ -30,8 +30,8 @@ from client cimport *
__version__ = "0.3.0"
__author__ = "Andre D"
-_REQUIRED_CAPI_MAJOR = 1
-_MIN_CAPI_MINOR = 9
+_REQUIRED_CAPI_MAJOR = 2
+_MIN_CAPI_MINOR = 0
cdef unsigned long _CAPI_VERSION
with nogil:
@@ -47,7 +47,7 @@ if _CAPI_MAJOR != _REQUIRED_CAPI_MAJOR or _CAPI_MINOR < _MIN_CAPI_MINOR:
)
cdef extern from "Python.h":
- void PyEval_InitThreads()
+ void Py_Initialize()
_is_py3 = sys.version_info >= (3,)
_strdec_err = "surrogateescape" if _is_py3 else "strict"
@@ -67,7 +67,7 @@ def _strenc(s):
# In python2, assume bytes and walk right through
return s
-PyEval_InitThreads()
+Py_Initialize()
class Errors:
"""Set of known error codes from MpvError and Event responses.
@@ -114,21 +114,21 @@ class Events:
start_file = MPV_EVENT_START_FILE
end_file = MPV_EVENT_END_FILE
file_loaded = MPV_EVENT_FILE_LOADED
- tracks_changed = MPV_EVENT_TRACKS_CHANGED
- tracks_switched = MPV_EVENT_TRACK_SWITCHED
+ # tracks_changed = MPV_EVENT_TRACKS_CHANGED
+ # tracks_switched = MPV_EVENT_TRACK_SWITCHED
idle = MPV_EVENT_IDLE
- pause = MPV_EVENT_PAUSE
- unpause = MPV_EVENT_UNPAUSE
+ # pause = MPV_EVENT_PAUSE
+ # unpause = MPV_EVENT_UNPAUSE
tick = MPV_EVENT_TICK
- script_input_dispatch = MPV_EVENT_SCRIPT_INPUT_DISPATCH
+ # script_input_dispatch = MPV_EVENT_SCRIPT_INPUT_DISPATCH
client_message = MPV_EVENT_CLIENT_MESSAGE
video_reconfig = MPV_EVENT_VIDEO_RECONFIG
audio_reconfig = MPV_EVENT_AUDIO_RECONFIG
- metadata_update = MPV_EVENT_METADATA_UPDATE
+ # metadata_update = MPV_EVENT_METADATA_UPDATE
seek = MPV_EVENT_SEEK
playback_restart = MPV_EVENT_PLAYBACK_RESTART
property_change = MPV_EVENT_PROPERTY_CHANGE
- chapter_change = MPV_EVENT_CHAPTER_CHANGE
+ # chapter_change = MPV_EVENT_CHAPTER_CHANGE
class LogLevels:
@@ -166,17 +166,17 @@ cdef class EndOfFileReached(object):
return self
-cdef class InputDispatch(object):
- """Data field for MPV_EVENT_SCRIPT_INPUT_DISPATCH events.
+# cdef class InputDispatch(object):
+# """Data field for MPV_EVENT_SCRIPT_INPUT_DISPATCH events.
- Wraps: mpv_event_script_input_dispatch
- """
- cdef public object arg0, type
+# Wraps: mpv_event_script_input_dispatch
+# """
+# cdef public object arg0, type
- cdef _init(self, mpv_event_script_input_dispatch* input):
- self.arg0 = input.arg0
- self.type = _strdec(input.type)
- return self
+# cdef _init(self, mpv_event_script_input_dispatch* input):
+# self.arg0 = input.arg0
+# self.type = _strdec(input.type)
+# return self
cdef class LogMessage(object):
@@ -276,8 +276,8 @@ cdef class Event(object):
return Property()._init(<mpv_event_property*>data)
elif self.id == MPV_EVENT_LOG_MESSAGE:
return LogMessage()._init(<mpv_event_log_message*>data)
- elif self.id == MPV_EVENT_SCRIPT_INPUT_DISPATCH:
- return InputDispatch()._init(<mpv_event_script_input_dispatch*>data)
+ # elif self.id == MPV_EVENT_SCRIPT_INPUT_DISPATCH:
+ # return InputDispatch()._init(<mpv_event_script_input_dispatch*>data)
elif self.id == MPV_EVENT_CLIENT_MESSAGE:
climsg = <mpv_event_client_message*>data
args = []
@@ -396,17 +396,17 @@ cdef class Context(object):
time = mpv_get_time_us(self._ctx)
return time
- def suspend(self):
- """Wraps: mpv_suspend"""
- assert self._ctx
- with nogil:
- mpv_suspend(self._ctx)
+ # def suspend(self):
+ # """Wraps: mpv_suspend"""
+ # assert self._ctx
+ # with nogil:
+ # mpv_suspend(self._ctx)
- def resume(self):
- """Wraps: mpv_resume"""
- assert self._ctx
- with nogil:
- mpv_resume(self._ctx)
+ # def resume(self):
+ # """Wraps: mpv_resume"""
+ # assert self._ctx
+ # with nogil:
+ # mpv_resume(self._ctx)
@_errors
def request_event(self, event, enable):
@@ -798,17 +798,17 @@ cdef class Context(object):
self.reply_userdata = None
self._ctx = NULL
- def opengl_cb_api(self):
- cdef void *cb
+ # def opengl_cb_api(self):
+ # cdef void *cb
- _ctx = mpv_get_sub_api(self._ctx, MPV_SUB_API_OPENGL_CB)
- if not _ctx:
- raise MPVError("OpenGL API not available")
+ # _ctx = mpv_get_sub_api(self._ctx, MPV_SUB_API_OPENGL_CB)
+ # if not _ctx:
+ # raise MPVError("OpenGL API not available")
- ctx = OpenGLContext()
- ctx._ctx = <mpv_opengl_cb_context*>_ctx
+ # ctx = OpenGLContext()
+ # ctx._ctx = <mpv_opengl_cb_context*>_ctx
- return ctx
+ # return ctx
def __dealloc__(self):
self.shutdown()
@@ -819,62 +819,62 @@ cdef void *_c_getprocaddress(void *ctx, const char *name) with gil:
cdef void _c_updatecb(void *ctx) with gil:
(<object>ctx)()
-cdef class OpenGLContext(object):
- cdef:
- mpv_opengl_cb_context *_ctx
- bint inited
- object update_cb
-
- def __init__(self):
- self.inited = False
- warnings.warn("OpenGLContext is deprecated, please switch to RenderContext", DeprecationWarning)
-
- def init_gl(self, exts, get_proc_address):
- exts = _strenc(exts) if exts is not None else None
- cdef char* extsc = NULL
- if exts is not None:
- extsc = exts
- with nogil:
- err = mpv_opengl_cb_init_gl(self._ctx, extsc, &_c_getprocaddress,
- <void *>get_proc_address)
- if err < 0:
- raise MPVError(err)
-
- self.inited = True
-
- def set_update_callback(self, cb):
- self.update_cb = cb
- with nogil:
- mpv_opengl_cb_set_update_callback(self._ctx, &_c_updatecb, <void *>cb)
-
- def draw(self, fbo, w, h):
- cdef:
- int fboc = fbo
- int wc = w
- int hc = h
- with nogil:
- err = mpv_opengl_cb_draw(self._ctx, fboc, wc, hc)
- if err < 0:
- raise MPVError(err)
-
- def report_flip(self, time):
- cdef int64_t ctime = time
- with nogil:
- err = mpv_opengl_cb_report_flip(self._ctx, ctime)
- if err < 0:
- raise MPVError(err)
-
- def uninit_gl(self):
- if not self.inited:
- return
- with nogil:
- err = mpv_opengl_cb_uninit_gl(self._ctx)
- if err < 0:
- raise MPVError(err)
- self.inited = False
-
- def __dealloc__(self):
- self.uninit_gl()
+# cdef class OpenGLContext(object):
+# cdef:
+# mpv_opengl_cb_context *_ctx
+# bint inited
+# object update_cb
+
+# def __init__(self):
+# self.inited = False
+# warnings.warn("OpenGLContext is deprecated, please switch to RenderContext", DeprecationWarning)
+
+# def init_gl(self, exts, get_proc_address):
+# exts = _strenc(exts) if exts is not None else None
+# cdef char* extsc = NULL
+# if exts is not None:
+# extsc = exts
+# with nogil:
+# err = mpv_opengl_cb_init_gl(self._ctx, extsc, &_c_getprocaddress,
+# <void *>get_proc_address)
+# if err < 0:
+# raise MPVError(err)
+
+# self.inited = True
+
+# def set_update_callback(self, cb):
+# self.update_cb = cb
+# with nogil:
+# mpv_opengl_cb_set_update_callback(self._ctx, &_c_updatecb, <void *>cb)
+
+# def draw(self, fbo, w, h):
+# cdef:
+# int fboc = fbo
+# int wc = w
+# int hc = h
+# with nogil:
+# err = mpv_opengl_cb_draw(self._ctx, fboc, wc, hc)
+# if err < 0:
+# raise MPVError(err)
+
+# def report_flip(self, time):
+# cdef int64_t ctime = time
+# with nogil:
+# err = mpv_opengl_cb_report_flip(self._ctx, ctime)
+# if err < 0:
+# raise MPVError(err)
+
+# def uninit_gl(self):
+# if not self.inited:
+# return
+# with nogil:
+# err = mpv_opengl_cb_uninit_gl(self._ctx)
+# if err < 0:
+# raise MPVError(err)
+# self.inited = False
+
+# def __dealloc__(self):
+# self.uninit_gl()
DEF MAX_RENDER_PARAMS = 32