mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Merge pull request #2521 from oioitff/mpeg-fix
sceMpegGetAvcAu should return PSP_ERROR_MPEG_NO_DATA at first call before mpegAvcDecode
This commit is contained in:
commit
9628001f56
1 changed files with 6 additions and 1 deletions
|
@ -255,7 +255,7 @@ void AnalyzeMpeg(u32 buffer_addr, MpegContext *ctx) {
|
|||
ctx->mpegLastDate = convertTimestampToDate(ctx->mpegLastTimestamp);
|
||||
ctx->avc.avcDetailFrameWidth = (Memory::Read_U8(buffer_addr + 142) * 0x10);
|
||||
ctx->avc.avcDetailFrameHeight = (Memory::Read_U8(buffer_addr + 143) * 0x10);
|
||||
ctx->avc.avcDecodeResult = MPEG_AVC_DECODE_SUCCESS;
|
||||
ctx->avc.avcDecodeResult = 0;
|
||||
ctx->avc.avcFrameStatus = 0;
|
||||
|
||||
ctx->videoFrameCount = 0;
|
||||
|
@ -965,6 +965,11 @@ int sceMpegGetAvcAu(u32 mpeg, u32 streamId, u32 auAddr, u32 attrAddr)
|
|||
SceMpegAu sceAu;
|
||||
sceAu.read(auAddr);
|
||||
|
||||
if (ctx->avc.avcDecodeResult == 0) {
|
||||
// return PSP_ERROR_MPEG_NO_DATA at first call before mpegAvcDecode
|
||||
ctx->avc.avcDecodeResult = MPEG_AVC_DECODE_SUCCESS;
|
||||
return hleDelayResult(PSP_ERROR_MPEG_NO_DATA, "mpeg get avc", mpegDecodeErrorDelayMs);
|
||||
}
|
||||
if (mpegRingbuffer.packetsRead == 0 || mpegRingbuffer.packetsFree == mpegRingbuffer.packets) {
|
||||
DEBUG_LOG(HLE, "PSP_ERROR_MPEG_NO_DATA=sceMpegGetAvcAu(%08x, %08x, %08x, %08x)", mpeg, streamId, auAddr, attrAddr);
|
||||
sceAu.pts = -1;
|
||||
|
|
Loading…
Add table
Reference in a new issue