Index: content/renderer/media/media_stream_audio_track.cc |
diff --git a/content/renderer/media/media_stream_audio_track.cc b/content/renderer/media/media_stream_audio_track.cc |
index cb64f8af18db392cdee6789560a9c5e0659857c3..4c84585d689c5160de661cf09042c327e04b2d80 100644 |
--- a/content/renderer/media/media_stream_audio_track.cc |
+++ b/content/renderer/media/media_stream_audio_track.cc |
@@ -118,6 +118,18 @@ void MediaStreamAudioTrack::Stop() { |
} |
void MediaStreamAudioTrack::OnSetFormat(const media::AudioParameters& params) { |
+ format_is_set_ = true; |
+ base::OnceCallback<void()> temp_callback; |
+ // Call the callback if present, but don't hold a lock while doing so. |
+ { |
+ base::AutoLock guard(format_set_callback_guard_); |
+ if (!format_set_callback_.is_null()) { |
+ temp_callback = std::move(format_set_callback_); |
+ } |
+ } |
+ if (!temp_callback.is_null()) { |
+ std::move(temp_callback).Run(); |
+ } |
deliverer_.OnSetFormat(params); |
} |
@@ -143,8 +155,7 @@ void MediaStreamAudioTrack::OnData(const media::AudioBus& audio_bus, |
void MediaStreamAudioTrack::getSettings( |
blink::WebMediaStreamTrack::Settings& settings) { |
- // TODO(hta): Extract the real value. |
- settings.deviceId = blink::WebString("audio device ID"); |
+ DCHECK(format_is_set_); |
Guido Urdaneta
2017/04/06 13:18:57
Does format_is_set_ need to be protected by the lo
hta - Chromium
2017/04/06 13:57:51
I put it on protection; not sure it's required for
Guido Urdaneta
2017/04/06 14:01:05
You solved it in a nicer way :)
|
} |
} // namespace content |