Index: media/blink/webmediaplayer_impl.cc |
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc |
index cd6091ddd3ccfcfc26d03a634d700428c75ac598..95f8f2ac84ce06f429ec3874e264a42acbbf8901 100644 |
--- a/media/blink/webmediaplayer_impl.cc |
+++ b/media/blink/webmediaplayer_impl.cc |
@@ -265,14 +265,23 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
// TODO(xhwang): When we use an external Renderer, many methods won't work, |
// e.g. GetCurrentFrameFromCompositor(). See http://crbug.com/434861 |
+ if (params.audio_renderer_sink().get()) { |
DaleCurtis
2016/11/30 22:10:38
No need for .get().
|
+ media::OutputDeviceStatus device_status = |
+ params.audio_renderer_sink()->GetOutputDeviceInfo().device_status(); |
+ UMA_HISTOGRAM_ENUMERATION("Media.WebMediaPlayer.SinkStatus", device_status, |
+ OUTPUT_DEVICE_STATUS_MAX + 1); |
+ |
+ if (device_status == OUTPUT_DEVICE_STATUS_OK) { |
+ audio_source_provider_ = |
+ new WebAudioSourceProviderImpl(params.audio_renderer_sink()); |
+ return; |
+ } |
+ MEDIA_LOG(ERROR, media_log_) |
+ << "Output device error, falling back to null sink"; |
+ } |
// Use the null sink if no valid sink was provided. |
- audio_source_provider_ = new WebAudioSourceProviderImpl( |
- params.audio_renderer_sink().get() && |
- params.audio_renderer_sink() |
- ->GetOutputDeviceInfo() |
- .device_status() == OUTPUT_DEVICE_STATUS_OK |
- ? params.audio_renderer_sink() |
- : new NullAudioSink(media_task_runner_)); |
+ audio_source_provider_ = |
+ new WebAudioSourceProviderImpl(new NullAudioSink(media_task_runner_)); |
} |
WebMediaPlayerImpl::~WebMediaPlayerImpl() { |