mirror of https://bitbucket.org/ausocean/av.git
revid/senders.go: remember previously adjusted RB element sizes
This commit is contained in:
parent
2bfb4d6b95
commit
4d5a85b853
|
@ -57,6 +57,11 @@ const (
|
|||
maxBuffLen = 50000000
|
||||
)
|
||||
|
||||
var (
|
||||
adjustedRTMPRBElementSize int
|
||||
adjustedMTSRBElementSize int
|
||||
)
|
||||
|
||||
// httpSender provides an implemntation of io.Writer to perform sends to a http
|
||||
// destination.
|
||||
type httpSender struct {
|
||||
|
@ -270,7 +275,10 @@ func (s *mtsSender) Write(d []byte) (int, error) {
|
|||
if err != nil {
|
||||
s.log(logger.Warning, "ringBuffer write error", "error", err.Error(), "n", n, "size", len(s.buf))
|
||||
if err == ring.ErrTooLong {
|
||||
s.ring = ring.NewBuffer(maxBuffLen/len(d), len(d), 5*time.Second)
|
||||
adjustedMTSRBElementSize = len(d)*2
|
||||
numElements := maxBuffLen/adjustedMTSRBElementSize
|
||||
s.ring = ring.NewBuffer(maxBuffLen/adjustedMTSRBElementSize, adjustedMTSRBElementSize, 5*time.Second)
|
||||
s.log(logger.Info,"adjusted MTS ring buffer element size","new size",adjustedMTSRBElementSize,"num elements",numElements,"size(MB)",numElements*adjustedMTSRBElementSize)
|
||||
}
|
||||
}
|
||||
s.buf = s.buf[:0]
|
||||
|
@ -389,7 +397,10 @@ func (s *rtmpSender) Write(d []byte) (int, error) {
|
|||
} else {
|
||||
s.log(logger.Warning, "ring buffer write error", "error", err.Error())
|
||||
if err == ring.ErrTooLong {
|
||||
s.ring = ring.NewBuffer(maxBuffLen/len(d), len(d), 5*time.Second)
|
||||
adjustedRTMPRBElementSize = len(d)*2
|
||||
numElements := maxBuffLen/adjustedRTMPRBElementSize
|
||||
s.ring = ring.NewBuffer(numElements, adjustedRTMPRBElementSize, 5*time.Second)
|
||||
s.log(logger.Info,"adjusted RTMP ring buffer element size","new size",adjustedRTMPRBElementSize,"num elements",numElements,"size(MB)",numElements*adjustedRTMPRBElementSize)
|
||||
}
|
||||
}
|
||||
s.report(len(d))
|
||||
|
|
Loading…
Reference in New Issue