mirror of
https://github.com/Monibuca/engine.git
synced 2025-10-05 16:46:58 +08:00
fix: subscriber wait track timeout
This commit is contained in:
@@ -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)
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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 {
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user