]> git.sesse.net Git - nageru/blobdiff - mixer.cpp
Fix a deadlock issue when shutting down ALSA cards.
[nageru] / mixer.cpp
index 9eed47ea8f33414f97e6ec3482f164b7c99da5be..38578f90ea7b85609531a63d5bc1bc3806a983b7 100644 (file)
--- a/mixer.cpp
+++ b/mixer.cpp
@@ -391,7 +391,10 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
                fprintf(stderr, "Card %d dropped %d frame(s) (before timecode 0x%04x), inserting silence.\n",
                        card_index, dropped_frames, timecode);
 
-               audio_mixer.add_silence(device, silence_samples, dropped_frames, frame_length);
+               bool success;
+               do {
+                       success = audio_mixer.add_silence(device, silence_samples, dropped_frames, frame_length);
+               } while (!success);
        }
 
        audio_mixer.add_audio(device, audio_frame.data + audio_offset, num_samples, audio_format, frame_length);