mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-18 08:50:29 +02:00
Merge pull request #2401 from unknownbrackets/mpeg-minor
Eat cycles in sceMpegRingbufferAvailableSize() and cut down memcpy()
This commit is contained in:
commit
25e8041076
1 file changed
+13
-7
+13
-7
@@ -868,17 +868,23 @@ int sceMpegQueryAtracEsSize(u32 mpeg, u32 esSizeAddr, u32 outSizeAddr)
|
||||
|
||||
int sceMpegRingbufferAvailableSize(u32 ringbufferAddr)
|
||||
{
|
||||
if (!Memory::IsValidAddress(ringbufferAddr)) {
|
||||
PSPPointer<SceMpegRingBuffer> ringbuffer;
|
||||
ringbuffer = ringbufferAddr;
|
||||
|
||||
if (!ringbuffer.Valid()) {
|
||||
ERROR_LOG(HLE, "sceMpegRingbufferAvailableSize(%08x) - bad address", ringbufferAddr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
SceMpegRingBuffer ringbuffer;
|
||||
Memory::ReadStruct(ringbufferAddr, &ringbuffer);
|
||||
DEBUG_LOG(HLE, "%i=sceMpegRingbufferAvailableSize(%08x)", ringbuffer.packetsFree, ringbufferAddr);
|
||||
MpegContext *ctx = getMpegCtx(ringbuffer.mpeg);
|
||||
int result = std::min(ringbuffer.packetsFree, ctx->mediaengine->getRemainSize() / 2048);
|
||||
return ringbuffer.packetsFree;
|
||||
MpegContext *ctx = getMpegCtx(ringbuffer->mpeg);
|
||||
if (!ctx) {
|
||||
ERROR_LOG(HLE, "sceMpegRingbufferAvailableSize(%08x) - bad mpeg", ringbufferAddr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
hleEatCycles(2020);
|
||||
DEBUG_LOG(HLE, "%i=sceMpegRingbufferAvailableSize(%08x)", ringbuffer->packetsFree, ringbufferAddr);
|
||||
return ringbuffer->packetsFree;
|
||||
}
|
||||
|
||||
void PostPutAction::run(MipsCall &call) {
|
||||
|
||||
Reference in new issue
Block a user