From 3c104d3727588f37a8480f33c90b7054580fc9d7 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Thu, 7 Apr 2022 18:49:51 +0200 Subject: [PATCH] client: add parameter 'containsKeyFrame' to WritePacketRTP; fix RTCP sender reports --- client.go | 4 ++-- client_publish_test.go | 16 ++++++++-------- examples/client-publish-aac/main.go | 2 +- examples/client-publish-h264/main.go | 2 +- examples/client-publish-options/main.go | 2 +- examples/client-publish-opus/main.go | 2 +- examples/client-publish-pause/main.go | 2 +- examples/client-publish-pcmu/main.go | 2 +- examples/client-read-republish/main.go | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/client.go b/client.go index 6c0eedac..dd0d201d 100644 --- a/client.go +++ b/client.go @@ -1823,7 +1823,7 @@ func (c *Client) runWriter() { } // 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() defer c.writeMutex.RUnlock() @@ -1842,7 +1842,7 @@ func (c *Client) WritePacketRTP(trackID int, pkt *rtp.Packet) error { } 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{ diff --git a/client_publish_test.go b/client_publish_test.go index 86d847d9..be05ddcb 100644 --- a/client_publish_test.go +++ b/client_publish_test.go @@ -253,14 +253,14 @@ func TestClientPublishSerial(t *testing.T) { c.Wait() }() - err = c.WritePacketRTP(0, &testRTPPacket) + err = c.WritePacketRTP(0, &testRTPPacket, true) require.NoError(t, err) <-recvDone c.Close() <-done - err = c.WritePacketRTP(0, &testRTPPacket) + err = c.WritePacketRTP(0, &testRTPPacket, true) require.Error(t, err) }) } @@ -413,7 +413,7 @@ func TestClientPublishParallel(t *testing.T) { defer t.Stop() for range t.C { - err := c.WritePacketRTP(0, &testRTPPacket) + err := c.WritePacketRTP(0, &testRTPPacket, true) if err != nil { return } @@ -567,7 +567,7 @@ func TestClientPublishPauseSerial(t *testing.T) { require.NoError(t, err) defer c.Close() - err = c.WritePacketRTP(0, &testRTPPacket) + err = c.WritePacketRTP(0, &testRTPPacket, true) require.NoError(t, err) _, err = c.Pause() @@ -576,7 +576,7 @@ func TestClientPublishPauseSerial(t *testing.T) { _, err = c.Record() require.NoError(t, err) - err = c.WritePacketRTP(0, &testRTPPacket) + err = c.WritePacketRTP(0, &testRTPPacket, true) require.NoError(t, err) }) } @@ -711,7 +711,7 @@ func TestClientPublishPauseParallel(t *testing.T) { defer t.Stop() for range t.C { - err := c.WritePacketRTP(0, &testRTPPacket) + err := c.WritePacketRTP(0, &testRTPPacket, true) if err != nil { return } @@ -853,7 +853,7 @@ func TestClientPublishAutomaticProtocol(t *testing.T) { require.NoError(t, err) defer c.Close() - err = c.WritePacketRTP(0, &testRTPPacket) + err = c.WritePacketRTP(0, &testRTPPacket, true) require.NoError(t, err) } @@ -1002,7 +1002,7 @@ func TestClientPublishRTCPReport(t *testing.T) { SSRC: 753621, }, Payload: []byte{0x01, 0x02, 0x03, 0x04}, - }) + }, true) require.NoError(t, err) <-reportReceived diff --git a/examples/client-publish-aac/main.go b/examples/client-publish-aac/main.go index 26d86e0f..29828440 100644 --- a/examples/client-publish-aac/main.go +++ b/examples/client-publish-aac/main.go @@ -57,7 +57,7 @@ func main() { } // route RTP packet to the server - err = c.WritePacketRTP(0, &pkt) + err = c.WritePacketRTP(0, &pkt, true) if err != nil { panic(err) } diff --git a/examples/client-publish-h264/main.go b/examples/client-publish-h264/main.go index 0fca60f7..d6d8f22c 100644 --- a/examples/client-publish-h264/main.go +++ b/examples/client-publish-h264/main.go @@ -58,7 +58,7 @@ func main() { } // route RTP packet to the server - err = c.WritePacketRTP(0, &pkt) + err = c.WritePacketRTP(0, &pkt, true) if err != nil { panic(err) } diff --git a/examples/client-publish-options/main.go b/examples/client-publish-options/main.go index 84433fff..0fa025b9 100644 --- a/examples/client-publish-options/main.go +++ b/examples/client-publish-options/main.go @@ -68,7 +68,7 @@ func main() { } // route RTP packet to the server - err = c.WritePacketRTP(0, &pkt) + err = c.WritePacketRTP(0, &pkt, true) if err != nil { panic(err) } diff --git a/examples/client-publish-opus/main.go b/examples/client-publish-opus/main.go index 59dad6b6..53e60858 100644 --- a/examples/client-publish-opus/main.go +++ b/examples/client-publish-opus/main.go @@ -58,7 +58,7 @@ func main() { } // route RTP packet to the server - err = c.WritePacketRTP(0, &pkt) + err = c.WritePacketRTP(0, &pkt, true) if err != nil { panic(err) } diff --git a/examples/client-publish-pause/main.go b/examples/client-publish-pause/main.go index 879603c2..e9d49807 100644 --- a/examples/client-publish-pause/main.go +++ b/examples/client-publish-pause/main.go @@ -62,7 +62,7 @@ func main() { } // route RTP packet to the server - c.WritePacketRTP(0, &pkt) + c.WritePacketRTP(0, &pkt, true) // read another RTP packet from source n, _, err = pc.ReadFrom(buf) diff --git a/examples/client-publish-pcmu/main.go b/examples/client-publish-pcmu/main.go index 86037d5c..c1c734bc 100644 --- a/examples/client-publish-pcmu/main.go +++ b/examples/client-publish-pcmu/main.go @@ -55,7 +55,7 @@ func main() { } // route RTP packet to the server - err = c.WritePacketRTP(0, &pkt) + err = c.WritePacketRTP(0, &pkt, true) if err != nil { panic(err) } diff --git a/examples/client-read-republish/main.go b/examples/client-read-republish/main.go index febff98c..613b6b50 100644 --- a/examples/client-read-republish/main.go +++ b/examples/client-read-republish/main.go @@ -47,7 +47,7 @@ func main() { // called when a RTP packet arrives reader.OnPacketRTP = func(trackID int, pkt *rtp.Packet) { - publisher.WritePacketRTP(trackID, pkt) + publisher.WritePacketRTP(trackID, pkt, true) } // start reading tracks