restore support for multi-track RTCP reports

This commit is contained in:
aler9
2022-03-13 14:52:51 +01:00
parent 6f2d82328f
commit 6fad3354e9
2 changed files with 15 additions and 5 deletions

View File

@@ -671,9 +671,11 @@ func (c *Client) playRecordStart() {
switch *c.effectiveTransport {
case TransportUDP:
for trackID, cct := range c.tracks {
ctrackID := trackID
cct.rtcpReceiver = rtcpreceiver.New(c.udpReceiverReportPeriod, nil,
cct.track.ClockRate(), func(pkt rtcp.Packet) {
c.WritePacketRTCP(trackID, pkt)
c.WritePacketRTCP(ctrackID, pkt)
})
}
@@ -687,9 +689,11 @@ func (c *Client) playRecordStart() {
case TransportUDPMulticast:
for trackID, cct := range c.tracks {
ctrackID := trackID
cct.rtcpReceiver = rtcpreceiver.New(c.udpReceiverReportPeriod, nil,
cct.track.ClockRate(), func(pkt rtcp.Packet) {
c.WritePacketRTCP(trackID, pkt)
c.WritePacketRTCP(ctrackID, pkt)
})
}
@@ -709,9 +713,11 @@ func (c *Client) playRecordStart() {
switch *c.effectiveTransport {
case TransportUDP:
for trackID, cct := range c.tracks {
ctrackID := trackID
cct.rtcpSender = rtcpsender.New(c.udpSenderReportPeriod,
cct.track.ClockRate(), func(pkt rtcp.Packet) {
c.WritePacketRTCP(trackID, pkt)
c.WritePacketRTCP(ctrackID, pkt)
})
}
@@ -722,9 +728,11 @@ func (c *Client) playRecordStart() {
case TransportUDPMulticast:
for trackID, cct := range c.tracks {
ctrackID := trackID
cct.rtcpSender = rtcpsender.New(c.udpSenderReportPeriod,
cct.track.ClockRate(), func(pkt rtcp.Packet) {
c.WritePacketRTCP(trackID, pkt)
c.WritePacketRTCP(ctrackID, pkt)
})
}

View File

@@ -998,9 +998,11 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
ss.WritePacketRTP(trackID, &rtp.Packet{Header: rtp.Header{Version: 2}})
ss.WritePacketRTCP(trackID, &rtcp.ReceiverReport{})
ctrackID := trackID
ss.announcedTracks[trackID].rtcpReceiver = rtcpreceiver.New(ss.s.udpReceiverReportPeriod,
nil, ss.announcedTracks[trackID].track.ClockRate(), func(pkt rtcp.Packet) {
ss.WritePacketRTCP(trackID, pkt)
ss.WritePacketRTCP(ctrackID, pkt)
})
ss.s.udpRTPListener.addClient(ss.author.ip(), track.udpRTPPort, ss, trackID, true)