Fix possible error when switching audio devices with PulseAudio

This commit is contained in:
Marcelo Fernandez 2018-11-25 14:57:31 -03:00
parent 95d604b9cd
commit b33464d1ae
1 changed files with 4 additions and 1 deletions

View File

@ -374,7 +374,7 @@ void AudioDriverPulseAudio::thread_func(void *p_udata) {
const void *ptr = ad->samples_out.ptr(); const void *ptr = ad->samples_out.ptr();
ret = pa_stream_write(ad->pa_str, (char *)ptr + write_ofs, bytes_to_write, NULL, 0LL, PA_SEEK_RELATIVE); ret = pa_stream_write(ad->pa_str, (char *)ptr + write_ofs, bytes_to_write, NULL, 0LL, PA_SEEK_RELATIVE);
if (ret != 0) { if (ret != 0) {
ERR_PRINT("pa_stream_write error"); ERR_PRINTS("PulseAudio: pa_stream_write error: " + String(pa_strerror(ret)));
} else { } else {
avail_bytes -= bytes_to_write; avail_bytes -= bytes_to_write;
write_ofs += bytes_to_write; write_ofs += bytes_to_write;
@ -401,6 +401,9 @@ void AudioDriverPulseAudio::thread_func(void *p_udata) {
break; break;
} }
} }
avail_bytes = 0;
write_ofs = 0;
} }
if (ad->pa_rec_str && pa_stream_get_state(ad->pa_rec_str) == PA_STREAM_READY) { if (ad->pa_rec_str && pa_stream_get_state(ad->pa_rec_str) == PA_STREAM_READY) {