fix: use exact seeking instead of keyframe-based seeking

mpv's "absolute" seek lands on the nearest keyframe before the target,
causing playback to start ~3s before the marker. Switch to
"absolute+exact" for both seek() and play_loop() so playback starts
at the precise requested time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-03 11:39:57 +02:00
parent d787871735
commit 3af6e05fb7
+2 -2
View File
@@ -2600,7 +2600,7 @@ class MpvWidget(QWidget):
if self._player.duration is None: if self._player.duration is None:
return return
try: try:
self._player.seek(t, "absolute") self._player.seek(t, "absolute", "exact")
except SystemError: except SystemError:
pass pass
@@ -2608,7 +2608,7 @@ class MpvWidget(QWidget):
self._player["ab-loop-a"] = a self._player["ab-loop-a"] = a
self._player["ab-loop-b"] = min(b, self._player.duration or b) self._player["ab-loop-b"] = min(b, self._player.duration or b)
if not resume: if not resume:
self._player.seek(a, "absolute") self._player.seek(a, "absolute", "exact")
self._player.pause = False self._player.pause = False
def update_loop_end(self, b: float): def update_loop_end(self, b: float):