01-29-2014, 05:23 AM
Okay, so the question is why does it return no more data when it still has packets.... hmm.
It seems like it's never even trying to decode the final frame of the video. It never gets the video end, and this is the only thing that triggers the packets to be flushed.
What if you add this to sceMpegGetAtracAu():
It's a hack but if it works, it'll confirm that handling this better somehow will fix it.
-[Unknown]
It seems like it's never even trying to decode the final frame of the video. It never gets the video end, and this is the only thing that triggers the packets to be flushed.
What if you add this to sceMpegGetAtracAu():
Code:
if (ctx->mediaengine->IsNoAudioData() && mpegRingbuffer.packetsFree + 4 >= mpegRingbuffer.packets) {
mpegRingbuffer.packetsFree = mpegRingbuffer.packets;
Memory::WriteStruct(ctx->mpegRingbufferAddr, &mpegRingbuffer);
}It's a hack but if it works, it'll confirm that handling this better somehow will fix it.
-[Unknown]

