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 3 // found in the LICENSE file. 4 5 #ifndef MEDIA_BASE_MEDIA_LOG_EVENT_H_ 6 #define MEDIA_BASE_MEDIA_LOG_EVENT_H_ 7 8 #include "base/time/time.h" 9 #include "base/values.h" 10 11 namespace media { 12 13 struct MediaLogEvent { 14 MediaLogEvent() {} 15 16 MediaLogEvent(const MediaLogEvent& event) { 17 *this = event; 18 } 19 20 MediaLogEvent& operator=(const MediaLogEvent& event) { 21 id = event.id; 22 type = event.type; 23 scoped_ptr<base::DictionaryValue> event_copy(event.params.DeepCopy()); 24 params.Swap(event_copy.get()); 25 time = event.time; 26 return *this; 27 } 28 29 enum Type { 30 // A WebMediaPlayer is being created or destroyed. 31 // params: none. 32 WEBMEDIAPLAYER_CREATED, 33 WEBMEDIAPLAYER_DESTROYED, 34 35 // A Pipeline is being created or destroyed. 36 // params: none. 37 PIPELINE_CREATED, 38 PIPELINE_DESTROYED, 39 40 // A media player is loading a resource. 41 // params: "url": <URL of the resource>. 42 LOAD, 43 44 // A media player has started seeking. 45 // params: "seek_target": <number of seconds to which to seek>. 46 SEEK, 47 48 // A media player has been told to play or pause. 49 // params: none. 50 PLAY, 51 PAUSE, 52 53 // The state of Pipeline has changed. 54 // params: "pipeline_state": <string name of the state>. 55 PIPELINE_STATE_CHANGED, 56 57 // An error has occurred in the pipeline. 58 // params: "pipeline_error": <string name of the error>. 59 PIPELINE_ERROR, 60 61 // The size of the video has been determined. 62 // params: "width": <integral width of the video>. 63 // "height": <integral height of the video>. 64 VIDEO_SIZE_SET, 65 66 // A property of the pipeline has been set by a filter. 67 // These take a single parameter based upon the name of the event and of 68 // the appropriate type. e.g. DURATION_SET: "duration" of type TimeDelta. 69 DURATION_SET, 70 TOTAL_BYTES_SET, 71 NETWORK_ACTIVITY_SET, 72 73 // Audio/Video stream playback has ended. 74 ENDED, 75 76 // Text stream playback has ended. 77 TEXT_ENDED, 78 79 // The extents of the sliding buffer have changed. 80 // params: "buffer_start": <first buffered byte>. 81 // "buffer_current": <current offset>. 82 // "buffer_end": <last buffered byte>. 83 BUFFERED_EXTENTS_CHANGED, 84 85 // Errors reported by Media Source Extensions code. 86 MEDIA_SOURCE_ERROR, 87 // params: "error": Error string describing the error detected. 88 89 // A property has changed without any special event occurring. 90 PROPERTY_CHANGE, 91 92 TYPE_LAST = PROPERTY_CHANGE 93 }; 94 95 int32 id; 96 Type type; 97 base::DictionaryValue params; 98 base::TimeTicks time; 99 }; 100 101 } // namespace media 102 103 #endif // MEDIA_BASE_MEDIA_LOG_EVENT_H_ 104