Chromium Code Reviews| Index: content/renderer/media/audio_renderer_sink_cache_impl.cc |
| diff --git a/content/renderer/media/audio_renderer_sink_cache_impl.cc b/content/renderer/media/audio_renderer_sink_cache_impl.cc |
| index 9fef7d0937b1dc594ee067d45f10a1ef6363b2ae..4e3df4c71e1617ce8a0d79715103869dc41ce118 100644 |
| --- a/content/renderer/media/audio_renderer_sink_cache_impl.cc |
| +++ b/content/renderer/media/audio_renderer_sink_cache_impl.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/bind.h" |
| #include "base/location.h" |
| #include "base/memory/ptr_util.h" |
| +#include "base/metrics/histogram_macros.h" |
| #include "base/synchronization/lock.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "content/renderer/media/audio_device_factory.h" |
| @@ -88,6 +89,8 @@ media::OutputDeviceInfo AudioRendererSinkCacheImpl::GetSinkInfo( |
| DVLOG(1) << "GetSinkInfo: address: " << cache_iter->sink.get() |
| << " - reused a cached sink."; |
| + UMA_HISTOGRAM_BOOLEAN("Media.Audio.SinkCache.GetOutputDeviceInfoHit", |
| + true); |
| return cache_iter->sink->GetOutputDeviceInfo(); |
| } |
| @@ -103,6 +106,8 @@ media::OutputDeviceInfo AudioRendererSinkCacheImpl::GetSinkInfo( |
| cache_.push_back(cache_entry); |
| } |
| + UMA_HISTOGRAM_BOOLEAN("Media.Audio.SinkCache.GetOutputDeviceInfoHit", false); |
|
Henrik Grunell
2016/07/04 14:24:59
It would be nice to have the session ID case in it
o1ka
2016/07/06 13:17:30
Done.
|
| + |
| // Schedule it for deletion. |
| DeleteLaterIfUnused(cache_entry.sink.get()); |
| @@ -118,6 +123,8 @@ scoped_refptr<media::AudioRendererSink> AudioRendererSinkCacheImpl::GetSink( |
| int source_render_frame_id, |
| const std::string& device_id, |
| const url::Origin& security_origin) { |
| + UMA_HISTOGRAM_BOOLEAN("Media.Audio.SinkCache.UsedForSinkCreation", true); |
|
Henrik Grunell
2016/07/04 14:24:59
False is never recorded?
o1ka
2016/07/06 13:17:30
Recorded in AudioDeviceFactory
|
| + |
| base::AutoLock auto_lock(cache_lock_); |
| auto cache_iter = |
| @@ -130,6 +137,8 @@ scoped_refptr<media::AudioRendererSink> AudioRendererSinkCacheImpl::GetSink( |
| << " - found unused cached sink, reusing it."; |
| cache_iter->used = true; |
| + UMA_HISTOGRAM_BOOLEAN("Media.Audio.SinkCache.InfoSinkReusedForOutput", |
|
Henrik Grunell
2016/07/04 14:24:59
I don't understand this histogram. Seems to record
o1ka
2016/07/06 13:17:30
Discussed offline.
|
| + true); |
| return cache_iter->sink; |
| } |
| @@ -205,8 +214,11 @@ void AudioRendererSinkCacheImpl::DeleteSink( |
| // To stop the sink before deletion if it's not used, we need to hold |
| // a ref to it. |
| - if (!cache_iter->used) |
| + if (!cache_iter->used) { |
| sink_to_stop = cache_iter->sink; |
| + UMA_HISTOGRAM_BOOLEAN("Media.Audio.SinkCache.InfoSinkReusedForOutput", |
| + false); |
| + } |
| cache_.erase(cache_iter); |
| DVLOG(1) << "DeleteSink: address: " << sink_ptr; |