Changeset 3224 for pjproject/trunk/pjmedia/src/pjmedia/rtcp.c
- Timestamp:
- Jun 26, 2010 4:43:50 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia/rtcp.c
r2422 r3224 126 126 127 127 128 /* 129 * Initialize RTCP session setting. 130 */ 131 PJ_DEF(void) pjmedia_rtcp_session_setting_default( 132 pjmedia_rtcp_session_setting *settings) 133 { 134 pj_bzero(&settings, sizeof(*settings)); 135 } 136 137 138 /* 139 * Initialize RTCP session. 140 */ 128 141 PJ_DEF(void) pjmedia_rtcp_init(pjmedia_rtcp_session *sess, 129 142 char *name, … … 132 145 pj_uint32_t ssrc) 133 146 { 147 pjmedia_rtcp_session_setting settings; 148 149 pjmedia_rtcp_session_setting_default(&settings); 150 settings.name = name; 151 settings.clock_rate = clock_rate; 152 settings.samples_per_frame = samples_per_frame; 153 settings.ssrc = ssrc; 154 155 pjmedia_rtcp_init2(sess, &settings); 156 } 157 158 159 /* 160 * Initialize RTCP session. 161 */ 162 PJ_DEF(void) pjmedia_rtcp_init2( pjmedia_rtcp_session *sess, 163 const pjmedia_rtcp_session_setting *settings) 164 { 134 165 pjmedia_rtcp_sr_pkt *sr_pkt = &sess->rtcp_sr_pkt; 135 166 pj_time_val now; … … 142 173 143 174 /* Name */ 144 sess->name = name ? name : (char*)THIS_FILE,175 sess->name = settings->name ? settings->name : (char*)THIS_FILE; 145 176 146 177 /* Set clock rate */ 147 sess->clock_rate = clock_rate;148 sess->pkt_size = s amples_per_frame;178 sess->clock_rate = settings->clock_rate; 179 sess->pkt_size = settings->samples_per_frame; 149 180 150 181 /* Init common RTCP SR header */ … … 153 184 sr_pkt->common.pt = RTCP_SR; 154 185 sr_pkt->common.length = pj_htons(12); 155 sr_pkt->common.ssrc = pj_htonl(s src);186 sr_pkt->common.ssrc = pj_htonl(settings->ssrc); 156 187 157 188 /* Copy to RTCP RR header */ … … 167 198 pj_get_timestamp(&sess->ts_base); 168 199 pj_get_timestamp_freq(&sess->ts_freq); 200 sess->rtp_ts_base = settings->rtp_ts_base; 169 201 170 202 /* Initialize statistics states */ … … 572 604 */ 573 605 if (sess->stat.tx.pkt != pj_ntohl(sess->rtcp_sr_pkt.sr.sender_pcount)) { 606 pj_time_val ts_time; 607 pj_uint32_t rtp_ts; 574 608 575 609 /* So we should send RTCP SR */ … … 589 623 sr->ntp_sec = pj_htonl(ntp.hi); 590 624 sr->ntp_frac = pj_htonl(ntp.lo); 625 626 /* Fill in RTP timestamp (corresponds to NTP timestamp) in SR. */ 627 ts_time.sec = ntp.hi - sess->tv_base.sec - JAN_1970; 628 ts_time.msec = (long)(ntp.lo * 1000.0 / 0xFFFFFFFF); 629 rtp_ts = sess->rtp_ts_base + 630 (pj_uint32_t)(sess->clock_rate*ts_time.sec) + 631 (pj_uint32_t)(sess->clock_rate*ts_time.msec/1000); 632 sr->rtp_ts = pj_htonl(rtp_ts); 591 633 592 634 TRACE_((sess->name, "TX RTCP SR: ntp_ts=%p",
Note: See TracChangeset
for help on using the changeset viewer.