RTCP-SR 에서 ntp timestamp

Program RFC/Algorithm 2011. 11. 14. 15:11 Posted by HisPark

RTSP 영상 및 음성전송의 QoS 보장을 위한 RTCP 프로토콜 중에서 SR에서 ntp 가져오기

struct T_RTCP_HEADER {
struct {
unsigned char RC : 5;
unsigned char padding : 1;
unsigned char version : 2;
};
unsigned char PT; //SR=200 SDES=202
unsigned short length;
};
struct T_RTCP_SR {
unsigned int SSRC;
nsigned int NTP_MSW;
nsigned int NTP_LSW;
nsigned int time_stamp;
nsigned int SPC;
nsigned int SOC;
};

char *p = packet;

T_RTCP_HEADER *header = (T_RTCP_HEADER *)p;

p+=sizeof(T_RTCP_HEADER);

if (header->PT = 200) //SR
{
T_RTCP_SR *sr = (T_RTCP_SR *)p;
DWORD msw = htonl(sr->NTP_MSW);
DWORD lsw = htonl(sr->NTP_LSW);

/* AXIS 비디오서버는 1940/1/1 기준이다. 비표준인가?*/
m_dwLocalTime = ( msw - 2208988800 /* 1900/1/1 기준 */ );

p+=sizeof(T_RTCP_SR);
}

RTCP에서 ntp는 1900/1/1 기준으로 계산 됨

일반 PC는 1970/1/1 기준으로 되 있기 때문에 시간을 계산하기 위해서는 70년의 차이 값(2208988800 sec)을 빼주어야 함

'Program RFC/Algorithm' 카테고리의 다른 글

홀펀칭 화상통화...등등  (0) 2012.01.04
Hole Punching  (0) 2011.08.31
Hole Puching  (0) 2011.08.31