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

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

Powered by Google App Engine
This is Rietveld 408576698