diff --git a/subscriber.go b/subscriber.go index 40fc35e..c5de305 100644 --- a/subscriber.go +++ b/subscriber.go @@ -121,7 +121,7 @@ type TrackPlayer struct { type Subscriber struct { IO Config *config.Subscribe - readers []*track.AVRingReader + readers []*track.AVRingReader TrackPlayer `json:"-" yaml:"-"` } @@ -263,7 +263,7 @@ func (s *Subscriber) PlayBlock(subType byte) { } sendAudioFrame = func(frame *AVFrame) { - // fmt.Println("a", frame.Sequence, frame.AbsTime, s.AudioReader.AbsTime) + // fmt.Println("a", frame.Sequence, frame.Timestamp, s.AudioReader.AbsTime) delta := uint32(s.AudioReader.SkipTs / time.Millisecond * time.Duration(s.AudioReader.Track.SampleRate) / 1000) frame.RTP.Range(func(ap RTPFrame) bool { audioSeq++ diff --git a/track/g711.go b/track/g711.go index acb0c18..5ae5bc6 100644 --- a/track/g711.go +++ b/track/g711.go @@ -60,6 +60,7 @@ func (g711 *G711) WriteAVCC(ts uint32, frame *util.BLL) error { func (g711 *G711) WriteRTPFrame(rtpItem *util.ListItem[RTPFrame]) { frame := &rtpItem.Value + g711.Value.RTP.Push(rtpItem) if g711.SampleRate != 90000 { g711.generateTimestamp(uint32(uint64(frame.Timestamp) * 90000 / uint64(g711.SampleRate))) } diff --git a/track/h265.go b/track/h265.go index 5e7092f..a501460 100644 --- a/track/h265.go +++ b/track/h265.go @@ -139,6 +139,7 @@ func (vt *H265) WriteAVCC(ts uint32, frame *util.BLL) (err error) { func (vt *H265) WriteRTPFrame(rtpItem *util.ListItem[RTPFrame]) { frame := &rtpItem.Value rv := vt.Value + rv.RTP.Push(rtpItem) // TODO: DONL may need to be parsed if `sprop-max-don-diff` is greater than 0 on the RTP stream. var usingDonlField bool var buffer = util.Buffer(frame.Payload)