Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(880)

Unified Diff: media/base/media_log.cc

Issue 7587007: Log FilterHost events in PipelineImpl to MediaLog. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/media_log.cc
diff --git a/media/base/media_log.cc b/media/base/media_log.cc
index 15bca418cec6939953eebb2de2253c80ee1a877a..ddf2c33450443fafc53d162ce6576b619c53d9ca 100644
--- a/media/base/media_log.cc
+++ b/media/base/media_log.cc
@@ -35,6 +35,32 @@ const char* MediaLog::EventTypeToString(MediaLogEvent::Type type) {
return "PAUSE";
case MediaLogEvent::PIPELINE_STATE_CHANGED:
return "PIPELINE_STATE_CHANGED";
+ case MediaLogEvent::PIPELINE_ERROR:
+ return "PIPELINE_ERROR";
+ case MediaLogEvent::VIDEO_SIZE_SET:
+ return "VIDEO_SIZE_SET";
+ case MediaLogEvent::TIME_SET:
+ return "TIME_SET";
+ case MediaLogEvent::DURATION_SET:
+ return "DURATION_SET";
+ case MediaLogEvent::BUFFERED_TIME_SET:
+ return "BUFFERED_TIME_SET";
+ case MediaLogEvent::TOTAL_BYTES_SET:
+ return "TOTAL_BYTES_SET";
+ case MediaLogEvent::BUFFERED_BYTES_SET:
+ return "BUFFERED_BYTES_SET";
+ case MediaLogEvent::STREAMING_SET:
+ return "STREAMING_SET";
+ case MediaLogEvent::LOADED_SET:
+ return "LOADED_SET";
+ case MediaLogEvent::NETWORK_ACTIVITY_SET:
+ return "NETWORK_ACTIVITY_SET";
+ case MediaLogEvent::CURRENT_READ_POSITION_SET:
+ return "CURRENT_READ_POSITION_SET";
+ case MediaLogEvent::ENDED:
+ return "ENDED";
+ case MediaLogEvent::AUDIO_RENDERER_DISABLED:
+ return "AUDIO_RENDERER_DISABLED";
case MediaLogEvent::BUFFERED_EXTENTS_CHANGED:
return "BUFFERED_EXTENTS_CHANGED";
}
@@ -79,6 +105,49 @@ const char* MediaLog::PipelineStateToString(PipelineImpl::State state) {
return NULL;
}
+const char* MediaLog::PipelineStatusToString(PipelineStatus status) {
+ switch (status) {
+ case PIPELINE_OK:
+ return "pipeline: ok";
+ case PIPELINE_ERROR_URL_NOT_FOUND:
+ return "pipeline: url not found";
+ case PIPELINE_ERROR_NETWORK:
+ return "pipeline: network error";
+ case PIPELINE_ERROR_DECODE:
+ return "pipeline: decode error";
+ case PIPELINE_ERROR_ABORT:
+ return "pipeline: abort";
+ case PIPELINE_ERROR_INITIALIZATION_FAILED:
+ return "pipeline: initialization failed";
+ case PIPELINE_ERROR_REQUIRED_FILTER_MISSING:
+ return "pipeline: required filter missing";
+ case PIPELINE_ERROR_OUT_OF_MEMORY:
+ return "pipeline: out of memory";
+ case PIPELINE_ERROR_COULD_NOT_RENDER:
+ return "pipeline: could not render";
+ case PIPELINE_ERROR_READ:
+ return "pipeline: read error";
+ case PIPELINE_ERROR_AUDIO_HARDWARE:
+ return "pipeline: audio hardware error";
+ case PIPELINE_ERROR_OPERATION_PENDING:
+ return "pipeline: operation pending";
+ case PIPELINE_ERROR_INVALID_STATE:
+ return "pipeline: invalid state";
+ case DEMUXER_ERROR_COULD_NOT_OPEN:
+ return "demuxer: could not open";
+ case DEMUXER_ERROR_COULD_NOT_PARSE:
+ return "dumuxer: could not parse";
+ case DEMUXER_ERROR_NO_SUPPORTED_STREAMS:
+ return "demuxer: no supported streams";
+ case DEMUXER_ERROR_COULD_NOT_CREATE_THREAD:
+ return "demuxer: could not create thread";
+ case DATASOURCE_ERROR_URL_NOT_SUPPORTED:
+ return "data source: url not supported";
+ }
+ NOTREACHED();
+ return NULL;
+}
+
MediaLog::MediaLog() {
id_ = media_log_count.GetNext();
}
@@ -97,6 +166,28 @@ MediaLogEvent* MediaLog::CreateEvent(MediaLogEvent::Type type) {
return event.release();
}
+MediaLogEvent* MediaLog::CreateBooleanEvent(MediaLogEvent::Type type,
+ const char* property, bool value) {
+ scoped_ptr<MediaLogEvent> event(CreateEvent(type));
+ event->params.SetBoolean(property, value);
+ return event.release();
+}
+
+MediaLogEvent* MediaLog::CreateIntegerEvent(MediaLogEvent::Type type,
+ const char* property, int64 value) {
+ scoped_ptr<MediaLogEvent> event(CreateEvent(type));
+ event->params.SetInteger(property, value);
+ return event.release();
+}
+
+MediaLogEvent* MediaLog::CreateTimeEvent(MediaLogEvent::Type type,
+ const char* property,
+ base::TimeDelta value) {
+ scoped_ptr<MediaLogEvent> event(CreateEvent(type));
+ event->params.SetDouble(property, value.InSecondsF());
+ return event.release();
+}
+
MediaLogEvent* MediaLog::CreateLoadEvent(const std::string& url) {
scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::LOAD));
event->params.SetString("url", url);
@@ -117,6 +208,19 @@ MediaLogEvent* MediaLog::CreatePipelineStateChangedEvent(
return event.release();
}
+MediaLogEvent* MediaLog::CreatePipelineErrorEvent(PipelineStatus error) {
+ scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::PIPELINE_ERROR));
+ event->params.SetString("pipeline_error", PipelineStatusToString(error));
+ return event.release();
+}
+
+MediaLogEvent* MediaLog::CreateVideoSizeSetEvent(size_t width, size_t height) {
+ scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::VIDEO_SIZE_SET));
+ event->params.SetInteger("width", width);
+ event->params.SetInteger("height", height);
+ return event.release();
+}
+
MediaLogEvent* MediaLog::CreateBufferedExtentsChangedEvent(
size_t start, size_t current, size_t end) {
scoped_ptr<MediaLogEvent> event(

Powered by Google App Engine
This is Rietveld 408576698