Index: media/base/media_log.cc |
diff --git a/media/base/media_log.cc b/media/base/media_log.cc |
index a5188f4c38c60e9b4e9a7ddd2cd1526a77a90aae..3897f094a0c3f996c0d86b4ed445eb5deb94548a 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,74 @@ std::string MediaLog::PipelineStatusToString(PipelineStatus status) { |
return NULL; |
} |
+std::string MediaLog::MediaEventToLogString(const MediaLogEvent& event) { |
+ 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: |
wolenetz
2015/02/13 20:36:36
I still think this method is too fragile to change
servolk
2015/03/26 00:04:09
Ok, I understand your concert. I've looked a bit m
|
+ event.params.GetString("url", ¶m); |
+ return EventTypeToString(event.type) + " url=" + param; |
+ |
+ case MediaLogEvent::SEEK: |
+ { |
+ double seek_target = -1.0; |
+ event.params.GetDouble("seek_target", &seek_target); |
+ return EventTypeToString(event.type) + " seek_target=" + |
+ base::DoubleToString(seek_target); |
+ } |
+ |
+ case MediaLogEvent::PIPELINE_STATE_CHANGED: |
+ event.params.GetString("pipeline_state", ¶m); |
+ return EventTypeToString(event.type) + " pipeline_state=" + param; |
+ |
+ case MediaLogEvent::PIPELINE_ERROR: |
+ { |
+ int err; |
+ event.params.GetInteger("pipeline_error", &err); |
+ media::PipelineStatus status = static_cast<media::PipelineStatus>(err); |
+ return EventTypeToString(event.type) + " " + |
+ media::MediaLog::PipelineStatusToString(status); |
+ } |
+ |
+ 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 = -1.0; |
+ event.params.GetDouble("duration", &duration); |
+ return EventTypeToString(event.type) + " duration=" + |
+ base::DoubleToString(duration); |
+ } |
+ |
+ case MediaLogEvent::MEDIA_SOURCE_ERROR: |
+ event.params.GetString("error", ¶m); |
+ return EventTypeToString(event.type) + " error=" + param; |
+ } |
+ NOTREACHED(); |
+ return NULL; |
+} |
+ |
LogHelper::LogHelper(const LogCB& log_cb) : log_cb_(log_cb) {} |
LogHelper::~LogHelper() { |