int rtcp_rr_init(RtpSession *session, char *buf, int size){ rtcp_rr_t *rr=(rtcp_rr_t*)buf; if (size<sizeof(rtcp_rr_t)) return -1; rtcp_common_header_init(&rr->ch,session,RTCP_RR,1,sizeof(rtcp_sr_t)); rr->ssrc=htonl(session->send_ssrc); report_block_init(&rr->rb[0],session); return sizeof(rtcp_sr_t); }
static int rtcp_rr_init(RtpSession *session, uint8_t *buf, int size){ rtcp_rr_t *rr=(rtcp_rr_t*)buf; if (size<sizeof(rtcp_rr_t)) return 0; rtcp_common_header_init(&rr->ch,session,RTCP_RR,1,sizeof(rtcp_rr_t)); rr->ssrc=htonl(session->snd.ssrc); report_block_init(&rr->rb[0],session); extended_statistics( session, &rr->rb[0] ); return sizeof(rtcp_rr_t); }
static int rtcp_sr_init(RtpSession *session, uint8_t *buf, int size){ rtcp_sr_t *sr=(rtcp_sr_t*)buf; int rr=(session->stats.packet_recv>0); int sr_size=sizeof(rtcp_sr_t)-sizeof(report_block_t)+(rr*sizeof(report_block_t)); if (size<sr_size) return 0; rtcp_common_header_init(&sr->ch,session,RTCP_SR,rr,sr_size); sr->ssrc=htonl(session->snd.ssrc); sender_info_init(&sr->si,session); /*only include a report block if packets were received*/ if (rr) { report_block_init( &sr->rb[0], session ); extended_statistics( session, &sr->rb[0] ); } return sr_size; }