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

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

Issue 7584013: Log PipelineImpl events 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/values.h"
9 10
10 namespace media { 11 namespace media {
11 12
12 // A count of all MediaLogs created on this render process. 13 // A count of all MediaLogs created on this render process.
13 // Used to generate unique ids. 14 // Used to generate unique ids.
14 static base::AtomicSequenceNumber media_log_count(base::LINKER_INITIALIZED); 15 static base::AtomicSequenceNumber media_log_count(base::LINKER_INITIALIZED);
15 16
16 const char* MediaLog::EventTypeToString(MediaLogEvent::Type type) { 17 const char* MediaLog::EventTypeToString(MediaLogEvent::Type type) {
17 switch (type) { 18 switch (type) {
18 case MediaLogEvent::CREATING: 19 case MediaLogEvent::WEBMEDIAPLAYER_CREATED:
19 return "CREATING"; 20 return "WEBMEDIAPLAYER_CREATED";
20 case MediaLogEvent::DESTROYING: 21 case MediaLogEvent::WEBMEDIAPLAYER_DESTROYED:
21 return "DESTROYING"; 22 return "WEBMEDIAPLAYER_DESTROYED";
23 case MediaLogEvent::PIPELINE_CREATED:
24 return "PIPELINE_CREATED";
25 case MediaLogEvent::PIPELINE_DESTROYED:
26 return "PIPELINE_DESTROYED";
22 case MediaLogEvent::LOAD: 27 case MediaLogEvent::LOAD:
23 return "LOAD"; 28 return "LOAD";
29 case MediaLogEvent::SEEK:
30 return "SEEK";
24 case MediaLogEvent::PLAY: 31 case MediaLogEvent::PLAY:
25 return "PLAY"; 32 return "PLAY";
26 case MediaLogEvent::PAUSE: 33 case MediaLogEvent::PAUSE:
27 return "PAUSE"; 34 return "PAUSE";
35 case MediaLogEvent::PIPELINE_STATE_CHANGED:
36 return "PIPELINE_STATE_CHANGED";
28 } 37 }
29 NOTREACHED(); 38 NOTREACHED();
30 return NULL; 39 return NULL;
40 }
41
42 const char* MediaLog::PipelineStateToString(PipelineImpl::State state) {
43 switch (state) {
44 case PipelineImpl::kCreated:
45 return "created";
46 case PipelineImpl::kInitDemuxer:
47 return "initDemuxer";
48 case PipelineImpl::kInitAudioDecoder:
49 return "initAudioDecoder";
50 case PipelineImpl::kInitAudioRenderer:
51 return "initAudioRenderer";
52 case PipelineImpl::kInitVideoDecoder:
53 return "initVideoDecoder";
54 case PipelineImpl::kInitVideoRenderer:
55 return "initVideoRenderer";
56 case PipelineImpl::kPausing:
57 return "pausing";
58 case PipelineImpl::kSeeking:
59 return "seeking";
60 case PipelineImpl::kFlushing:
61 return "flushing";
62 case PipelineImpl::kStarting:
63 return "starting";
64 case PipelineImpl::kStarted:
65 return "started";
66 case PipelineImpl::kEnded:
67 return "ended";
68 case PipelineImpl::kStopping:
69 return "stopping";
70 case PipelineImpl::kStopped:
71 return "stopped";
72 case PipelineImpl::kError:
73 return "error";
74 }
75 NOTREACHED();
76 return NULL;
31 } 77 }
32 78
33 MediaLog::MediaLog() { 79 MediaLog::MediaLog() {
34 id_ = media_log_count.GetNext(); 80 id_ = media_log_count.GetNext();
35 } 81 }
36 82
37 MediaLog::~MediaLog() {} 83 MediaLog::~MediaLog() {}
38 84
39 void MediaLog::Load(const std::string& url) { 85 void MediaLog::Load(const std::string& url) {
40 MediaLogEvent* event = CreateEvent(MediaLogEvent::LOAD); 86 MediaLogEvent* event = CreateEvent(MediaLogEvent::LOAD);
41 event->params.SetString("url", url); 87 event->params.SetString("url", url);
42 AddEvent(event); 88 AddEvent(event);
43 } 89 }
44 90
91 void MediaLog::Seek(float seconds) {
92 MediaLogEvent* event = CreateEvent(MediaLogEvent::SEEK);
93 event->params.SetDouble("seek_target", seconds);
94 AddEvent(event);
95 }
96
97 void MediaLog::SetPipelineState(PipelineImpl::State state) {
98 MediaLogEvent* event = CreateEvent(MediaLogEvent::PIPELINE_STATE_CHANGED);
99 event->params.SetString("pipeline_state", PipelineStateToString(state));
100 AddEvent(event);
101 }
102
45 void MediaLog::AddEventOfType(MediaLogEvent::Type type) { 103 void MediaLog::AddEventOfType(MediaLogEvent::Type type) {
46 MediaLogEvent* event = CreateEvent(type); 104 MediaLogEvent* event = CreateEvent(type);
47 AddEvent(event); 105 AddEvent(event);
48 } 106 }
49 107
50 MediaLogEvent* MediaLog::CreateEvent(MediaLogEvent::Type type) { 108 MediaLogEvent* MediaLog::CreateEvent(MediaLogEvent::Type type) {
51 MediaLogEvent* event = new MediaLogEvent; 109 MediaLogEvent* event = new MediaLogEvent;
52 event->id = id_; 110 event->id = id_;
53 event->type = type; 111 event->type = type;
54 event->time = base::Time::Now(); 112 event->time = base::Time::Now();
55 return event; 113 return event;
56 } 114 }
57 115
58 void MediaLog::AddEvent(MediaLogEvent* event) {} 116 void MediaLog::AddEvent(MediaLogEvent* event) {}
59 117
60 } //namespace media 118 } //namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698