From 7c6fd04fa2ee3f55f05adbab7164d47b7c6f8081 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Fri, 11 Jan 2013 01:13:03 -0800 Subject: [PATCH] Clear the free packets when hitting end of video. --- Core/HLE/sceMpeg.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Core/HLE/sceMpeg.cpp b/Core/HLE/sceMpeg.cpp index 18f3927f16..978a228c24 100644 --- a/Core/HLE/sceMpeg.cpp +++ b/Core/HLE/sceMpeg.cpp @@ -1022,6 +1022,10 @@ int sceMpegGetAvcAu(u32 mpeg, u32 streamId, u32 auAddr, u32 attrAddr) if (!ctx->mediaengine->readVideoAu(&sceAu) || true) { // Only return this after the video already ended. if (ctx->endOfVideoReached) { + if (mpegRingbuffer.packetsFree < mpegRingbuffer.packets) { + mpegRingbuffer.packetsFree = mpegRingbuffer.packets; + Memory::WriteStruct(ctx->mpegRingbufferAddr, &mpegRingbuffer); + } result = PSP_ERROR_MPEG_NO_DATA; } if (ctx->mpegLastTimestamp < 0 || sceAu.pts >= ctx->mpegLastTimestamp) {