Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: media/blink/webmediaplayer_impl.cc

Issue 2533443002: fallback to null sink in WebAudioSourceProvider::Initialize() + UMA stats for device status (Closed)
Patch Set: content unittest fix Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/blink/webmediaplayer_impl.h" 5 #include "media/blink/webmediaplayer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <string> 10 #include <string>
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 delegate_id_ = delegate_->AddObserver(this); 257 delegate_id_ = delegate_->AddObserver(this);
258 258
259 media_log_->AddEvent( 259 media_log_->AddEvent(
260 media_log_->CreateEvent(MediaLogEvent::WEBMEDIAPLAYER_CREATED)); 260 media_log_->CreateEvent(MediaLogEvent::WEBMEDIAPLAYER_CREATED));
261 261
262 if (params.initial_cdm()) 262 if (params.initial_cdm())
263 SetCdm(params.initial_cdm()); 263 SetCdm(params.initial_cdm());
264 264
265 // TODO(xhwang): When we use an external Renderer, many methods won't work, 265 // TODO(xhwang): When we use an external Renderer, many methods won't work,
266 // e.g. GetCurrentFrameFromCompositor(). See http://crbug.com/434861 266 // e.g. GetCurrentFrameFromCompositor(). See http://crbug.com/434861
267 267 audio_source_provider_ =
268 // Use the null sink if no valid sink was provided. 268 new WebAudioSourceProviderImpl(params.audio_renderer_sink(), media_log_);
269 audio_source_provider_ = new WebAudioSourceProviderImpl(
270 params.audio_renderer_sink().get() &&
271 params.audio_renderer_sink()
272 ->GetOutputDeviceInfo()
273 .device_status() == OUTPUT_DEVICE_STATUS_OK
274 ? params.audio_renderer_sink()
275 : new NullAudioSink(media_task_runner_));
276 } 269 }
277 270
278 WebMediaPlayerImpl::~WebMediaPlayerImpl() { 271 WebMediaPlayerImpl::~WebMediaPlayerImpl() {
279 DCHECK(main_task_runner_->BelongsToCurrentThread()); 272 DCHECK(main_task_runner_->BelongsToCurrentThread());
280 273
281 suppress_destruction_errors_ = true; 274 suppress_destruction_errors_ = true;
282 if (delegate_) { 275 if (delegate_) {
283 delegate_->PlayerGone(delegate_id_); 276 delegate_->PlayerGone(delegate_id_);
284 delegate_->RemoveObserver(delegate_id_); 277 delegate_->RemoveObserver(delegate_id_);
285 } 278 }
(...skipping 1695 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 watch_time_reporter_->OnShown(); 1974 watch_time_reporter_->OnShown();
1982 } 1975 }
1983 1976
1984 bool WebMediaPlayerImpl::IsHidden() const { 1977 bool WebMediaPlayerImpl::IsHidden() const {
1985 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1978 DCHECK(main_task_runner_->BelongsToCurrentThread());
1986 1979
1987 return delegate_ && delegate_->IsHidden(); 1980 return delegate_ && delegate_->IsHidden();
1988 } 1981 }
1989 1982
1990 } // namespace media 1983 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698