Bladeren bron

Add one padding frame to QOA buffer for short streams

(cherry picked from commit af5a81faf81d2cea996c071011a4bd5528764a64)
DeeJayLSP 1 week geleden
bovenliggende
commit
63b1d72795
1 gewijzigde bestanden met toevoegingen van 1 en 1 verwijderingen
  1. 1 1
      scene/resources/audio_stream_wav.cpp

+ 1 - 1
scene/resources/audio_stream_wav.cpp

@@ -616,7 +616,7 @@ Ref<AudioStreamPlayback> AudioStreamWAV::instantiate_playback() {
 		uint32_t ffp = qoa_decode_header(data.ptr(), data_bytes, &sample->qoa.desc);
 		uint32_t ffp = qoa_decode_header(data.ptr(), data_bytes, &sample->qoa.desc);
 		ERR_FAIL_COND_V(ffp != 8, Ref<AudioStreamPlaybackWAV>());
 		ERR_FAIL_COND_V(ffp != 8, Ref<AudioStreamPlaybackWAV>());
 		sample->qoa.frame_len = qoa_max_frame_size(&sample->qoa.desc);
 		sample->qoa.frame_len = qoa_max_frame_size(&sample->qoa.desc);
-		int samples_len = (sample->qoa.desc.samples > QOA_FRAME_LEN ? QOA_FRAME_LEN : sample->qoa.desc.samples);
+		int samples_len = sample->qoa.desc.samples > QOA_FRAME_LEN ? QOA_FRAME_LEN : (sample->qoa.desc.samples + 1);
 		int dec_len = sample->qoa.desc.channels * samples_len;
 		int dec_len = sample->qoa.desc.channels * samples_len;
 		sample->qoa.dec.resize(dec_len);
 		sample->qoa.dec.resize(dec_len);
 	}
 	}