Browse Source

fix timestamp of outgoing RTSP/RTP packets in case of aggregated access units (#2389)

pull/2390/head
Alessandro Ros 2 years ago committed by GitHub
parent
commit
e4df14a447
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      internal/core/webrtc_outgoing_track.go
  2. 2
      internal/formatprocessor/ac3.go
  3. 2
      internal/formatprocessor/av1.go
  4. 2
      internal/formatprocessor/h264.go
  5. 2
      internal/formatprocessor/h265.go
  6. 2
      internal/formatprocessor/mpeg1_audio.go
  7. 2
      internal/formatprocessor/mpeg1_video.go
  8. 2
      internal/formatprocessor/mpeg4_audio_generic.go
  9. 2
      internal/formatprocessor/mpeg4_audio_latm.go
  10. 2
      internal/formatprocessor/mpeg4_video.go
  11. 2
      internal/formatprocessor/opus.go
  12. 2
      internal/formatprocessor/vp8.go
  13. 2
      internal/formatprocessor/vp9.go

8
internal/core/webrtc_outgoing_track.go

@ -68,7 +68,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac @@ -68,7 +68,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac
}
for _, pkt := range packets {
pkt.Timestamp = tunit.RTPPackets[0].Timestamp
pkt.Timestamp += tunit.RTPPackets[0].Timestamp
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
@ -119,7 +119,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac @@ -119,7 +119,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac
}
for _, pkt := range packets {
pkt.Timestamp = tunit.RTPPackets[0].Timestamp
pkt.Timestamp += tunit.RTPPackets[0].Timestamp
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
@ -170,7 +170,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac @@ -170,7 +170,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac
}
for _, pkt := range packets {
pkt.Timestamp = tunit.RTPPackets[0].Timestamp
pkt.Timestamp += tunit.RTPPackets[0].Timestamp
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
@ -231,7 +231,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac @@ -231,7 +231,7 @@ func newWebRTCOutgoingTrackVideo(desc *description.Session) (*webRTCOutgoingTrac
}
for _, pkt := range packets {
pkt.Timestamp = tunit.RTPPackets[0].Timestamp
pkt.Timestamp += tunit.RTPPackets[0].Timestamp
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}

2
internal/formatprocessor/ac3.go

@ -55,7 +55,7 @@ func (t *formatProcessorAC3) ProcessUnit(uu unit.Unit) error { //nolint:dupl @@ -55,7 +55,7 @@ func (t *formatProcessorAC3) ProcessUnit(uu unit.Unit) error { //nolint:dupl
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/av1.go

@ -57,7 +57,7 @@ func (t *formatProcessorAV1) ProcessUnit(uu unit.Unit) error { //nolint:dupl @@ -57,7 +57,7 @@ func (t *formatProcessorAV1) ProcessUnit(uu unit.Unit) error { //nolint:dupl
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/h264.go

@ -226,7 +226,7 @@ func (t *formatProcessorH264) ProcessUnit(uu unit.Unit) error { @@ -226,7 +226,7 @@ func (t *formatProcessorH264) ProcessUnit(uu unit.Unit) error {
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/h265.go

@ -245,7 +245,7 @@ func (t *formatProcessorH265) ProcessUnit(uu unit.Unit) error { //nolint:dupl @@ -245,7 +245,7 @@ func (t *formatProcessorH265) ProcessUnit(uu unit.Unit) error { //nolint:dupl
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/mpeg1_audio.go

@ -55,7 +55,7 @@ func (t *formatProcessorMPEG1Audio) ProcessUnit(uu unit.Unit) error { //nolint:d @@ -55,7 +55,7 @@ func (t *formatProcessorMPEG1Audio) ProcessUnit(uu unit.Unit) error { //nolint:d
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/mpeg1_video.go

@ -56,7 +56,7 @@ func (t *formatProcessorMPEG1Video) ProcessUnit(uu unit.Unit) error { //nolint:d @@ -56,7 +56,7 @@ func (t *formatProcessorMPEG1Video) ProcessUnit(uu unit.Unit) error { //nolint:d
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/mpeg4_audio_generic.go

@ -59,7 +59,7 @@ func (t *formatProcessorMPEG4AudioGeneric) ProcessUnit(uu unit.Unit) error { //n @@ -59,7 +59,7 @@ func (t *formatProcessorMPEG4AudioGeneric) ProcessUnit(uu unit.Unit) error { //n
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/mpeg4_audio_latm.go

@ -55,7 +55,7 @@ func (t *formatProcessorMPEG4AudioLATM) ProcessUnit(uu unit.Unit) error { //noli @@ -55,7 +55,7 @@ func (t *formatProcessorMPEG4AudioLATM) ProcessUnit(uu unit.Unit) error { //noli
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/mpeg4_video.go

@ -94,7 +94,7 @@ func (t *formatProcessorMPEG4Video) ProcessUnit(uu unit.Unit) error { //nolint:d @@ -94,7 +94,7 @@ func (t *formatProcessorMPEG4Video) ProcessUnit(uu unit.Unit) error { //nolint:d
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/opus.go

@ -60,7 +60,7 @@ func (t *formatProcessorOpus) ProcessUnit(uu unit.Unit) error { //nolint:dupl @@ -60,7 +60,7 @@ func (t *formatProcessorOpus) ProcessUnit(uu unit.Unit) error { //nolint:dupl
}
ts := uint32(multiplyAndDivide(pts, time.Duration(t.format.ClockRate()), time.Second))
pkt.Timestamp = ts
pkt.Timestamp += ts
rtpPackets = append(rtpPackets, pkt)
pts += opus.PacketDuration(packet)

2
internal/formatprocessor/vp8.go

@ -56,7 +56,7 @@ func (t *formatProcessorVP8) ProcessUnit(uu unit.Unit) error { //nolint:dupl @@ -56,7 +56,7 @@ func (t *formatProcessorVP8) ProcessUnit(uu unit.Unit) error { //nolint:dupl
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

2
internal/formatprocessor/vp9.go

@ -56,7 +56,7 @@ func (t *formatProcessorVP9) ProcessUnit(uu unit.Unit) error { //nolint:dupl @@ -56,7 +56,7 @@ func (t *formatProcessorVP9) ProcessUnit(uu unit.Unit) error { //nolint:dupl
ts := uint32(multiplyAndDivide(u.PTS, time.Duration(t.format.ClockRate()), time.Second))
for _, pkt := range pkts {
pkt.Timestamp = ts
pkt.Timestamp += ts
}
u.RTPPackets = pkts

Loading…
Cancel
Save