From aafc8f1ceca74548efee557120f9ebbe20c22f8e Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 18 May 2014 21:41:15 -0700 Subject: [PATCH] Validate and report initial psmfplayer playMode. We only support play and pause, but they're the only ones I've seen. --- Core/HLE/scePsmf.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Core/HLE/scePsmf.cpp b/Core/HLE/scePsmf.cpp index 2b13f3b72e..ff6f2aef46 100644 --- a/Core/HLE/scePsmf.cpp +++ b/Core/HLE/scePsmf.cpp @@ -1282,6 +1282,25 @@ int scePsmfPlayerStart(u32 psmfPlayer, u32 psmfPlayerData, int initPts) return ERROR_PSMFPLAYER_INVALID_CONFIG; } + switch ((PsmfPlayerMode)(s32)playerData->playMode) { + case PSMF_PLAYER_MODE_FORWARD: + case PSMF_PLAYER_MODE_REWIND: + if (psmfplayer->playerVersion == PSMF_PLAYER_VERSION_BASIC) { + WARN_LOG_REPORT(ME, "scePsmfPlayerStart(%08x, %08x, %d): no EP data for FORWARD/REWIND", psmfPlayer, psmfPlayerData, initPts); + return ERROR_PSMFPLAYER_INVALID_PARAM; + } + WARN_LOG_REPORT(ME, "scePsmfPlayerStart(%08x, %08x, %d): unsupported playMode", psmfPlayer, psmfPlayerData, initPts); + break; + + case PSMF_PLAYER_MODE_PLAY: + case PSMF_PLAYER_MODE_PAUSE: + break; + + default: + WARN_LOG_REPORT(ME, "scePsmfPlayerStart(%08x, %08x, %d): unsupported playMode", psmfPlayer, psmfPlayerData, initPts); + break; + } + WARN_LOG(ME, "scePsmfPlayerStart(%08x, %08x, %d)", psmfPlayer, psmfPlayerData, initPts); psmfplayer->mediaengine->setVideoStream(playerData->videoStreamNum);