From 00a379e9f043884b13b537cb1c945a67defb8a5c Mon Sep 17 00:00:00 2001 From: sum2012 Date: Tue, 16 Aug 2016 03:57:36 +0800 Subject: [PATCH] Psmf: Ignore last timestamp with old PsmfPlayer libs Until 5.50 Fix #6574 --- Core/HLE/scePsmf.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Core/HLE/scePsmf.cpp b/Core/HLE/scePsmf.cpp index 2198d1f21ae3..0b6e39e4058b 100644 --- a/Core/HLE/scePsmf.cpp +++ b/Core/HLE/scePsmf.cpp @@ -232,9 +232,14 @@ class PsmfPlayer { } bool HasReachedEnd() { - bool videoPtsEnd = (s64)psmfPlayerAvcAu.pts >= (s64)totalDurationTimestamp - VIDEO_FRAME_DURATION_TS; - // If we're out of video data and have no audio, it's over even if the pts isn't there yet. - return videoPtsEnd || (mediaengine->IsVideoEnd() && mediaengine->IsNoAudioData()); + if (psmfPlayerLibVersion >= 0x05050010) { + bool videoPtsEnd = (s64)psmfPlayerAvcAu.pts >= (s64)totalDurationTimestamp - VIDEO_FRAME_DURATION_TS; + // If we're out of video data and have no audio, it's over even if the pts isn't there yet. + return videoPtsEnd || (mediaengine->IsVideoEnd() && mediaengine->IsNoAudioData()); + } + else {// Older versions just read until the end of the file. + return (mediaengine->IsVideoEnd() && mediaengine->IsNoAudioData()); + } } u32 filehandle;