From fd580b6f2c35bf77d5a9095e7da445ad49cd5b3a Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Mon, 17 Apr 2023 10:09:38 +0300 Subject: [PATCH] Fix RTSP passive producer --- pkg/rtsp/producer.go | 12 ++++++++++-- pkg/rtsp/server.go | 5 +---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/pkg/rtsp/producer.go b/pkg/rtsp/producer.go index 0cd5efc7..764fb6ef 100644 --- a/pkg/rtsp/producer.go +++ b/pkg/rtsp/producer.go @@ -51,11 +51,19 @@ func (c *Conn) Start() (err error) { case StateConn: err = errors.New("start from CONN state") case StateSetup: - if err = c.Play(); err == nil { + switch c.mode { + case core.ModeActiveProducer: + err = c.Play() + case core.ModePassiveProducer: + err = nil + default: + err = errors.New("start from wrong mode: " + c.mode.String()) + } + + if err == nil { c.state = StatePlay ok = true } - case StatePlay: } c.stateMu.Unlock() diff --git a/pkg/rtsp/server.go b/pkg/rtsp/server.go index 574f445d..ce6658b6 100644 --- a/pkg/rtsp/server.go +++ b/pkg/rtsp/server.go @@ -151,10 +151,7 @@ func (c *Conn) Accept() error { case MethodRecord, MethodPlay: res := &tcp.Response{Request: req} - if err = c.WriteResponse(res); err == nil { - c.state = StatePlay - } - return err + return c.WriteResponse(res) case MethodTeardown: res := &tcp.Response{Request: req}