debug: write mpv log to /tmp/8cut-mpv.log

This commit is contained in:
2026-04-06 20:56:14 +02:00
parent 939199717f
commit 7931a0e3db
+13 -8
View File
@@ -452,20 +452,25 @@ class MpvWidget(QOpenGLWidget):
def __init__(self):
super().__init__()
self.setMinimumSize(640, 360)
self._player = mpv.MPV(keep_open=True, pause=True, log_handler=self._log, loglevel="debug")
_log_file = open("/tmp/8cut-mpv.log", "w", buffering=1)
self._log_file = _log_file
def _log_handler(level, component, message):
_log_file.write(f"[mpv/{component}] {level}: {message}\n")
self._player = mpv.MPV(keep_open=True, pause=True, log_handler=_log_handler, loglevel="info")
self._render_ctx = None
@self._player.event_callback("file-loaded")
def _on_file_loaded(event):
QTimer.singleShot(0, self.file_loaded.emit)
@staticmethod
def _log(level, component, message):
print(f"[mpv/{component}] {level}: {message}", flush=True)
def _8cut_log(self, msg):
self._log_file.write(f"[8-cut] {msg}\n")
def initializeGL(self):
from PyQt6.QtGui import QOpenGLContext
print(f"[8-cut] initializeGL called, platform={QApplication.platformName()}", flush=True)
self._8cut_log(f"initializeGL called, platform={QApplication.platformName()}")
# Build the get_proc_address C callback using the live Qt OpenGL context.
# Must be created here (inside initializeGL) so QOpenGLContext.currentContext()
@@ -476,7 +481,7 @@ class MpvWidget(QOpenGLWidget):
def _get_proc_addr(_, name):
ctx = QOpenGLContext.currentContext()
if ctx is None:
print(f"[8-cut] get_proc_addr: no current context for {name}", flush=True)
self._8cut_log(f"get_proc_addr: no current context for {name}")
return 0
addr = ctx.getProcAddress(name)
return int(addr) if addr else 0
@@ -488,9 +493,9 @@ class MpvWidget(QOpenGLWidget):
self._player, "opengl",
opengl_init_params={"get_proc_address": self._get_proc_addr_fn},
)
print(f"[8-cut] MpvRenderContext created OK", flush=True)
self._8cut_log("MpvRenderContext created OK")
except Exception as e:
print(f"[8-cut] MpvRenderContext FAILED: {e}", flush=True)
self._8cut_log(f"MpvRenderContext FAILED: {e}")
return
self._render_ctx.update_cb = self._on_mpv_update