Index: media/audio/win/audio_low_latency_output_win.cc |
diff --git a/media/audio/win/audio_low_latency_output_win.cc b/media/audio/win/audio_low_latency_output_win.cc |
index 36c198ac62f47568c0fb62f45776f48210adb108..33450a3f23ca17ce1c23cdac0fdbd5ca486ab236 100644 |
--- a/media/audio/win/audio_low_latency_output_win.cc |
+++ b/media/audio/win/audio_low_latency_output_win.cc |
@@ -281,6 +281,12 @@ |
this, "wasapi_render_thread", |
base::SimpleThread::Options(base::ThreadPriority::REALTIME_AUDIO))); |
render_thread_->Start(); |
+ if (!render_thread_->HasBeenStarted()) { |
+ LOG(ERROR) << "Failed to start WASAPI render thread."; |
+ StopThread(); |
+ callback->OnError(this); |
+ return; |
+ } |
// Start streaming data between the endpoint buffer and the audio engine. |
HRESULT hr = audio_client_->Start(); |
@@ -628,9 +634,11 @@ |
void WASAPIAudioOutputStream::StopThread() { |
if (render_thread_) { |
- // Wait until the thread completes and perform cleanup. |
- SetEvent(stop_render_event_.Get()); |
- render_thread_->Join(); |
+ if (render_thread_->HasBeenStarted()) { |
+ // Wait until the thread completes and perform cleanup. |
+ SetEvent(stop_render_event_.Get()); |
+ render_thread_->Join(); |
+ } |
render_thread_.reset(); |