summaryrefslogtreecommitdiffstats
path: root/content/renderer/media/render_media_log.h
diff options
context:
space:
mode:
authorchangbin.shao@intel.com <changbin.shao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-04 14:06:59 +0000
committerchangbin.shao@intel.com <changbin.shao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-04 14:06:59 +0000
commit0e7ee58b0ffa0e94e0bfe421b39376922f15b14f (patch)
treee8ef643823be570bb3fbbec387ff20e0d4ae184d /content/renderer/media/render_media_log.h
parent12397ca6cf1c2bf26d98462c1ff906399fbee822 (diff)
downloadchromium_src-0e7ee58b0ffa0e94e0bfe421b39376922f15b14f.zip
chromium_src-0e7ee58b0ffa0e94e0bfe421b39376922f15b14f.tar.gz
chromium_src-0e7ee58b0ffa0e94e0bfe421b39376922f15b14f.tar.bz2
Limit the rate to send media log events over IPC.
Some media events e.g. BufferedExtentsChanged update quite often, this causes heavy IPC traffic for CPU. In the meantime, chrome://media-internals doesn't need to update data in such a high frequency. Use array to send these events every 1 second. BUG=235096 Review URL: https://chromiumcodereview.appspot.com/14146018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198314 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/media/render_media_log.h')
-rw-r--r--content/renderer/media/render_media_log.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/content/renderer/media/render_media_log.h b/content/renderer/media/render_media_log.h
index 4c26cdf..70070b3 100644
--- a/content/renderer/media/render_media_log.h
+++ b/content/renderer/media/render_media_log.h
@@ -5,6 +5,8 @@
#ifndef CONTENT_RENDERER_MEDIA_RENDER_MEDIA_LOG_H_
#define CONTENT_RENDERER_MEDIA_RENDER_MEDIA_LOG_H_
+#include <vector>
+#include "base/time.h"
#include "media/base/media_log.h"
namespace base {
@@ -14,7 +16,7 @@ class MessageLoopProxy;
namespace content {
// RenderMediaLog is an implementation of MediaLog that passes all events to the
-// browser process.
+// browser process, throttling as necessary.
class RenderMediaLog : public media::MediaLog {
public:
RenderMediaLog();
@@ -26,6 +28,8 @@ class RenderMediaLog : public media::MediaLog {
virtual ~RenderMediaLog();
scoped_refptr<base::MessageLoopProxy> render_loop_;
+ base::Time last_ipc_send_time_;
+ std::vector<media::MediaLogEvent> queued_media_events_;
DISALLOW_COPY_AND_ASSIGN(RenderMediaLog);
};