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

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: review comments addressed 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
« no previous file with comments | « media/base/output_device_info.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
268 if (params.audio_renderer_sink().get()) {
DaleCurtis 2016/11/30 22:10:38 No need for .get().
269 media::OutputDeviceStatus device_status =
270 params.audio_renderer_sink()->GetOutputDeviceInfo().device_status();
271 UMA_HISTOGRAM_ENUMERATION("Media.WebMediaPlayer.SinkStatus", device_status,
272 OUTPUT_DEVICE_STATUS_MAX + 1);
273
274 if (device_status == OUTPUT_DEVICE_STATUS_OK) {
275 audio_source_provider_ =
276 new WebAudioSourceProviderImpl(params.audio_renderer_sink());
277 return;
278 }
279 MEDIA_LOG(ERROR, media_log_)
280 << "Output device error, falling back to null sink";
281 }
268 // Use the null sink if no valid sink was provided. 282 // Use the null sink if no valid sink was provided.
269 audio_source_provider_ = new WebAudioSourceProviderImpl( 283 audio_source_provider_ =
270 params.audio_renderer_sink().get() && 284 new WebAudioSourceProviderImpl(new NullAudioSink(media_task_runner_));
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 } 285 }
277 286
278 WebMediaPlayerImpl::~WebMediaPlayerImpl() { 287 WebMediaPlayerImpl::~WebMediaPlayerImpl() {
279 DCHECK(main_task_runner_->BelongsToCurrentThread()); 288 DCHECK(main_task_runner_->BelongsToCurrentThread());
280 289
281 suppress_destruction_errors_ = true; 290 suppress_destruction_errors_ = true;
282 if (delegate_) { 291 if (delegate_) {
283 delegate_->PlayerGone(delegate_id_); 292 delegate_->PlayerGone(delegate_id_);
284 delegate_->RemoveObserver(delegate_id_); 293 delegate_->RemoveObserver(delegate_id_);
285 } 294 }
(...skipping 1695 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 watch_time_reporter_->OnShown(); 1990 watch_time_reporter_->OnShown();
1982 } 1991 }
1983 1992
1984 bool WebMediaPlayerImpl::IsHidden() const { 1993 bool WebMediaPlayerImpl::IsHidden() const {
1985 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1994 DCHECK(main_task_runner_->BelongsToCurrentThread());
1986 1995
1987 return delegate_ && delegate_->IsHidden(); 1996 return delegate_ && delegate_->IsHidden();
1988 } 1997 }
1989 1998
1990 } // namespace media 1999 } // namespace media
OLDNEW
« no previous file with comments | « media/base/output_device_info.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698