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

Side by Side Diff: media/base/media_log.cc

Issue 2660003003: Add MediaError.message (Closed)
Patch Set: Simplify to just 1 string with no newlines: [status plus first MEDIA_ERROR_LOG_ENTRY], if any Created 3 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <utility> 7 #include <utility>
8 8
9 #include "base/atomic_sequence_num.h" 9 #include "base/atomic_sequence_num.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
11 #include "base/strings/string_util.h"
11 #include "base/values.h" 12 #include "base/values.h"
12 13
13 namespace media { 14 namespace media {
14 15
15 // A count of all MediaLogs created in the current process. Used to generate 16 // A count of all MediaLogs created in the current process. Used to generate
16 // unique IDs. 17 // unique IDs.
17 static base::StaticAtomicSequenceNumber g_media_log_count; 18 static base::StaticAtomicSequenceNumber g_media_log_count;
18 19
19 // Audio+video watch time metrics. 20 // Audio+video watch time metrics.
20 const char MediaLog::kWatchTimeAudioVideoAll[] = 21 const char MediaLog::kWatchTimeAudioVideoAll[] =
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 std::string MediaLog::MediaEventToLogString(const MediaLogEvent& event) { 212 std::string MediaLog::MediaEventToLogString(const MediaLogEvent& event) {
212 // Special case for PIPELINE_ERROR, since that's by far the most useful 213 // Special case for PIPELINE_ERROR, since that's by far the most useful
213 // event for figuring out media pipeline failures, and just reporting 214 // event for figuring out media pipeline failures, and just reporting
214 // pipeline status as numeric code is not very helpful/user-friendly. 215 // pipeline status as numeric code is not very helpful/user-friendly.
215 int error_code = 0; 216 int error_code = 0;
216 if (event.type == MediaLogEvent::PIPELINE_ERROR && 217 if (event.type == MediaLogEvent::PIPELINE_ERROR &&
217 event.params.GetInteger("pipeline_error", &error_code)) { 218 event.params.GetInteger("pipeline_error", &error_code)) {
218 PipelineStatus status = static_cast<PipelineStatus>(error_code); 219 PipelineStatus status = static_cast<PipelineStatus>(error_code);
219 return EventTypeToString(event.type) + " " + PipelineStatusToString(status); 220 return EventTypeToString(event.type) + " " + PipelineStatusToString(status);
220 } 221 }
222
221 std::string params_json; 223 std::string params_json;
222 base::JSONWriter::Write(event.params, &params_json); 224 base::JSONWriter::Write(event.params, &params_json);
223 return EventTypeToString(event.type) + " " + params_json; 225 return EventTypeToString(event.type) + " " + params_json;
224 } 226 }
225 227
228 std::string MediaLog::MediaEventToMessageString(const MediaLogEvent& event) {
229 switch (event.type) {
230 case MediaLogEvent::PIPELINE_ERROR: {
231 int error_code = 0;
232 event.params.GetInteger("pipeline_error", &error_code);
233 DCHECK_NE(error_code, 0);
234 return PipelineStatusToString(static_cast<PipelineStatus>(error_code));
235 }
236 case MediaLogEvent::MEDIA_ERROR_LOG_ENTRY: {
237 std::string result = "";
238 if (event.params.GetString(MediaLogLevelToString(MEDIALOG_ERROR),
239 &result))
240 base::ReplaceChars(result, "\n", " ", &result);
241 return result;
242 }
243 default:
244 NOTREACHED();
245 return "";
246 }
247 }
248
226 std::string MediaLog::BufferingStateToString(BufferingState state) { 249 std::string MediaLog::BufferingStateToString(BufferingState state) {
227 switch (state) { 250 switch (state) {
228 case BUFFERING_HAVE_NOTHING: 251 case BUFFERING_HAVE_NOTHING:
229 return "BUFFERING_HAVE_NOTHING"; 252 return "BUFFERING_HAVE_NOTHING";
230 case BUFFERING_HAVE_ENOUGH: 253 case BUFFERING_HAVE_ENOUGH:
231 return "BUFFERING_HAVE_ENOUGH"; 254 return "BUFFERING_HAVE_ENOUGH";
232 } 255 }
233 NOTREACHED(); 256 NOTREACHED();
234 return ""; 257 return "";
235 } 258 }
236 259
237 MediaLog::MediaLog() : id_(g_media_log_count.GetNext()) {} 260 MediaLog::MediaLog() : id_(g_media_log_count.GetNext()) {}
238 261
239 MediaLog::~MediaLog() {} 262 MediaLog::~MediaLog() {}
240 263
241 void MediaLog::AddEvent(std::unique_ptr<MediaLogEvent> event) {} 264 void MediaLog::AddEvent(std::unique_ptr<MediaLogEvent> event) {}
242 265
243 std::string MediaLog::GetLastErrorMessage() { 266 std::string MediaLog::GetErrorMessage() {
244 return ""; 267 return "";
245 } 268 }
246 269
247 void MediaLog::RecordRapporWithSecurityOrigin(const std::string& metric) { 270 void MediaLog::RecordRapporWithSecurityOrigin(const std::string& metric) {
248 DVLOG(1) << "Default MediaLog doesn't support rappor reporting."; 271 DVLOG(1) << "Default MediaLog doesn't support rappor reporting.";
249 } 272 }
250 273
251 std::unique_ptr<MediaLogEvent> MediaLog::CreateEvent(MediaLogEvent::Type type) { 274 std::unique_ptr<MediaLogEvent> MediaLog::CreateEvent(MediaLogEvent::Type type) {
252 std::unique_ptr<MediaLogEvent> event(new MediaLogEvent); 275 std::unique_ptr<MediaLogEvent> event(new MediaLogEvent);
253 event->id = id_; 276 event->id = id_;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 const scoped_refptr<MediaLog>& media_log) 405 const scoped_refptr<MediaLog>& media_log)
383 : level_(level), media_log_(media_log) { 406 : level_(level), media_log_(media_log) {
384 DCHECK(media_log_.get()); 407 DCHECK(media_log_.get());
385 } 408 }
386 409
387 LogHelper::~LogHelper() { 410 LogHelper::~LogHelper() {
388 media_log_->AddLogEvent(level_, stream_.str()); 411 media_log_->AddLogEvent(level_, stream_.str());
389 } 412 }
390 413
391 } //namespace media 414 } //namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698