Index: media/base/media_log.cc |
diff --git a/media/base/media_log.cc b/media/base/media_log.cc |
index a5188f4c38c60e9b4e9a7ddd2cd1526a77a90aae..97122232f52efc76c6182aca47b3b6c0ef8ad62c 100644 |
--- a/media/base/media_log.cc |
+++ b/media/base/media_log.cc |
@@ -8,6 +8,7 @@ |
#include "base/atomic_sequence_num.h" |
#include "base/logging.h" |
+#include "base/strings/string_number_conversions.h" |
#include "base/values.h" |
namespace media { |
@@ -98,6 +99,76 @@ std::string MediaLog::PipelineStatusToString(PipelineStatus status) { |
return NULL; |
} |
+std::string MediaLog::MediaEventToLogString(const MediaLogEvent& event) { |
wolenetz
2015/02/04 22:04:18
This method seems quite fragile to event parameter
|
+ std::string param; |
+ switch (event.type) { |
+ case MediaLogEvent::WEBMEDIAPLAYER_CREATED: |
+ case MediaLogEvent::WEBMEDIAPLAYER_DESTROYED: |
+ case MediaLogEvent::PIPELINE_CREATED: |
+ case MediaLogEvent::PIPELINE_DESTROYED: |
+ case MediaLogEvent::PLAY: |
+ case MediaLogEvent::PAUSE: |
+ case MediaLogEvent::ENDED: |
+ case MediaLogEvent::TEXT_ENDED: |
+ case MediaLogEvent::BUFFERED_EXTENTS_CHANGED: |
+ case MediaLogEvent::TOTAL_BYTES_SET: |
+ case MediaLogEvent::NETWORK_ACTIVITY_SET: |
+ case MediaLogEvent::PROPERTY_CHANGE: |
+ return EventTypeToString(event.type); |
+ |
+ case MediaLogEvent::LOAD: |
+ event.params.GetString("url", ¶m); |
+ return EventTypeToString(event.type) + " url=" + param; |
+ |
+ case MediaLogEvent::SEEK: |
+ { |
+ double seek_target = 0.0; |
+ if (event.params.GetDouble("seek_target", &seek_target)) { |
+ return EventTypeToString(event.type) + " seek_target=" + |
+ base::DoubleToString(seek_target); |
+ } |
+ return EventTypeToString(event.type) + " seek_target=unknown"; |
+ } |
+ |
+ case MediaLogEvent::PIPELINE_STATE_CHANGED: |
+ event.params.GetString("pipeline_state", ¶m); |
+ return EventTypeToString(event.type) + " pipeline_state=" + param; |
+ |
+ case MediaLogEvent::PIPELINE_ERROR: |
+ event.params.GetString("pipeline_error", ¶m); |
+ return EventTypeToString(event.type) + " pipeline_error=" + param; |
+ |
+ case MediaLogEvent::VIDEO_SIZE_SET: |
+ { |
+ int width = 0; |
+ int height = 0; |
+ event.params.GetInteger("width", &width); |
+ event.params.GetInteger("height", &height); |
+ return EventTypeToString(event.type) + " " + base::IntToString(width) + |
+ "x" + base::IntToString(height); |
+ } |
+ |
+ case MediaLogEvent::DURATION_SET: |
+ { |
+ double duration = 0.0; |
+ if (event.params.GetDouble("duration", &duration)) { |
+ return EventTypeToString(event.type) + " duration=" + |
+ base::DoubleToString(duration); |
+ } |
+ return EventTypeToString(event.type) + " duration=unknown"; |
+ } |
+ |
+ case MediaLogEvent::MEDIA_SOURCE_ERROR: |
+ event.params.GetString("error", ¶m); |
+ return EventTypeToString(event.type) + " error=" + param; |
+ |
+ default: |
wolenetz
2015/02/04 22:04:18
Please drop the default case and instead let build
|
+ return "UNKNOWN_EVENT_TYPE!!"; |
+ } |
+ NOTREACHED(); |
+ return NULL; |
+} |
+ |
LogHelper::LogHelper(const LogCB& log_cb) : log_cb_(log_cb) {} |
LogHelper::~LogHelper() { |