Merge pull request #978 from sum2012/mpeg-fix1

sceMpegRingbufferPut fix (Handle  numPackets <= 0)
This commit is contained in:
Henrik Rydgård 2013-03-14 07:26:14 -07:00
commit c89786441a

View file

@ -1039,7 +1039,8 @@ void PostPutAction::run(MipsCall &call) {
u32 sceMpegRingbufferPut(u32 ringbufferAddr, u32 numPackets, u32 available)
{
DEBUG_LOG(HLE, "sceMpegRingbufferPut(%08x, %i, %i)", ringbufferAddr, numPackets, available);
if (numPackets < 0) {
numPackets = std::min(numPackets, available);
if (numPackets <= 0) {
ERROR_LOG(HLE, "sub-zero number of packets put");
return 0;
}
@ -1047,8 +1048,6 @@ u32 sceMpegRingbufferPut(u32 ringbufferAddr, u32 numPackets, u32 available)
SceMpegRingBuffer ringbuffer;
Memory::ReadStruct(ringbufferAddr, &ringbuffer);
numPackets = std::min(numPackets, available);
MpegContext *ctx = getMpegCtx(ringbuffer.mpeg);
if (!ctx) {
WARN_LOG(HLE, "sceMpegRingbufferPut(%08x, %i, %i): bad mpeg handle %08x", ringbufferAddr, numPackets, available, ringbuffer.mpeg);