def test_handle_rtcp_rr(self): sender = RTCRtpSender(VideoStreamTrack(), self.local_transport) self.assertEqual(sender.kind, 'video') run(sender.send(RTCRtpParameters(codecs=[VP8_CODEC]))) # receive RTCP RR packet = RtcpRrPacket(ssrc=1234, reports=[ RtcpReceiverInfo(ssrc=sender._ssrc, fraction_lost=0, packets_lost=0, highest_sequence=630, jitter=1906, lsr=0, dlsr=0) ]) run(sender._handle_rtcp_packet(packet)) # check stats report = run(sender.getStats()) self.assertTrue(isinstance(report, RTCStatsReport)) self.assertEqual(sorted([s.type for s in report.values()]), ['outbound-rtp', 'remote-inbound-rtp', 'transport']) # clean shutdown run(sender.stop())
def test_handle_rtcp_rr(self): transport, remote = dummy_dtls_transport_pair() sender = RTCRtpSender(VideoStreamTrack(), transport) self.assertEqual(sender.kind, 'video') self.assertEqual(sender.transport, transport) run( sender.send( RTCRtpParameters(codecs=[ RTCRtpCodecParameters( name='VP8', clockRate=90000, payloadType=100), ]))) # receive RTCP RR for packet in RtcpPacket.parse(load('rtcp_rr.bin')): run(sender._handle_rtcp_packet(packet)) # check stats report = run(sender.getStats()) self.assertTrue(isinstance(report, RTCStatsReport)) self.assertEqual(sorted([s.type for s in report.values()]), ['outbound-rtp', 'remote-inbound-rtp', 'transport']) # clean shutdown run(sender.stop())