Release 5.5.0
Also stops one benign libmpv message being logged as an error: `after creating texture: OpenGL error INVALID_ENUM` comes from the GL driver, arrives several times per playback start and per fullscreen toggle, and playback continues regardless. Hundreds of lines a session buried the errors that matter -- it is a debug line now. Verified end to end on the real display with an actual video playing: ten tab switches and four fullscreen toggles while frames were rendering, position advancing throughout, the render context intact, no crash, and an empty error log afterwards. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -281,13 +281,25 @@ class MpvRenderWidget(QOpenGLWidget):
|
||||
if value is not None:
|
||||
self.mpvBufferingChanged.emit(bool(value))
|
||||
|
||||
#: libmpv reports these at error level, but they are noise from the GL
|
||||
#: driver rather than a failure: playback continues and frames keep
|
||||
#: arriving. They were filling the error log with hundreds of lines per
|
||||
#: session, which buries the errors that do matter.
|
||||
_BENIGN_MPV_ERRORS = (
|
||||
"after creating texture: OpenGL error INVALID_ENUM",
|
||||
)
|
||||
|
||||
def _on_mpv_log(self, level: str, prefix: str, text: str) -> None:
|
||||
message = text.strip()
|
||||
if level in ("error", "fatal"):
|
||||
logger.error(f"mpv [{prefix}] {text.strip()}")
|
||||
if level == "error" and any(noise in message for noise in self._BENIGN_MPV_ERRORS):
|
||||
logger.debug(f"mpv [{prefix}] {message}")
|
||||
return
|
||||
logger.error(f"mpv [{prefix}] {message}")
|
||||
if "ytdl" in prefix or level == "fatal":
|
||||
self.mpvError.emit(text.strip())
|
||||
self.mpvError.emit(message)
|
||||
else:
|
||||
logger.debug(f"mpv [{prefix}] {text.strip()}")
|
||||
logger.debug(f"mpv [{prefix}] {message}")
|
||||
|
||||
# --------------------------------------------------------------- OpenGL
|
||||
|
||||
|
||||
Reference in New Issue
Block a user