golanggohlsrtmpwebrtcmedia-serverobs-studiortcprtmp-proxyrtmp-serverrtprtsprtsp-proxyrtsp-relayrtsp-serversrtstreamingwebrtc-proxy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
965 B
53 lines
965 B
package amf0 |
|
|
|
// ObjectEntry is an entry of Object. |
|
type ObjectEntry struct { |
|
Key string |
|
Value interface{} |
|
} |
|
|
|
// Object is an AMF0 object. |
|
type Object []ObjectEntry |
|
|
|
// ECMAArray is an AMF0 ECMA Array. |
|
type ECMAArray Object |
|
|
|
// Get returns the value corresponding to key. |
|
func (o Object) Get(key string) (interface{}, bool) { |
|
for _, item := range o { |
|
if item.Key == key { |
|
return item.Value, true |
|
} |
|
} |
|
return nil, false |
|
} |
|
|
|
// GetString returns the value corresponding to key, only if that is a string. |
|
func (o Object) GetString(key string) (string, bool) { |
|
v, ok := o.Get(key) |
|
if !ok { |
|
return "", false |
|
} |
|
|
|
v2, ok2 := v.(string) |
|
if !ok2 { |
|
return "", false |
|
} |
|
|
|
return v2, ok2 |
|
} |
|
|
|
// GetFloat64 returns the value corresponding to key, only if that is a float64. |
|
func (o Object) GetFloat64(key string) (float64, bool) { |
|
v, ok := o.Get(key) |
|
if !ok { |
|
return 0, false |
|
} |
|
|
|
v2, ok2 := v.(float64) |
|
if !ok2 { |
|
return 0, false |
|
} |
|
|
|
return v2, ok2 |
|
}
|
|
|