server: if TCP frames are written before the PLAY response, queue and send them anyway, like UDP already does

This commit is contained in:
aler9
2021-03-30 22:06:58 +02:00
parent d39996c824
commit d3561d9b26
4 changed files with 44 additions and 10 deletions

View File

@@ -425,6 +425,7 @@ func (sc *ServerConn) frameModeDisable() {
sc.tcpFrameEnabled = false
sc.tcpFrameWriteBuffer.Close()
<-sc.tcpBackgroundWriteDone
sc.tcpFrameWriteBuffer.Reset()
} else {
for _, track := range sc.setuppedTracks {
@@ -443,6 +444,7 @@ func (sc *ServerConn) frameModeDisable() {
sc.tcpFrameEnabled = false
sc.tcpFrameWriteBuffer.Close()
<-sc.tcpBackgroundWriteDone
sc.tcpFrameWriteBuffer.Reset()
} else {
for _, track := range sc.setuppedTracks {
@@ -1065,7 +1067,6 @@ func (sc *ServerConn) handleRequestOuter(req *base.Request) error {
res.Write(sc.bw)
// start background write
sc.tcpFrameWriteBuffer.Reset()
sc.tcpBackgroundWriteDone = make(chan struct{})
go sc.tcpBackgroundWrite()