client: add parameter 'containsKeyFrame' to WritePacketRTP; fix RTCP sender reports

This commit is contained in:
aler9
2022-04-07 18:49:51 +02:00
committed by Alessandro Ros
parent d0cab3c8bd
commit 3c104d3727
9 changed files with 17 additions and 17 deletions

View File

@@ -1823,7 +1823,7 @@ func (c *Client) runWriter() {
} }
// WritePacketRTP writes a RTP packet. // WritePacketRTP writes a RTP packet.
func (c *Client) WritePacketRTP(trackID int, pkt *rtp.Packet) error { func (c *Client) WritePacketRTP(trackID int, pkt *rtp.Packet, ptsEqualsDTS bool) error {
c.writeMutex.RLock() c.writeMutex.RLock()
defer c.writeMutex.RUnlock() defer c.writeMutex.RUnlock()
@@ -1842,7 +1842,7 @@ func (c *Client) WritePacketRTP(trackID int, pkt *rtp.Packet) error {
} }
if c.tracks[trackID].rtcpSender != nil { if c.tracks[trackID].rtcpSender != nil {
c.tracks[trackID].rtcpSender.ProcessPacketRTP(time.Now(), pkt, true) c.tracks[trackID].rtcpSender.ProcessPacketRTP(time.Now(), pkt, ptsEqualsDTS)
} }
c.writeBuffer.Push(trackTypePayload{ c.writeBuffer.Push(trackTypePayload{

View File

@@ -253,14 +253,14 @@ func TestClientPublishSerial(t *testing.T) {
c.Wait() c.Wait()
}() }()
err = c.WritePacketRTP(0, &testRTPPacket) err = c.WritePacketRTP(0, &testRTPPacket, true)
require.NoError(t, err) require.NoError(t, err)
<-recvDone <-recvDone
c.Close() c.Close()
<-done <-done
err = c.WritePacketRTP(0, &testRTPPacket) err = c.WritePacketRTP(0, &testRTPPacket, true)
require.Error(t, err) require.Error(t, err)
}) })
} }
@@ -413,7 +413,7 @@ func TestClientPublishParallel(t *testing.T) {
defer t.Stop() defer t.Stop()
for range t.C { for range t.C {
err := c.WritePacketRTP(0, &testRTPPacket) err := c.WritePacketRTP(0, &testRTPPacket, true)
if err != nil { if err != nil {
return return
} }
@@ -567,7 +567,7 @@ func TestClientPublishPauseSerial(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
defer c.Close() defer c.Close()
err = c.WritePacketRTP(0, &testRTPPacket) err = c.WritePacketRTP(0, &testRTPPacket, true)
require.NoError(t, err) require.NoError(t, err)
_, err = c.Pause() _, err = c.Pause()
@@ -576,7 +576,7 @@ func TestClientPublishPauseSerial(t *testing.T) {
_, err = c.Record() _, err = c.Record()
require.NoError(t, err) require.NoError(t, err)
err = c.WritePacketRTP(0, &testRTPPacket) err = c.WritePacketRTP(0, &testRTPPacket, true)
require.NoError(t, err) require.NoError(t, err)
}) })
} }
@@ -711,7 +711,7 @@ func TestClientPublishPauseParallel(t *testing.T) {
defer t.Stop() defer t.Stop()
for range t.C { for range t.C {
err := c.WritePacketRTP(0, &testRTPPacket) err := c.WritePacketRTP(0, &testRTPPacket, true)
if err != nil { if err != nil {
return return
} }
@@ -853,7 +853,7 @@ func TestClientPublishAutomaticProtocol(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
defer c.Close() defer c.Close()
err = c.WritePacketRTP(0, &testRTPPacket) err = c.WritePacketRTP(0, &testRTPPacket, true)
require.NoError(t, err) require.NoError(t, err)
} }
@@ -1002,7 +1002,7 @@ func TestClientPublishRTCPReport(t *testing.T) {
SSRC: 753621, SSRC: 753621,
}, },
Payload: []byte{0x01, 0x02, 0x03, 0x04}, Payload: []byte{0x01, 0x02, 0x03, 0x04},
}) }, true)
require.NoError(t, err) require.NoError(t, err)
<-reportReceived <-reportReceived

View File

@@ -57,7 +57,7 @@ func main() {
} }
// route RTP packet to the server // route RTP packet to the server
err = c.WritePacketRTP(0, &pkt) err = c.WritePacketRTP(0, &pkt, true)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -58,7 +58,7 @@ func main() {
} }
// route RTP packet to the server // route RTP packet to the server
err = c.WritePacketRTP(0, &pkt) err = c.WritePacketRTP(0, &pkt, true)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -68,7 +68,7 @@ func main() {
} }
// route RTP packet to the server // route RTP packet to the server
err = c.WritePacketRTP(0, &pkt) err = c.WritePacketRTP(0, &pkt, true)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -58,7 +58,7 @@ func main() {
} }
// route RTP packet to the server // route RTP packet to the server
err = c.WritePacketRTP(0, &pkt) err = c.WritePacketRTP(0, &pkt, true)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -62,7 +62,7 @@ func main() {
} }
// route RTP packet to the server // route RTP packet to the server
c.WritePacketRTP(0, &pkt) c.WritePacketRTP(0, &pkt, true)
// read another RTP packet from source // read another RTP packet from source
n, _, err = pc.ReadFrom(buf) n, _, err = pc.ReadFrom(buf)

View File

@@ -55,7 +55,7 @@ func main() {
} }
// route RTP packet to the server // route RTP packet to the server
err = c.WritePacketRTP(0, &pkt) err = c.WritePacketRTP(0, &pkt, true)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -47,7 +47,7 @@ func main() {
// called when a RTP packet arrives // called when a RTP packet arrives
reader.OnPacketRTP = func(trackID int, pkt *rtp.Packet) { reader.OnPacketRTP = func(trackID int, pkt *rtp.Packet) {
publisher.WritePacketRTP(trackID, pkt) publisher.WritePacketRTP(trackID, pkt, true)
} }
// start reading tracks // start reading tracks