Skip to content

Commit a7363eb

Browse files
committed
mp3 decoder drops the last frames #1051
1 parent d8253f9 commit a7363eb

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/Audio.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
audio.cpp
44
55
Created on: Oct 28.2018 */char audioI2SVers[] ="\
6-
Version 3.3.0c ";
6+
Version 3.3.0d ";
77
/* Updated on: Jun 02.2025
88
99
Author: Wolle (schreibfaul1)
@@ -3317,6 +3317,7 @@ void Audio::processLocalFile() {
33173317
bytesAddedToBuffer = audiofile.read(InBuff.getWritePtr(), availableBytes);
33183318
if(bytesAddedToBuffer > 0) {byteCounter += bytesAddedToBuffer; InBuff.bytesWritten(bytesAddedToBuffer);}
33193319
if(m_audioDataSize && byteCounter >= m_audioDataSize){if(!m_f_allDataReceived) m_f_allDataReceived = true;}
3320+
if(!m_audioDataSize && byteCounter == m_fileSize){if(!m_f_allDataReceived) m_f_allDataReceived = true;}
33203321
// log_e("byteCounter %u >= m_audioDataSize %u, m_f_allDataReceived % i", byteCounter, m_audioDataSize, m_f_allDataReceived);
33213322

33223323
if(newFilePos) { // we have a new file position
@@ -3350,7 +3351,7 @@ void Audio::processLocalFile() {
33503351
m_f_running = false;
33513352
goto exit;
33523353
}
3353-
if(InBuff.bufferFilled() > maxFrameSize || (InBuff.bufferFilled() == m_fileSize)) { // at least one complete frame or the file is smaller
3354+
if(InBuff.bufferFilled() > maxFrameSize || (InBuff.bufferFilled() == m_fileSize) || m_f_allDataReceived) { // at least one complete frame or the file is smaller
33543355
InBuff.bytesWasRead(readAudioHeader(InBuff.getMaxAvailableBytes()));
33553356
}
33563357
if(m_controlCounter == 100){

0 commit comments

Comments
 (0)