]> git.sesse.net Git - nageru/blobdiff - alsa_input.cpp
Fix a deadlock issue when shutting down ALSA cards.
[nageru] / alsa_input.cpp
index 22daf760b026cb8c27cd8b4604ab41488667f345..bfadacb142734cd746fd6a1788d7838fbeb0e8f4 100644 (file)
@@ -125,7 +125,11 @@ void ALSAInput::capture_thread_func()
 
                const int64_t prev_pts = frames_to_pts(num_frames_output);
                const int64_t pts = frames_to_pts(num_frames_output + frames);
-               audio_callback(buffer.get(), frames, audio_format, pts - prev_pts);
+               bool success;
+               do {
+                       if (should_quit) return;
+                       success = audio_callback(buffer.get(), frames, audio_format, pts - prev_pts);
+               } while (!success);
                num_frames_output += frames;
        }
 }