RTP Redundancy Up date Colin P erkins < c.p erkins@cs.ucl.ac.uk > Depa rtment of Computer Science Universit y College London Go w er Street London W C1E 6BT
Status RTP redundancy mechanism published as RF C2198 in � Septemb er 1997. Simple pack et fo rmat, allo ws bundling of multiple frames � of audio into a single pack et as a fo rm of media sp eci�c FEC. ��� ��� ��� ��� ��� ��� 1 2 1 3 2 4 3 ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� Optimised fo r audio data, but can b e used fo r other � media t yp es. Colin P erkins/RTP Redundancy Up date/1
Example pack et 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+-+ |V=2|P|X| CC |M| PT | sequence number of primary | +-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+-+ | timestamp of primary encoding | +-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+-+ | synchronization source (SSRC) identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+-+ |1| block PT=7 | timestamp offset | block length | +-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+-+ |0| block PT=5 | | +-+-+-+-+-+-+-+-+ + | | + LPC encoded redundant data + | | + +-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+ | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+ + | | + + | DVI4 encoded primary data | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+-+ Colin P erkins/RTP Redundancy Up date/2
Problem: Sta rt of T alkspurt The redundant (FEC) data is t ypically piggy-back ed one � pack et after the p rima ry . The �rst pack et in a talkspurt cannot contain FEC data, � since there a re no p receeding pack ets. This causes t w o p roblems: � 1. Changing pa yload t yp e 2. Unkno wn bu�ering requirement Colin P erkins/RTP Redundancy Up date/3
Issues: P a yload T yp e In a standa rd RTP session, all pack ets sent b y a source � will have the same pa yload t yp e. Ho w ever, senders using redundant audio send the �rst � pack et in a talkspurt with no FEC data (ie: pa yload t yp e of the p rima ry co dec) and the follo wing pack ets with the redundancy pa yload t yp e. R R R N R R Talkspurt 1 Talkspurt 2 This mak es implementations needlessly complex, since � they have to asso ciate pack ets with di�erent pa yload t yp es into a single stream. Colin P erkins/RTP Redundancy Up date/4
Issues: Bu�er Space The FEC data can b e sent any numb er of pack ets after � the p rima ry . This dela y isn't kno wn until a pack et containing FEC data is received... ...b y which time the pla y out bu�er length fo r this � talkspurt has already b een calculated. Adapting the pla y out bu�er mid-talkspurt will cause an � glitch in the audio. Not adapting ma y mak e it imp ossible to use the FEC data (since it a rrives to o late) Colin P erkins/RTP Redundancy Up date/5
Solution Send pack et with the redundancy pa yload t yp e. all � F o r those at the sta rt of the talkspurt, advertise the FEC � o�set and set the blo ck length to zero. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+- + |V=2|P|X| CC |M| PT | sequence number of primary | +-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+- + | timestamp of primary encoding | +-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+- + | synchronization source (SSRC) identifier | +-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+- + |1| block PT | timestamp offset | block length = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+- +-+-+-+- +-+-+-+ -+-+-+-+ -+-+-+- + |0| block PT | | +-+-+-+-+-+-+-+-+ + | ...Media data... | : : Colin P erkins/RTP Redundancy Up date/6
Solution This solves b oth p roblems noticed. � Requires a change to the of the p roto col, but not usage � to the p rotcol sp eci�cation itself. Believed backw a rds compatible with existing � implementations... Colin P erkins/RTP Redundancy Up date/7
Recommend
More recommend