if (fh->thresh) {
if (fh->silence_hits) {
- fh->silence_hits = fh->samplerate * fh->silence_hits;
+ fh->silence_hits = fh->samplerate * fh->silence_hits / read_codec->implementation->samples_per_frame;
} else {
- fh->silence_hits = fh->samplerate * 3;
+ fh->silence_hits = fh->samplerate * 3 / read_codec->implementation->samples_per_frame;
}
org_silence_hits = fh->silence_hits;
}
score = (uint32_t)(energy / samples);
if (score < fh->thresh) {
- fh->silence_hits -= fh->samplerate;
- if (fh->silence_hits <= 0) {
+ if (!--fh->silence_hits) {
break;
}
} else {