mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-03 14:17:12 +00:00
Fix buffer size calculation when initializing output.
With the previous calculation, it was possible for the buffer to be a byte or two too small to hold all of the data.
This commit is contained in:
@@ -280,7 +280,9 @@ ESPEAK_NG_API espeak_ng_STATUS espeak_ng_InitializeOutput(espeak_ng_OUTPUT_MODE
|
||||
buffer_length = min_buffer_length;
|
||||
|
||||
// allocate 2 bytes per sample
|
||||
outbuf_size = (buffer_length * samplerate)/500;
|
||||
// Always round up to the nearest sample and the nearest byte.
|
||||
int millisamples = buffer_length * samplerate;
|
||||
outbuf_size = (millisamples + 1000 - millisamples % 1000) / 500;
|
||||
out_start = (unsigned char *)realloc(outbuf, outbuf_size);
|
||||
if (out_start == NULL)
|
||||
return ENOMEM;
|
||||
|
||||
Reference in New Issue
Block a user