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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/media_log.h" 5 #include "media/base/media_log.h"
6 6
7 #include "base/atomic_sequence_num.h" 7 #include "base/atomic_sequence_num.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 17 matching lines...) Expand all
28 case MediaLogEvent::LOAD: 28 case MediaLogEvent::LOAD:
29 return "LOAD"; 29 return "LOAD";
30 case MediaLogEvent::SEEK: 30 case MediaLogEvent::SEEK:
31 return "SEEK"; 31 return "SEEK";
32 case MediaLogEvent::PLAY: 32 case MediaLogEvent::PLAY:
33 return "PLAY"; 33 return "PLAY";
34 case MediaLogEvent::PAUSE: 34 case MediaLogEvent::PAUSE:
35 return "PAUSE"; 35 return "PAUSE";
36 case MediaLogEvent::PIPELINE_STATE_CHANGED: 36 case MediaLogEvent::PIPELINE_STATE_CHANGED:
37 return "PIPELINE_STATE_CHANGED"; 37 return "PIPELINE_STATE_CHANGED";
38 case MediaLogEvent::PIPELINE_ERROR:
39 return "PIPELINE_ERROR";
40 case MediaLogEvent::VIDEO_SIZE_SET:
41 return "VIDEO_SIZE_SET";
42 case MediaLogEvent::TIME_SET:
43 return "TIME_SET";
44 case MediaLogEvent::DURATION_SET:
45 return "DURATION_SET";
46 case MediaLogEvent::BUFFERED_TIME_SET:
47 return "BUFFERED_TIME_SET";
48 case MediaLogEvent::TOTAL_BYTES_SET:
49 return "TOTAL_BYTES_SET";
50 case MediaLogEvent::BUFFERED_BYTES_SET:
51 return "BUFFERED_BYTES_SET";
52 case MediaLogEvent::STREAMING_SET:
53 return "STREAMING_SET";
54 case MediaLogEvent::LOADED_SET:
55 return "LOADED_SET";
56 case MediaLogEvent::NETWORK_ACTIVITY_SET:
57 return "NETWORK_ACTIVITY_SET";
58 case MediaLogEvent::CURRENT_READ_POSITION_SET:
59 return "CURRENT_READ_POSITION_SET";
60 case MediaLogEvent::ENDED:
61 return "ENDED";
62 case MediaLogEvent::AUDIO_RENDERER_DISABLED:
63 return "AUDIO_RENDERER_DISABLED";
38 case MediaLogEvent::BUFFERED_EXTENTS_CHANGED: 64 case MediaLogEvent::BUFFERED_EXTENTS_CHANGED:
39 return "BUFFERED_EXTENTS_CHANGED"; 65 return "BUFFERED_EXTENTS_CHANGED";
40 } 66 }
41 NOTREACHED(); 67 NOTREACHED();
42 return NULL; 68 return NULL;
43 } 69 }
44 70
45 const char* MediaLog::PipelineStateToString(PipelineImpl::State state) { 71 const char* MediaLog::PipelineStateToString(PipelineImpl::State state) {
46 switch (state) { 72 switch (state) {
47 case PipelineImpl::kCreated: 73 case PipelineImpl::kCreated:
(...skipping 24 matching lines...) Expand all
72 return "stopping"; 98 return "stopping";
73 case PipelineImpl::kStopped: 99 case PipelineImpl::kStopped:
74 return "stopped"; 100 return "stopped";
75 case PipelineImpl::kError: 101 case PipelineImpl::kError:
76 return "error"; 102 return "error";
77 } 103 }
78 NOTREACHED(); 104 NOTREACHED();
79 return NULL; 105 return NULL;
80 } 106 }
81 107
108 const char* MediaLog::PipelineStatusToString(PipelineStatus status) {
109 switch (status) {
110 case PIPELINE_OK:
111 return "pipeline: ok";
112 case PIPELINE_ERROR_URL_NOT_FOUND:
113 return "pipeline: url not found";
114 case PIPELINE_ERROR_NETWORK:
115 return "pipeline: network error";
116 case PIPELINE_ERROR_DECODE:
117 return "pipeline: decode error";
118 case PIPELINE_ERROR_ABORT:
119 return "pipeline: abort";
120 case PIPELINE_ERROR_INITIALIZATION_FAILED:
121 return "pipeline: initialization failed";
122 case PIPELINE_ERROR_REQUIRED_FILTER_MISSING:
123 return "pipeline: required filter missing";
124 case PIPELINE_ERROR_OUT_OF_MEMORY:
125 return "pipeline: out of memory";
126 case PIPELINE_ERROR_COULD_NOT_RENDER:
127 return "pipeline: could not render";
128 case PIPELINE_ERROR_READ:
129 return "pipeline: read error";
130 case PIPELINE_ERROR_AUDIO_HARDWARE:
131 return "pipeline: audio hardware error";
132 case PIPELINE_ERROR_OPERATION_PENDING:
133 return "pipeline: operation pending";
134 case PIPELINE_ERROR_INVALID_STATE:
135 return "pipeline: invalid state";
136 case DEMUXER_ERROR_COULD_NOT_OPEN:
137 return "demuxer: could not open";
138 case DEMUXER_ERROR_COULD_NOT_PARSE:
139 return "dumuxer: could not parse";
140 case DEMUXER_ERROR_NO_SUPPORTED_STREAMS:
141 return "demuxer: no supported streams";
142 case DEMUXER_ERROR_COULD_NOT_CREATE_THREAD:
143 return "demuxer: could not create thread";
144 case DATASOURCE_ERROR_URL_NOT_SUPPORTED:
145 return "data source: url not supported";
146 }
147 NOTREACHED();
148 return NULL;
149 }
150
82 MediaLog::MediaLog() { 151 MediaLog::MediaLog() {
83 id_ = media_log_count.GetNext(); 152 id_ = media_log_count.GetNext();
84 } 153 }
85 154
86 MediaLog::~MediaLog() {} 155 MediaLog::~MediaLog() {}
87 156
88 void MediaLog::AddEvent(MediaLogEvent* event) { 157 void MediaLog::AddEvent(MediaLogEvent* event) {
89 scoped_ptr<MediaLogEvent> e(event); 158 scoped_ptr<MediaLogEvent> e(event);
90 } 159 }
91 160
92 MediaLogEvent* MediaLog::CreateEvent(MediaLogEvent::Type type) { 161 MediaLogEvent* MediaLog::CreateEvent(MediaLogEvent::Type type) {
93 scoped_ptr<MediaLogEvent> event(new MediaLogEvent); 162 scoped_ptr<MediaLogEvent> event(new MediaLogEvent);
94 event->id = id_; 163 event->id = id_;
95 event->type = type; 164 event->type = type;
96 event->time = base::Time::Now(); 165 event->time = base::Time::Now();
97 return event.release(); 166 return event.release();
98 } 167 }
99 168
169 MediaLogEvent* MediaLog::CreateBooleanEvent(MediaLogEvent::Type type,
170 const char* property, bool value) {
171 scoped_ptr<MediaLogEvent> event(CreateEvent(type));
172 event->params.SetBoolean(property, value);
173 return event.release();
174 }
175
176 MediaLogEvent* MediaLog::CreateIntegerEvent(MediaLogEvent::Type type,
177 const char* property, int64 value) {
178 scoped_ptr<MediaLogEvent> event(CreateEvent(type));
179 event->params.SetInteger(property, value);
180 return event.release();
181 }
182
183 MediaLogEvent* MediaLog::CreateTimeEvent(MediaLogEvent::Type type,
184 const char* property,
185 base::TimeDelta value) {
186 scoped_ptr<MediaLogEvent> event(CreateEvent(type));
187 event->params.SetDouble(property, value.InSecondsF());
188 return event.release();
189 }
190
100 MediaLogEvent* MediaLog::CreateLoadEvent(const std::string& url) { 191 MediaLogEvent* MediaLog::CreateLoadEvent(const std::string& url) {
101 scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::LOAD)); 192 scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::LOAD));
102 event->params.SetString("url", url); 193 event->params.SetString("url", url);
103 return event.release(); 194 return event.release();
104 } 195 }
105 196
106 MediaLogEvent* MediaLog::CreateSeekEvent(float seconds) { 197 MediaLogEvent* MediaLog::CreateSeekEvent(float seconds) {
107 scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::SEEK)); 198 scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::SEEK));
108 event->params.SetDouble("seek_target", seconds); 199 event->params.SetDouble("seek_target", seconds);
109 return event.release(); 200 return event.release();
110 } 201 }
111 202
112 MediaLogEvent* MediaLog::CreatePipelineStateChangedEvent( 203 MediaLogEvent* MediaLog::CreatePipelineStateChangedEvent(
113 PipelineImpl::State state) { 204 PipelineImpl::State state) {
114 scoped_ptr<MediaLogEvent> event( 205 scoped_ptr<MediaLogEvent> event(
115 CreateEvent(MediaLogEvent::PIPELINE_STATE_CHANGED)); 206 CreateEvent(MediaLogEvent::PIPELINE_STATE_CHANGED));
116 event->params.SetString("pipeline_state", PipelineStateToString(state)); 207 event->params.SetString("pipeline_state", PipelineStateToString(state));
117 return event.release(); 208 return event.release();
118 } 209 }
119 210
211 MediaLogEvent* MediaLog::CreatePipelineErrorEvent(PipelineStatus error) {
212 scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::PIPELINE_ERROR));
213 event->params.SetString("pipeline_error", PipelineStatusToString(error));
214 return event.release();
215 }
216
217 MediaLogEvent* MediaLog::CreateVideoSizeSetEvent(size_t width, size_t height) {
218 scoped_ptr<MediaLogEvent> event(CreateEvent(MediaLogEvent::VIDEO_SIZE_SET));
219 event->params.SetInteger("width", width);
220 event->params.SetInteger("height", height);
221 return event.release();
222 }
223
120 MediaLogEvent* MediaLog::CreateBufferedExtentsChangedEvent( 224 MediaLogEvent* MediaLog::CreateBufferedExtentsChangedEvent(
121 size_t start, size_t current, size_t end) { 225 size_t start, size_t current, size_t end) {
122 scoped_ptr<MediaLogEvent> event( 226 scoped_ptr<MediaLogEvent> event(
123 CreateEvent(MediaLogEvent::BUFFERED_EXTENTS_CHANGED)); 227 CreateEvent(MediaLogEvent::BUFFERED_EXTENTS_CHANGED));
124 event->params.SetInteger("buffer_start", start); 228 event->params.SetInteger("buffer_start", start);
125 event->params.SetInteger("buffer_current", current); 229 event->params.SetInteger("buffer_current", current);
126 event->params.SetInteger("buffer_end", end); 230 event->params.SetInteger("buffer_end", end);
127 return event.release(); 231 return event.release();
128 } 232 }
129 233
130 } //namespace media 234 } //namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698