mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 07:06:58 +08:00
add OnTransportSwitch, OnPacketLost, OnDecodeError to server and client (#225)
These new hooks replace the generic hooks Log() and OnWarning().
This commit is contained in:
@@ -263,6 +263,34 @@ func (ss *ServerSession) UserData() interface{} {
|
||||
return ss.userData
|
||||
}
|
||||
|
||||
func (ss *ServerSession) onPacketLost(err error) {
|
||||
if h, ok := ss.s.Handler.(ServerHandlerOnPacketLost); ok {
|
||||
h.OnPacketLost(&ServerHandlerOnPacketLostCtx{
|
||||
Session: ss,
|
||||
Error: err,
|
||||
})
|
||||
} else if h, ok := ss.s.Handler.(ServerHandlerOnWarning); ok {
|
||||
h.OnWarning(&ServerHandlerOnWarningCtx{
|
||||
Session: ss,
|
||||
Error: err,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (ss *ServerSession) onDecodeError(err error) {
|
||||
if h, ok := ss.s.Handler.(ServerHandlerOnDecodeError); ok {
|
||||
h.OnDecodeError(&ServerHandlerOnDecodeErrorCtx{
|
||||
Session: ss,
|
||||
Error: err,
|
||||
})
|
||||
} else if h, ok := ss.s.Handler.(ServerHandlerOnWarning); ok {
|
||||
h.OnWarning(&ServerHandlerOnWarningCtx{
|
||||
Session: ss,
|
||||
Error: err,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (ss *ServerSession) checkState(allowed map[ServerSessionState]struct{}) error {
|
||||
if _, ok := allowed[ss.state]; ok {
|
||||
return nil
|
||||
|
Reference in New Issue
Block a user