Skip to content

Commit

Permalink
audio: Fixed check for minimum audio stream put size.
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Oct 11, 2017
1 parent 0e495e8 commit 459e2b0
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/audio/SDL_audiocvt.c
Expand Up @@ -1356,7 +1356,7 @@ SDL_AudioStreamPut(SDL_AudioStream *stream, const void *buf, const Uint32 _bufle
Uint8 *workbuf;
Uint8 *resamplebuf = NULL;
int resamplebuflen = 0;
const int neededpaddingbytes = stream ? stream->resampler_padding_samples * sizeof (float) : 0;
int neededpaddingbytes;
int paddingbytes;

/* !!! FIXME: several converters can take advantage of SIMD, but only
Expand All @@ -1379,11 +1379,12 @@ SDL_AudioStreamPut(SDL_AudioStream *stream, const void *buf, const Uint32 _bufle
return 0; /* nothing to do. */
} else if ((buflen % stream->src_sample_frame_size) != 0) {
return SDL_SetError("Can't add partial sample frames");
} else if (buflen < (neededpaddingbytes * 2)) {
} else if (buflen < ((stream->resampler_padding_samples / stream->pre_resample_channels) * stream->src_sample_frame_size)) {
return SDL_SetError("Need to put a larger buffer");
}

/* no padding prepended on first run. */
neededpaddingbytes = stream->resampler_padding_samples * sizeof (float);
paddingbytes = stream->first_run ? 0 : neededpaddingbytes;
stream->first_run = SDL_FALSE;

Expand Down

0 comments on commit 459e2b0

Please sign in to comment.