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)을 빼주어야 함
[출처] RTCP-SR 에서 ntp timestamp (Developer Forum) |작성자 와쳐
'Program RFC/Algorithm' 카테고리의 다른 글
홀펀칭 화상통화...등등 (0) | 2012.01.04 |
---|---|
Hole Punching (0) | 2011.08.31 |
Hole Puching (0) | 2011.08.31 |