mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Add __isPlayingStatus() check
This commit is contained in:
parent
a71039351f
commit
78f980e1c3
1 changed files with 26 additions and 2 deletions
|
@ -1051,6 +1051,13 @@ int scePsmfPlayerDelete(u32 psmfPlayer)
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool isPlayingStatus(u32 status) {
|
||||
if (status != PSMF_PLAYER_STATUS_PLAYING && status != PSMF_PLAYER_STATUS_PLAYING_FINISHED) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int scePsmfPlayerUpdate(u32 psmfPlayer)
|
||||
{
|
||||
PsmfPlayer *psmfplayer = getPsmfPlayer(psmfPlayer);
|
||||
|
@ -1059,15 +1066,20 @@ int scePsmfPlayerUpdate(u32 psmfPlayer)
|
|||
return ERROR_PSMF_NOT_FOUND;
|
||||
}
|
||||
|
||||
bool psmfplayerstatus = isPlayingStatus(psmfplayer->status);
|
||||
if (!psmfplayerstatus) {
|
||||
ERROR_LOG(ME, "scePsmfPlayerUpdate(%08x): psmf not playing", psmfPlayer);
|
||||
return ERROR_PSMF_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
DEBUG_LOG(ME, "scePsmfPlayerUpdate(%08x)", psmfPlayer);
|
||||
if (psmfplayer->psmfPlayerAvcAu.pts > 0) {
|
||||
if (psmfplayer->mediaengine->IsVideoEnd()) {
|
||||
INFO_LOG(ME, "video end reached");
|
||||
psmfplayer->psmfPlayerAvcAu.pts = -1;
|
||||
psmfplayer->psmfPlayerAvcAu.dts = -1;
|
||||
psmfplayer->status = PSMF_PLAYER_STATUS_PLAYING_FINISHED;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1088,6 +1100,12 @@ int scePsmfPlayerGetVideoData(u32 psmfPlayer, u32 videoDataAddr)
|
|||
return ERROR_PSMF_NOT_FOUND;
|
||||
}
|
||||
|
||||
bool psmfplayerstatus = isPlayingStatus(psmfplayer->status);
|
||||
if (!psmfplayerstatus) {
|
||||
ERROR_LOG(ME, "scePsmfPlayerGetVideoData(%08x): psmf not playing", psmfPlayer);
|
||||
return ERROR_PSMF_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
DEBUG_LOG(ME, "scePsmfPlayerGetVideoData(%08x, %08x)", psmfPlayer, videoDataAddr);
|
||||
if (Memory::IsValidAddress(videoDataAddr)) {
|
||||
int frameWidth = Memory::Read_U32(videoDataAddr);
|
||||
|
@ -1122,6 +1140,12 @@ int scePsmfPlayerGetAudioData(u32 psmfPlayer, u32 audioDataAddr)
|
|||
return ERROR_PSMF_NOT_FOUND;
|
||||
}
|
||||
|
||||
bool psmfplayerstatus = isPlayingStatus(psmfplayer->status);
|
||||
if (!psmfplayerstatus) {
|
||||
ERROR_LOG(ME, "scePsmfPlayerGetAudioData(%08x): psmf not playing", psmfPlayer);
|
||||
return ERROR_PSMF_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
DEBUG_LOG(ME, "scePsmfPlayerGetAudioData(%08x, %08x)", psmfPlayer, audioDataAddr);
|
||||
if (Memory::IsValidAddress(audioDataAddr)) {
|
||||
Memory::Memset(audioDataAddr, 0, audioSamplesBytes);
|
||||
|
|
Loading…
Add table
Reference in a new issue