RTCP SR packages mess up RTP timing

168 views
Skip to first unread message

t.vand...@sping.nl

unread,
Jun 27, 2017, 9:17:42 AM6/27/17
to kurento
I've been experiencing trouble with Kurento trying to "fix" te timing of RTP packages based on RTCP Sender Reports (SR) it's been receiving. For my setup this occurred on the RTPEndpoint side of the pipeline. Whenever it receives a RTCP SR the Kurento log (GST_DEBUG=3) will spit out lines like this:

2017-06-26 21:11:59,664948 64806 [0x00007f89b5409700] warning rtpsynchronizer           kmsrtpsynchronizer.c:435 kms_rtp_synchronizer_process_rtp_buffer_mapped() <KmsRtpSynchronizer@0x18124e0>  Non monotonic PTS assignment in sorted mode (ssrc: 3912190253, seq: 13163, ts: 459255520, ext_ts: 459255520). Forcing monotonic

and

2017-06-26 21:11:59,665062 64806 [0x00007f89b5409700] warning kmsutils                  kmsutils.c:1383 kms_rtp_receiver_adjust_pts() <rtppcmadepay0>  Non incremental PTS (last PTS: 0:00:10.066007888, PTS: 0:00:10.058007888, new PTS: 0:00:10.067007888)

This repeats itself for a couple of seconds, resulting in garbled (decoded) audio during that period. After a few seconds it recovers automatically. Probably after receiving a new RTCP SR.

I can't help but think that this is related to one of the (few) lines in de changelog for 6.6.1 of Kurento: "Fix problem in pts synchronization algorithm when remote is sending wrong RTCP SR packages that produces backwards PTS." So far I've been unable to find the commit(s) in kms-core that represent this fix.

For now I've disabled handling RTCP packages at all. This fixes the issue I've been experiencing, but I'm looking for a more solid solution. Does anybody have a suggestion?

Best regards,

Tom

j.vil...@dglogik.com

unread,
Jul 21, 2017, 4:15:57 PM7/21/17
to kurento
Hi Tom,

I am experiencing this same issue. I am wondering how you went about disabling RTCP package handling. Can you tell me where / how you made this change?

Best regards,

Julian Villalva

t.vand...@sping.nl

unread,
Aug 2, 2017, 9:43:44 AM8/2/17
to kurento
Hello Julian,

Sorry for my late response. Look for the implementation of the method kms_rtp_synchronizer_process_rtcp_packet in kmsrtpsynchronizer.c in the KMS core project and put a return statement at the top to prevent handling any incoming RTCP packets. Now recompile. You might want to fix the warnings for unused parameters etc or just ignore them.

Remember: this is a hack. I didn't find any drawbacks but my test were not extensive.

Best regards,

Tom van der Geer

Reply all
Reply to author
Forward
0 new messages