api: decode durations from strings instead of numbers

This allows to use human-readable durations with the API,
for instance: "5s" instead of 5000000000
This commit is contained in:
aler9
2021-09-26 23:06:40 +02:00
parent 64808863ed
commit ca9645c2f9
19 changed files with 242 additions and 147 deletions

View File

@@ -13,6 +13,7 @@ import (
"github.com/aler9/gortsplib"
"github.com/aler9/gortsplib/pkg/base"
"github.com/aler9/rtsp-simple-server/internal/conf"
"github.com/aler9/rtsp-simple-server/internal/logger"
)
@@ -31,8 +32,8 @@ type rtspSource struct {
proto *gortsplib.ClientProtocol
anyPortEnable bool
fingerprint string
readTimeout time.Duration
writeTimeout time.Duration
readTimeout conf.StringDuration
writeTimeout conf.StringDuration
readBufferCount int
readBufferSize int
wg *sync.WaitGroup
@@ -48,8 +49,8 @@ func newRTSPSource(
proto *gortsplib.ClientProtocol,
anyPortEnable bool,
fingerprint string,
readTimeout time.Duration,
writeTimeout time.Duration,
readTimeout conf.StringDuration,
writeTimeout conf.StringDuration,
readBufferCount int,
readBufferSize int,
wg *sync.WaitGroup,
@@ -134,8 +135,8 @@ func (s *rtspSource) runInner() bool {
return nil
},
},
ReadTimeout: s.readTimeout,
WriteTimeout: s.writeTimeout,
ReadTimeout: time.Duration(s.readTimeout),
WriteTimeout: time.Duration(s.writeTimeout),
ReadBufferCount: s.readBufferCount,
ReadBufferSize: s.readBufferSize,
AnyPortEnable: s.anyPortEnable,