From 5914d884dac1b4ed2990cfb94e1683895c435d85 Mon Sep 17 00:00:00 2001 From: et0h Date: Sat, 6 Mar 2021 00:10:47 +0000 Subject: [PATCH] Fix for timeout on mpv eof --- syncplay/client.py | 11 ++++------- syncplay/players/mpv.py | 11 +++++------ syncplay/resources/syncplayintf.lua | 4 +--- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index 4e1caf9..ff2b84b 100755 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -500,8 +500,10 @@ class SyncplayClient(object): return True return self._globalPaused - def eofReportedByPlayer(self, filepath): - self.playlist.eofReportedByPlayer(filepath) + def eofReportedByPlayer(self): + if self.playlist.notJustChangedPlaylist(): + self.ui.showDebugMessage("Fixing file duration to allow for playlist advancement") + self.userlist.currentUser.file["duration"] = self._playerPosition def updateFile(self, filename, duration, path): self.lastUpdatedFileTime = time.time() @@ -1966,11 +1968,6 @@ class SyncplayPlaylist(): secondsSinceLastChange = time.time() - self._lastPlaylistIndexChange return secondsSinceLastChange > constants.PLAYLIST_LOAD_NEXT_FILE_TIME_FROM_END_THRESHOLD - def eofReportedByPlayer(self, filepath): - if self.notJustChangedPlaylist(): - self._ui.showDebugMessage("Advancing to next item in playlist due to media player EOF report: {}".format(filepath)) - self.loadNextFileInPlaylist() - @needsSharedPlaylistsEnabled def loadNextFileInPlaylist(self): if self._notPlayingCurrentIndex(): diff --git a/syncplay/players/mpv.py b/syncplay/players/mpv.py index 6c3fd42..a5cd06d 100755 --- a/syncplay/players/mpv.py +++ b/syncplay/players/mpv.py @@ -213,8 +213,8 @@ class MpvPlayer(BasePlayer): else: return self._position - def eofDetected(self, path): - self._client.eofReportedByPlayer(path) + def eofDetected(self): + self._client.eofReportedByPlayer() def _storePosition(self, value): if value is None: @@ -423,14 +423,13 @@ class MpvPlayer(BasePlayer): def _handleUnknownLine(self, line): self.mpvErrorCheck(line) - if "" in line: - line = line[5:-6] - self.eofDetected(line) - if "" in line: line = line.replace(constants.MPV_INPUT_BACKSLASH_SUBSTITUTE_CHARACTER, "\\") self._listener.sendChat(line[6:-7]) + if "" in line: + self.eofDetected() + if "", "<").replace("=", "<").replace(", ", "<").split("<") paused_update = update_string[2] diff --git a/syncplay/resources/syncplayintf.lua b/syncplay/resources/syncplayintf.lua index 01eae25..081cc47 100644 --- a/syncplay/resources/syncplayintf.lua +++ b/syncplay/resources/syncplayintf.lua @@ -297,9 +297,7 @@ chat_timer=mp.add_periodic_timer(TICK_INTERVAL, chat_update) mp.observe_property('eof-reached', 'bool', function(e) if mp.get_property_native("eof-reached") == true then - line = mp.get_property_native("path") - line = line.gsub(line,"\\", "\\\\") - mp.command('print-text "' .. line .. '"') + mp.command('print-text ""') end end)