From f7fdd609665bf38b8f145aa12d3ea60b8e544b05 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Mon, 31 Oct 2022 19:16:13 +0100 Subject: [PATCH] rtsp server: log decode errors --- internal/core/rtsp_server.go | 10 +++++++++- internal/core/rtsp_session.go | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/internal/core/rtsp_server.go b/internal/core/rtsp_server.go index 3d35ff249bd..651413b4818 100644 --- a/internal/core/rtsp_server.go +++ b/internal/core/rtsp_server.go @@ -389,7 +389,7 @@ func (s *rtspServer) OnPause(ctx *gortsplib.ServerHandlerOnPauseCtx) (*base.Resp return se.onPause(ctx) } -// OnPacketRTP implements gortsplib.ServerHandlerOnPacket. +// OnPacketRTP implements gortsplib.ServerHandlerOnPacketRTP. func (s *rtspServer) OnPacketRTP(ctx *gortsplib.ServerHandlerOnPacketRTPCtx) { s.mutex.RLock() se := s.sessions[ctx.Session] @@ -397,6 +397,14 @@ func (s *rtspServer) OnPacketRTP(ctx *gortsplib.ServerHandlerOnPacketRTPCtx) { se.onPacketRTP(ctx) } +// OnDecodeError implements gortsplib.ServerHandlerOnOnDecodeError. +func (s *rtspServer) OnDecodeError(ctx *gortsplib.ServerHandlerOnDecodeErrorCtx) { + s.mutex.RLock() + se := s.sessions[ctx.Session] + s.mutex.RUnlock() + se.onDecodeError(ctx) +} + // apiSessionsList is called by api and metrics. func (s *rtspServer) apiSessionsList(req rtspServerAPISessionsListReq) rtspServerAPISessionsListRes { select { diff --git a/internal/core/rtsp_session.go b/internal/core/rtsp_session.go index 0a3eaa1e604..5e549f5a826 100644 --- a/internal/core/rtsp_session.go +++ b/internal/core/rtsp_session.go @@ -394,3 +394,8 @@ func (s *rtspSession) onPacketRTP(ctx *gortsplib.ServerHandlerOnPacketRTPCtx) { }) } } + +// onDecodeError is called by rtspServer. +func (s *rtspSession) onDecodeError(ctx *gortsplib.ServerHandlerOnDecodeErrorCtx) { + s.log(logger.Warn, "%v", ctx.Error) +}