Commit 3a0261fd authored by Patrice Mandin's avatar Patrice Mandin

clear convert.buf before filling it

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401035
parent 87be6195
...@@ -49,19 +49,29 @@ cookie_stfa_t *SDL_MintAudio_stfa; ...@@ -49,19 +49,29 @@ cookie_stfa_t *SDL_MintAudio_stfa;
void SDL_MintAudio_Callback(void) void SDL_MintAudio_Callback(void)
{ {
Uint8 *buffer; Uint8 *buffer;
SDL_AudioDevice *audio = SDL_MintAudio_device;
buffer = SDL_MintAudio_audiobuf[SDL_MintAudio_numbuf]; buffer = SDL_MintAudio_audiobuf[SDL_MintAudio_numbuf];
memset(buffer, SDL_MintAudio_device->spec.silence, SDL_MintAudio_device->spec.size); memset(buffer, audio->spec.silence, audio->spec.size);
if ( ! SDL_MintAudio_device->paused ) { if (audio->paused)
if ( SDL_MintAudio_device->convert.needed ) { return;
SDL_MintAudio_device->spec.callback(SDL_MintAudio_device->spec.userdata,
(Uint8 *)SDL_MintAudio_device->convert.buf,SDL_MintAudio_device->convert.len); if (audio->convert.needed) {
SDL_ConvertAudio(&SDL_MintAudio_device->convert); int silence;
memcpy(buffer, SDL_MintAudio_device->convert.buf, SDL_MintAudio_device->convert.len_cvt);
if ( audio->convert.src_format == AUDIO_U8 ) {
silence = 0x80;
} else { } else {
SDL_MintAudio_device->spec.callback(SDL_MintAudio_device->spec.userdata, buffer, SDL_MintAudio_device->spec.size); silence = 0;
} }
memset(audio->convert.buf, silence, audio->convert.len);
audio->spec.callback(audio->spec.userdata,
(Uint8 *)audio->convert.buf,audio->convert.len);
SDL_ConvertAudio(&audio->convert);
memcpy(buffer, audio->convert.buf, audio->convert.len_cvt);
} else {
audio->spec.callback(audio->spec.userdata, buffer, audio->spec.size);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment