-
-
Notifications
You must be signed in to change notification settings - Fork 332
/
media.go
209 lines (153 loc) · 5.54 KB
/
media.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
// This file is generated by "./lib/proto/generate"
package proto
import (
"github.com/ysmood/gson"
)
/*
Media
This domain allows detailed inspection of media elements
*/
// MediaPlayerID Players will get an ID that is unique within the agent context.
type MediaPlayerID string
// MediaTimestamp ...
type MediaTimestamp float64
// MediaPlayerMessageLevel enum
type MediaPlayerMessageLevel string
const (
// MediaPlayerMessageLevelError enum const
MediaPlayerMessageLevelError MediaPlayerMessageLevel = "error"
// MediaPlayerMessageLevelWarning enum const
MediaPlayerMessageLevelWarning MediaPlayerMessageLevel = "warning"
// MediaPlayerMessageLevelInfo enum const
MediaPlayerMessageLevelInfo MediaPlayerMessageLevel = "info"
// MediaPlayerMessageLevelDebug enum const
MediaPlayerMessageLevelDebug MediaPlayerMessageLevel = "debug"
)
// MediaPlayerMessage Have one type per entry in MediaLogRecord::Type
// Corresponds to kMessage
type MediaPlayerMessage struct {
// Level Keep in sync with MediaLogMessageLevel
// We are currently keeping the message level 'error' separate from the
// PlayerError type because right now they represent different things,
// this one being a DVLOG(ERROR) style log message that gets printed
// based on what log level is selected in the UI, and the other is a
// representation of a media::PipelineStatus object. Soon however we're
// going to be moving away from using PipelineStatus for errors and
// introducing a new error type which should hopefully let us integrate
// the error log level into the PlayerError type.
Level MediaPlayerMessageLevel `json:"level"`
// Message ...
Message string `json:"message"`
}
// MediaPlayerProperty Corresponds to kMediaPropertyChange
type MediaPlayerProperty struct {
// Name ...
Name string `json:"name"`
// Value ...
Value string `json:"value"`
}
// MediaPlayerEvent Corresponds to kMediaEventTriggered
type MediaPlayerEvent struct {
// Timestamp ...
Timestamp MediaTimestamp `json:"timestamp"`
// Value ...
Value string `json:"value"`
}
// MediaPlayerErrorSourceLocation Represents logged source line numbers reported in an error.
// NOTE: file and line are from chromium c++ implementation code, not js.
type MediaPlayerErrorSourceLocation struct {
// File ...
File string `json:"file"`
// Line ...
Line int `json:"line"`
}
// MediaPlayerError Corresponds to kMediaError
type MediaPlayerError struct {
// ErrorType ...
ErrorType string `json:"errorType"`
// Code Code is the numeric enum entry for a specific set of error codes, such
// as PipelineStatusCodes in media/base/pipeline_status.h
Code int `json:"code"`
// Stack A trace of where this error was caused / where it passed through.
Stack []*MediaPlayerErrorSourceLocation `json:"stack"`
// Cause Errors potentially have a root cause error, ie, a DecoderError might be
// caused by an WindowsError
Cause []*MediaPlayerError `json:"cause"`
// Data Extra data attached to an error, such as an HRESULT, Video Codec, etc.
Data map[string]gson.JSON `json:"data"`
}
// MediaEnable Enables the Media domain
type MediaEnable struct {
}
// ProtoReq name
func (m MediaEnable) ProtoReq() string { return "Media.enable" }
// Call sends the request
func (m MediaEnable) Call(c Client) error {
return call(m.ProtoReq(), m, nil, c)
}
// MediaDisable Disables the Media domain.
type MediaDisable struct {
}
// ProtoReq name
func (m MediaDisable) ProtoReq() string { return "Media.disable" }
// Call sends the request
func (m MediaDisable) Call(c Client) error {
return call(m.ProtoReq(), m, nil, c)
}
// MediaPlayerPropertiesChanged This can be called multiple times, and can be used to set / override /
// remove player properties. A null propValue indicates removal.
type MediaPlayerPropertiesChanged struct {
// PlayerID ...
PlayerID MediaPlayerID `json:"playerId"`
// Properties ...
Properties []*MediaPlayerProperty `json:"properties"`
}
// ProtoEvent name
func (evt MediaPlayerPropertiesChanged) ProtoEvent() string {
return "Media.playerPropertiesChanged"
}
// MediaPlayerEventsAdded Send events as a list, allowing them to be batched on the browser for less
// congestion. If batched, events must ALWAYS be in chronological order.
type MediaPlayerEventsAdded struct {
// PlayerID ...
PlayerID MediaPlayerID `json:"playerId"`
// Events ...
Events []*MediaPlayerEvent `json:"events"`
}
// ProtoEvent name
func (evt MediaPlayerEventsAdded) ProtoEvent() string {
return "Media.playerEventsAdded"
}
// MediaPlayerMessagesLogged Send a list of any messages that need to be delivered.
type MediaPlayerMessagesLogged struct {
// PlayerID ...
PlayerID MediaPlayerID `json:"playerId"`
// Messages ...
Messages []*MediaPlayerMessage `json:"messages"`
}
// ProtoEvent name
func (evt MediaPlayerMessagesLogged) ProtoEvent() string {
return "Media.playerMessagesLogged"
}
// MediaPlayerErrorsRaised Send a list of any errors that need to be delivered.
type MediaPlayerErrorsRaised struct {
// PlayerID ...
PlayerID MediaPlayerID `json:"playerId"`
// Errors ...
Errors []*MediaPlayerError `json:"errors"`
}
// ProtoEvent name
func (evt MediaPlayerErrorsRaised) ProtoEvent() string {
return "Media.playerErrorsRaised"
}
// MediaPlayersCreated Called whenever a player is created, or when a new agent joins and receives
// a list of active players. If an agent is restored, it will receive the full
// list of player ids and all events again.
type MediaPlayersCreated struct {
// Players ...
Players []MediaPlayerID `json:"players"`
}
// ProtoEvent name
func (evt MediaPlayersCreated) ProtoEvent() string {
return "Media.playersCreated"
}