OLD | NEW |
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 |
OLD | NEW |