/* Ċ Ġ* ĠCopyright Ġ@ Ġ 2 0 1 8 ĠAt lassian ĠP ty ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . j its i . nl j . transform . node . outgoing Ċ Ċ import Ġorg . j its i . nl j . Event Ċ import Ġorg . j its i . nl j . Packet Info Ċ import Ġorg . j its i . nl j . R tp Extension Added Event Ċ import Ġorg . j its i . nl j . R tp Extension Clear Event Ċ import Ġorg . j its i . nl j . forEach As Ċ import Ġorg . j its i . nl j . transform . node . Node Ċ import Ġorg . j its i . nl j . util . c info Ċ import Ġorg . j its i . nl j . util . to Raw Packet Ċ import Ġorg . j its i . rtp . R tp Packet Ċ import Ġorg . j its i . rtp . T cc Header Extension Ċ import Ġorg . j its i . service . ne ome dia . R TP Extension Ċ import Ġorg . j its i _ modified . impl . ne ome dia . rtp . Transport CC Engine Ċ import Ġunsigned . to UInt Ċ Ċ class ĠT cc Seq Num Tag ger ( ĊĠĠĠ Ġprivate Ġval Ġtransport Cc Engine : ĠTransport CC Engine ? Ġ= Ġnull Ċ ) Ġ: ĠNode (" T CC Ġsequence Ġnumber Ġtag ger ") Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcurr T cc Seq Num : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġt cc Extension Id : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġdo Process Packets ( p : ĠList < Packet Info >) Ġ{ ĊĠĠĠĠĠĠĠ Ġp . forEach As < R tp Packet > Ġ{ Ġ_, Ġpkt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt cc Extension Id ?. let Ġ{ Ġt cc Ext Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġext Ġ= ĠT cc Header Extension ( t cc Ext Id , Ġcurr T cc Seq Num ++) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpkt . header . add Extension ( t cc Ext Id , Ġext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtransport Cc Engine ?. e gress Engine ?. rtp Transformer ?. transform ( p . map Ġ{ Ġit . packet . to Raw Packet () Ġ}. to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġnext ( p ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Event ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠR tp Extension Added Event Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( R TP Extension . TRANSPORT _ CC _ URN . equals ( event . rtp Extension . uri . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt cc Extension Id Ġ= Ġevent . extension Id . to UInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . c info Ġ{ Ġ" T CC Ġseq Ġnum Ġtag ger Ġsetting Ġextension ĠID Ġto Ġ$ t cc Extension Id " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠR tp Extension Clear Event Ġ-> Ġt cc Extension Id Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ