--- ffms-2.17-src/src/core/audiosource.cpp.orig 2011-10-09 18:11:09.000000000 +0200 +++ ffms-2.17-src/src/core/audiosource.cpp 2013-07-19 18:09:16.374589966 +0200 @@ -33,7 +33,7 @@ , CurrentFrame(NULL) , TrackNumber(Track) , SeekOffset(0) -, DecodingBuffer(AVCODEC_MAX_AUDIO_FRAME_SIZE * 10) +, DecodingBuffer(192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ * 10) , Index(Index) { if (Track < 0 || Track >= static_cast(Index.size())) @@ -172,7 +172,7 @@ uint8_t *Buf = &DecodingBuffer[0]; uint8_t *Data = Packet.data; while (Packet.size > 0) { - int TempOutputBufSize = AVCODEC_MAX_AUDIO_FRAME_SIZE * 10 - (Buf - &DecodingBuffer[0]); + int TempOutputBufSize = 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ * 10 - (Buf - &DecodingBuffer[0]); int Ret = avcodec_decode_audio3(CodecContext, (int16_t *)Buf, &TempOutputBufSize, &Packet); // Should only ever happen if the user chose to ignore decoding errors --- ffms-2.17-src/src/core/indexing.cpp.orig 2013-07-19 18:09:58.834588184 +0200 +++ ffms-2.17-src/src/core/indexing.cpp 2013-07-19 18:17:18.477903068 +0200 @@ -587,7 +587,7 @@ , ANC(0) , ANCPrivate(0) , SourceFile(Filename) -, DecodingBuffer(AVCODEC_MAX_AUDIO_FRAME_SIZE * 10) +, DecodingBuffer(192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ * 10) { FFMS_Index::CalculateFileSignature(Filename, &Filesize, Digest); } @@ -633,7 +633,7 @@ int64_t StartSample = Context.CurrentSample; int Read = 0; while (Packet->size > 0) { - int dbsize = AVCODEC_MAX_AUDIO_FRAME_SIZE*10; + int dbsize = 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ *10; int Ret = avcodec_decode_audio3(CodecContext, (int16_t *)&DecodingBuffer[0], &dbsize, Packet); if (Ret < 0) { if (ErrorHandling == FFMS_IEH_ABORT) {