From dafb15d96eb209ee16ec4708fa7b5b8b5c8be16e Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Fri, 1 Jan 2016 11:33:48 -0800 Subject: [PATCH] Atrac: Clamp packets to valid data. In case we don't have full valid data yet, return only the part of the data that is valid. This allows FFmpeg to decode data it already has, as necessary. --- Core/HLE/sceAtrac.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/HLE/sceAtrac.cpp b/Core/HLE/sceAtrac.cpp index 007c05e3b2..484def0b2d 100644 --- a/Core/HLE/sceAtrac.cpp +++ b/Core/HLE/sceAtrac.cpp @@ -428,12 +428,12 @@ struct Atrac { bool FillPacket() { u32 off = getFileOffsetBySample(currentSample); - if (off < first.filesize) { + if (off < first.size) { #ifdef USE_FFMPEG av_init_packet(packet); #endif // USE_FFMPEG packet->data = data_buf + off; - packet->size = atracBytesPerFrame; + packet->size = std::min((u32)atracBytesPerFrame, first.size - off); packet->pos = off; return true;