Logo

Служба поддержки:

 

ICQ: 621-626-628 ICQ: 621-626-628

 

SKype: sharing_plus

 

621-626-628@mail.ru

 

Реквизиты оплаты:



U334459871111
Z163812692685
R219058712561

410011491012247

Голосование

Оцените работу сервера
 

Реклама от Google:

ВВЕДЕНИЕ В МУЛЬТИМЕДИА_56
22.12.2012 01:02

В приводимом ниже примере показан фрагмент псевдокода, проверяющий корректность пакетов.

validate_rtcp(rtcp_t *packet, int length) 
 
 rtcp_t *end = (rtcp_t *) (((char *) packet) + length); 
 rtcp_t *r = packet; 
 int l = 0; 
 int p = 0; 
 // All RTCP packets must be compound packets 
 if ((packet->length+ 1) * 4) == length) { 
 ... error: not a compound packet 
 } 
 // Check the RTCP version, packet type, and padding of the 
first 
 // in the compound RTCP packet... 
 if (packet->version != 2) { 
 ...error: version number != 2 in the first subpacket 
 } 
 if (packet-> p != 0) { 
 ...error: padding bit is set on first packet in compound 
 } 
 if ((packet->pt != RTCP_SR) && (packet->pt != RTCP_RR)) { 
 ...error: compound packet does not start with SR or RR 
 } 
 // Check all following parts of the compound RTCP packet. 
The RTP 
 // version number must be 2, and the padding bit must be 
zero on 
 // all except the last packet. 
 do { 
 if (p == 1) { 
 ...error: padding before last packet in compound 
 } 
 if (r-> p) { 
 p = 1; 
 } 
 if (r-> version != 2) { 
 ...error: version number != 2 in subpacket 
 } 
 l += (r->length + 1) * 4; 
 r = (rtcp_t *) (((uint32_t *) r) + r->length + 1); 
 } while (r < end); 
 
 // Check that the length of the packets matches the length 
of the 
 // UDP packet in which they were received... 
 if ((l != length) || (r != end)) { 

 ...error: length does not match UDP packet length 
 } 
 ...packet is valid 
}

В этом примере необходимо отметить несколько ключевых моментов:

• все пакеты должны быть составными пакетами RTCP;
• поле версии всех пакетов имеет значение 2;
• тип поля в первом RTCP-пакете составного пакета должен быть со значением SR или RR;
• если заполнение необходимо, то дополняется только последний пакет в составном пакете. Значение бита поля заполнения для остальных пакетов должно быть равно нулю.

Сумма значений полей длины отдельных пакетов должна соответ- ствовать длине составного пакета.

 
eskisehirbayanlar.com eskisehirescortlar.net bursaescorttr.com bursadaescortlar.org antalyaescort.pw