Fix crash for invalid mpeg header.

This commit is contained in:
oioitff
2013-06-05 15:46:04 +08:00
parent a26b48fc0b
commit 156c4ca78a
2 changed files with 14 additions and 8 deletions

View File

@@ -257,18 +257,17 @@ void AnalyzeMpeg(u32 buffer_addr, MpegContext *ctx) {
ctx->avc.avcDecodeResult = MPEG_AVC_DECODE_SUCCESS;
ctx->avc.avcFrameStatus = 0;
//if (!isCurrentMpegAnalyzed) {
//SceMpegRingBuffer ringbuffer;
//InitRingbuffer(&ringbuffer, 0, 0, 0, 0, 0);
// ????
//Memory::WriteStruct(ctx->mpegRingbufferAddr, &ringbuffer);
//}
ctx->videoFrameCount = 0;
ctx->audioFrameCount = 0;
ctx->endOfAudioReached = false;
ctx->endOfVideoReached = false;
if (ctx->mpegMagic != PSMF_MAGIC || ctx->mpegVersion < 0 ||
(ctx->mpegOffset & 2047) != 0 || ctx->mpegOffset == 0) {
// mpeg header is invalid!
return;
}
if (ctx->mediaengine && (ctx->mpegStreamSize > 0) && !ctx->isAnalyzed) {
// init mediaEngine
ctx->mediaengine->loadStream(Memory::GetPointer(buffer_addr), ctx->mpegOffset, ctx->mpegOffset + ctx->mpegStreamSize);