summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorscottfr@chromium.org <scottfr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-09 17:53:45 +0000
committerscottfr@chromium.org <scottfr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-09 17:53:45 +0000
commit24d75c714285a0c31b5e688a7c97fbc883e389c9 (patch)
treef908b22afc362f392ba02ac3a9a47175bca83a1d /media
parent381455c05cb4f766d36cd99bb3fabde3e0d5246b (diff)
downloadchromium_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.cc33
-rw-r--r--media/base/media_log.h13
-rw-r--r--media/base/media_log_event.h6
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;