Mpeg: Return errors when no audio is available.

Before, we were only returning an error once, in an effort to log only
once.  This meant sometimes games would not realize they needed to add
packets.

Un-reverted from e866d83.  No longer breaks Patapon with other mpeg fixes.
This commit is contained in:
Unknown W. Brackets 2016-09-24 17:54:40 -07:00
parent 209500ac0e
commit f70f05668f

View File

@ -1660,12 +1660,18 @@ static int sceMpegGetAtracAu(u32 mpeg, u32 streamId, u32 auAddr, u32 attrAddr)
if (ctx->mediaengine->IsVideoEnd()) {
INFO_LOG(ME, "video end reach. pts: %i dts: %i", (int)atracAu.pts, (int)ctx->mediaengine->getLastTimeStamp());
ringbuffer->packetsAvail = 0;
// TODO: Is this correct?
if (!ctx->mediaengine->IsNoAudioData()) {
WARN_LOG_REPORT(ME, "Video end without audio end, potentially skipping some audio?");
}
result = ERROR_MPEG_NO_DATA;
}
if (ctx->atracRegistered && ctx->mediaengine->IsNoAudioData() && !ctx->endOfAudioReached) {
WARN_LOG(ME, "Audio end reach. pts: %i dts: %i", (int)atracAu.pts, (int)ctx->mediaengine->getLastTimeStamp());
ctx->endOfAudioReached = true;
}
if (ctx->mediaengine->IsNoAudioData()) {
result = ERROR_MPEG_NO_DATA;
}