| 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..788854d042b544a11cfd300357e654490057245e 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) {
|
| + base::OnceCallback<void()> temp_callback;
|
| + // Call the callback if present, but don't hold a lock while doing so.
|
| + {
|
| + base::AutoLock guard(format_set_guard_);
|
| + format_is_set_ = true;
|
| + 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);
|
| }
|
|
|
| @@ -141,10 +153,14 @@ void MediaStreamAudioTrack::OnData(const media::AudioBus& audio_bus,
|
| }
|
| }
|
|
|
| +bool MediaStreamAudioTrack::format_is_set() {
|
| + base::AutoLock guard(format_set_guard_);
|
| + return format_is_set_;
|
| +}
|
| +
|
| void MediaStreamAudioTrack::getSettings(
|
| blink::WebMediaStreamTrack::Settings& settings) {
|
| - // TODO(hta): Extract the real value.
|
| - settings.deviceId = blink::WebString("audio device ID");
|
| + DCHECK(format_is_set());
|
| }
|
|
|
| } // namespace content
|
|
|