mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 23:26:54 +08:00
restore support for multi-track RTCP reports
This commit is contained in:
16
client.go
16
client.go
@@ -671,9 +671,11 @@ func (c *Client) playRecordStart() {
|
|||||||
switch *c.effectiveTransport {
|
switch *c.effectiveTransport {
|
||||||
case TransportUDP:
|
case TransportUDP:
|
||||||
for trackID, cct := range c.tracks {
|
for trackID, cct := range c.tracks {
|
||||||
|
ctrackID := trackID
|
||||||
|
|
||||||
cct.rtcpReceiver = rtcpreceiver.New(c.udpReceiverReportPeriod, nil,
|
cct.rtcpReceiver = rtcpreceiver.New(c.udpReceiverReportPeriod, nil,
|
||||||
cct.track.ClockRate(), func(pkt rtcp.Packet) {
|
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:
|
case TransportUDPMulticast:
|
||||||
for trackID, cct := range c.tracks {
|
for trackID, cct := range c.tracks {
|
||||||
|
ctrackID := trackID
|
||||||
|
|
||||||
cct.rtcpReceiver = rtcpreceiver.New(c.udpReceiverReportPeriod, nil,
|
cct.rtcpReceiver = rtcpreceiver.New(c.udpReceiverReportPeriod, nil,
|
||||||
cct.track.ClockRate(), func(pkt rtcp.Packet) {
|
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 {
|
switch *c.effectiveTransport {
|
||||||
case TransportUDP:
|
case TransportUDP:
|
||||||
for trackID, cct := range c.tracks {
|
for trackID, cct := range c.tracks {
|
||||||
|
ctrackID := trackID
|
||||||
|
|
||||||
cct.rtcpSender = rtcpsender.New(c.udpSenderReportPeriod,
|
cct.rtcpSender = rtcpsender.New(c.udpSenderReportPeriod,
|
||||||
cct.track.ClockRate(), func(pkt rtcp.Packet) {
|
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:
|
case TransportUDPMulticast:
|
||||||
for trackID, cct := range c.tracks {
|
for trackID, cct := range c.tracks {
|
||||||
|
ctrackID := trackID
|
||||||
|
|
||||||
cct.rtcpSender = rtcpsender.New(c.udpSenderReportPeriod,
|
cct.rtcpSender = rtcpsender.New(c.udpSenderReportPeriod,
|
||||||
cct.track.ClockRate(), func(pkt rtcp.Packet) {
|
cct.track.ClockRate(), func(pkt rtcp.Packet) {
|
||||||
c.WritePacketRTCP(trackID, pkt)
|
c.WritePacketRTCP(ctrackID, pkt)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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.WritePacketRTP(trackID, &rtp.Packet{Header: rtp.Header{Version: 2}})
|
||||||
ss.WritePacketRTCP(trackID, &rtcp.ReceiverReport{})
|
ss.WritePacketRTCP(trackID, &rtcp.ReceiverReport{})
|
||||||
|
|
||||||
|
ctrackID := trackID
|
||||||
|
|
||||||
ss.announcedTracks[trackID].rtcpReceiver = rtcpreceiver.New(ss.s.udpReceiverReportPeriod,
|
ss.announcedTracks[trackID].rtcpReceiver = rtcpreceiver.New(ss.s.udpReceiverReportPeriod,
|
||||||
nil, ss.announcedTracks[trackID].track.ClockRate(), func(pkt rtcp.Packet) {
|
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)
|
ss.s.udpRTPListener.addClient(ss.author.ip(), track.udpRTPPort, ss, trackID, true)
|
||||||
|
Reference in New Issue
Block a user