diff options
author | scottfr@chromium.org <scottfr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-09 17:53:45 +0000 |
---|---|---|
committer | scottfr@chromium.org <scottfr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-09 17:53:45 +0000 |
commit | 24d75c714285a0c31b5e688a7c97fbc883e389c9 (patch) | |
tree | f908b22afc362f392ba02ac3a9a47175bca83a1d /media | |
parent | 381455c05cb4f766d36cd99bb3fabde3e0d5246b (diff) | |
download | chromium_src-24d75c714285a0c31b5e688a7c97fbc883e389c9.zip chromium_src-24d75c714285a0c31b5e688a7c97fbc883e389c9.tar.gz chromium_src-24d75c714285a0c31b5e688a7c97fbc883e389c9.tar.bz2 |
Log BufferedResourceLoader events to MediaLog.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7591001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96014 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/media_log.cc | 33 | ||||
-rw-r--r-- | media/base/media_log.h | 13 | ||||
-rw-r--r-- | media/base/media_log_event.h | 6 |
3 files changed, 30 insertions, 22 deletions
diff --git a/media/base/media_log.cc b/media/base/media_log.cc index af4e75b..38be126 100644 --- a/media/base/media_log.cc +++ b/media/base/media_log.cc @@ -26,6 +26,8 @@ const char* MediaLog::EventTypeToString(MediaLogEvent::Type type) { return "PLAY"; case MediaLogEvent::PAUSE: return "PAUSE"; + case MediaLogEvent::BUFFERED_EXTENTS_CHANGED: + return "BUFFERED_EXTENTS_CHANGED"; } NOTREACHED(); return NULL; @@ -37,27 +39,32 @@ MediaLog::MediaLog() { MediaLog::~MediaLog() {} -void MediaLog::Load(const std::string& url) { - MediaLogEvent* event = CreateEvent(MediaLogEvent::LOAD); - event->params.SetString("url", url); - AddEvent(event); -} - -void MediaLog::AddEventOfType(MediaLogEvent::Type type) { - MediaLogEvent* event = CreateEvent(type); - AddEvent(event); +void MediaLog::AddEvent(MediaLogEvent* event) { + scoped_ptr<MediaLogEvent> e(event); } MediaLogEvent* MediaLog::CreateEvent(MediaLogEvent::Type type) { - MediaLogEvent* event = new MediaLogEvent; + scoped_ptr<MediaLogEvent> event(new MediaLogEvent); event->id = id_; event->type = type; event->time = base::Time::Now(); - return event; + return event.release(); } -void MediaLog::AddEvent(MediaLogEvent* event) { - scoped_ptr<MediaLogEvent> e(event); +MediaLogEvent* MediaLog::CreateLoadEvent(const std::string& url) { + scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::LOAD)); + event->params.SetString("url", url); + return event.release(); +} + +MediaLogEvent* MediaLog::CreateBufferedExtentsChangedEvent( + size_t start, size_t current, size_t end) { + scoped_ptr<MediaLogEvent> event( + CreateEvent(MediaLogEvent::BUFFERED_EXTENTS_CHANGED)); + event->params.SetInteger("buffer_start", start); + event->params.SetInteger("buffer_current", current); + event->params.SetInteger("buffer_end", end); + return event.release(); } } //namespace media diff --git a/media/base/media_log.h b/media/base/media_log.h index fcf0c31..88417ac 100644 --- a/media/base/media_log.h +++ b/media/base/media_log.h @@ -13,26 +13,21 @@ namespace media { class MediaLog : public base::RefCountedThreadSafe<MediaLog> { public: - // Return a string to represent an EventType. static const char* EventTypeToString(MediaLogEvent::Type type); MediaLog(); - // Methods called by loggers when events occur. These generate appropriate - // event parameters so the caller need not worry about them. - void Load(const std::string& url); - // Add an event to this log. Overriden by inheritors to actually do something // with it. // Takes ownership of |event|. virtual void AddEvent(MediaLogEvent* event); - // Convenience method for adding an event with no parameters. - void AddEventOfType(MediaLogEvent::Type type); - - // Convenience method for filling in common fields of a new event. + // Helper methods to create events and their parameters. MediaLogEvent* CreateEvent(MediaLogEvent::Type type); + MediaLogEvent* CreateLoadEvent(const std::string& url); + MediaLogEvent* CreateBufferedExtentsChangedEvent(size_t start, size_t current, + size_t end); protected: friend class base::RefCountedThreadSafe<MediaLog>; diff --git a/media/base/media_log_event.h b/media/base/media_log_event.h index dd1735e..0c8e3da 100644 --- a/media/base/media_log_event.h +++ b/media/base/media_log_event.h @@ -26,6 +26,12 @@ struct MediaLogEvent { // params: none. PLAY, PAUSE, + + // The extents of the sliding buffer have changed. + // params: "buffer_start": <first buffered byte>. + // "buffer_current": <current offset>. + // "buffer_end": <last buffered byte>. + BUFFERED_EXTENTS_CHANGED, }; int32 id; |