From 584d2c9494884fb65b6e57c60cae545dc4d22b7e Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Wed, 11 Nov 2020 23:10:25 +0100 Subject: [PATCH] allow repeated PAUSE requests (#107) --- internal/client/client.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/client/client.go b/internal/client/client.go index c3600d7e..6bbc3ba6 100644 --- a/internal/client/client.go +++ b/internal/client/client.go @@ -855,8 +855,10 @@ func (c *Client) handleRequest(req *base.Request) error { case base.PAUSE: err := c.checkState(map[state]struct{}{ - statePlay: {}, - stateRecord: {}, + statePrePlay: {}, + statePlay: {}, + statePreRecord: {}, + stateRecord: {}, }) if err != nil { c.writeResError(cseq, base.StatusBadRequest, err) @@ -870,7 +872,11 @@ func (c *Client) handleRequest(req *base.Request) error { "Session": base.HeaderValue{sessionId}, }, }) - return errStateInitial + + if c.state == statePlay || c.state == stateRecord { + return errStateInitial + } + return nil case base.TEARDOWN: // close connection silently