From c5a5c03bb29878952aafbdcf78d8256351e34400 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Wed, 25 Nov 2020 21:14:50 +0100 Subject: [PATCH] increase udp kernel read buffer size to minimize packet losses (#124) --- go.mod | 2 +- go.sum | 4 ++-- internal/serverudp/server.go | 8 ++++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6cf61d6a..38cb4c7e 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.15 require ( github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect - github.com/aler9/gortsplib v0.0.0-20201122142543-a4849198e079 + github.com/aler9/gortsplib v0.0.0-20201125201250-8305ca75f0f3 github.com/davecgh/go-spew v1.1.1 // indirect github.com/fsnotify/fsnotify v1.4.9 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 diff --git a/go.sum b/go.sum index 58246b77..0b2cfcbc 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafo github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/aler9/gortsplib v0.0.0-20201122142543-a4849198e079 h1:TWNsK8SVomKWW1EO5W4TCefDuF8IfekXe4FxOQSUmrA= -github.com/aler9/gortsplib v0.0.0-20201122142543-a4849198e079/go.mod h1:8P09VjpiPJFyfkVosyF5/TY82jNwkMN165NS/7sc32I= +github.com/aler9/gortsplib v0.0.0-20201125201250-8305ca75f0f3 h1:+17Dx4RhHIFoMxPcbER8AXlRWPvw6c8BqjZMo+JVjJE= +github.com/aler9/gortsplib v0.0.0-20201125201250-8305ca75f0f3/go.mod h1:8P09VjpiPJFyfkVosyF5/TY82jNwkMN165NS/7sc32I= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= diff --git a/internal/serverudp/server.go b/internal/serverudp/server.go index 94efa768..525c772e 100644 --- a/internal/serverudp/server.go +++ b/internal/serverudp/server.go @@ -11,6 +11,9 @@ import ( ) const ( + // use the same buffer size as gstreamer's rtspsrc + kernelReadBufferSize = 0x80000 + readBufferSize = 2048 ) @@ -73,6 +76,11 @@ func New(writeTimeout time.Duration, return nil, err } + err = pc.SetReadBuffer(kernelReadBufferSize) + if err != nil { + return nil, err + } + s := &Server{ writeTimeout: writeTimeout, streamType: streamType,