mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
Audio: Fixed crash in resampler when input contains no samples and no resampling needs to be done
This commit is contained in:
parent
6ea096b123
commit
682ac04a3e
1 changed files with 10 additions and 8 deletions
|
@ -80,15 +80,17 @@ uint32_t HermiteResampler::Resample(int16_t* in, uint32_t inSampleCount, int16_t
|
|||
_pendingSamples.clear();
|
||||
|
||||
if(_rateRatio == 1.0) {
|
||||
uint32_t count = std::min((uint32_t)maxOutSampleCount - outPos, inSampleCount * 2);
|
||||
memcpy(out+outPos, in, count * sizeof(int16_t));
|
||||
for(uint32_t i = count; i < inSampleCount * 2; i += 2) {
|
||||
_pendingSamples.push_back(in[i]);
|
||||
_pendingSamples.push_back(in[i + 1]);
|
||||
if(inSampleCount > 0) {
|
||||
uint32_t count = std::min((uint32_t)maxOutSampleCount - outPos, inSampleCount * 2);
|
||||
memcpy(out+outPos, in, count * sizeof(int16_t));
|
||||
for(uint32_t i = count; i < inSampleCount * 2; i += 2) {
|
||||
_pendingSamples.push_back(in[i]);
|
||||
_pendingSamples.push_back(in[i + 1]);
|
||||
}
|
||||
_left = in[inSampleCount * 2 - 2];
|
||||
_right = in[inSampleCount * 2 - 1];
|
||||
outPos += count;
|
||||
}
|
||||
_left = in[inSampleCount * 2 - 2];
|
||||
_right = in[inSampleCount * 2 - 1];
|
||||
outPos += count;
|
||||
} else {
|
||||
for(uint32_t i = 0; i < inSampleCount * 2; i += 2) {
|
||||
while(_fraction <= 1.0) {
|
||||
|
|
Loading…
Add table
Reference in a new issue