Mercurial > molko
comparison src/libmlk-core/core/sys.c @ 380:31e2f6d35c34
core: fix sndfile distortion issue
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 07 Jan 2022 08:20:12 +0100 |
parents | 67c1c46af2c8 |
children | 8273c40a5691 |
comparison
equal
deleted
inserted
replaced
379:67c1c46af2c8 | 380:31e2f6d35c34 |
---|---|
296 stream->samplerate = info->samplerate; | 296 stream->samplerate = info->samplerate; |
297 stream->samplesz = info->frames * info->channels; | 297 stream->samplesz = info->frames * info->channels; |
298 stream->samples = alloc_array(stream->samplesz, sizeof (*stream->samples)); | 298 stream->samples = alloc_array(stream->samplesz, sizeof (*stream->samples)); |
299 stream->format = info->channels == 1 ? AL_FORMAT_MONO16 : AL_FORMAT_STEREO16; | 299 stream->format = info->channels == 1 ? AL_FORMAT_MONO16 : AL_FORMAT_STEREO16; |
300 | 300 |
301 sf_command(file, SFC_SET_SCALE_FLOAT_INT_READ, NULL, SF_TRUE); | |
302 | |
301 if (sf_read_short(file, stream->samples, stream->samplesz) != stream->samplesz) { | 303 if (sf_read_short(file, stream->samples, stream->samplesz) != stream->samplesz) { |
302 free(stream->samples); | 304 free(stream->samples); |
303 free(stream); | 305 free(stream); |
304 stream = NULL; | 306 stream = NULL; |
305 } | 307 } |
306 | 308 |
307 alGenBuffers(1, &stream->buffer); | 309 alGenBuffers(1, &stream->buffer); |
308 alBufferData(stream->buffer, stream->format, stream->samples, | 310 alBufferData(stream->buffer, stream->format, stream->samples, |
309 stream->samplesz * sizeof (ALushort), stream->samplerate); | 311 stream->samplesz * sizeof (*stream->samples), stream->samplerate); |
310 alGenSources(1, &stream->source); | 312 alGenSources(1, &stream->source); |
311 alSourcei(stream->source, AL_BUFFER, stream->buffer); | 313 alSourcei(stream->source, AL_BUFFER, stream->buffer); |
312 | 314 |
313 sf_close(file); | 315 sf_close(file); |
314 | 316 |