fix: subscriber wait track timeout

This commit is contained in:
langhuihui
2024-02-11 10:29:11 +08:00
parent 2891ee8392
commit f320e61803
4 changed files with 4 additions and 5 deletions

View File

@@ -524,10 +524,9 @@ func (s *Stream) run() {
}
if s.State == STATE_WAITTRACK {
s.action(ACTION_TRACKAVAILABLE)
} else {
s.Subscribers.AbortWait()
s.timeout.Reset(time.Second * 5)
}
s.Subscribers.AbortWait()
s.timeout.Reset(time.Second * 5)
} else {
s.Debug("timeout", timeOutInfo)
s.action(ACTION_TIMEOUT)

View File

@@ -232,7 +232,6 @@ func (s *Subscriber) PlayBlock(subType byte) {
switch subType {
case SUBTYPE_RAW:
sendVideoFrame = func(frame *AVFrame) {
// fmt.Println("v", frame.Sequence, s.VideoReader.AbsTime, s.VideoReader.Delay)
if frame.AUList.ByteLength == 0 {
return
}

View File

@@ -104,7 +104,7 @@ func (r *AVRingReader) ReadFrame(mode int) (err error) {
if err = r.Read(r.Track.IDRing); err != nil {
return
}
r.SkipTs = r.Value.Timestamp - r.beforeJump - r.StartTs
r.SkipTs = r.Value.Timestamp - r.beforeJump - r.StartTs - 10*time.Millisecond
r.Info("jump", zap.Uint32("skipSeq", r.Track.IDRing.Value.Sequence-r.FirstSeq), zap.Duration("skipTs", r.SkipTs))
r.State = READSTATE_NORMAL
} else {

View File

@@ -222,6 +222,7 @@ func (vt *Video) CompleteAVCC(rv *AVFrame) {
}
b[1] = 1
// println(rv.PTS < rv.DTS, "\t", rv.PTS, "\t", rv.DTS, "\t", rv.PTS-rv.DTS)
// vt.Info("cts", zap.Uint32("cts", uint32((rv.PTS-rv.DTS)/90)))
// 写入CTS
util.PutBE(b[2:5], (rv.PTS-rv.DTS)/90)
rv.AVCC.Push(mem)