⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtcpsr.c

📁 linux环境下用纯c写的RTP协议的通用开发库
💻 C
字号:
/*------------------------------------------------------------------------- * rtcpsr.c - rtcpsr *------------------------------------------------------------------------- */#include <hash.h>#include <rtcp.h>#include <rtp.h>/*------------------------------------------------------------------------ * rtcpsr - process an incoming RTCP sender report *------------------------------------------------------------------------ */intrtcpsr(struct session *psn, struct rtcp *prtcp){  	struct sr	*psr;	struct stream	*pstm;	ssrc_t	ssrc;	if (prtcp->rtcp_type != RTCP_SR) 		return ERROR; 	psr = (struct sr *) prtcp->rtcp_data;	ssrc = ntohl(psr->sr_ssrc);	pstm = rtpgetstream(psn, ssrc);	if (pstm == NULL)		if ((pstm = rtpnewstream(psn, ssrc)) == NULL)			return ERROR;	if (!RTP_INACTIVE(pstm->stm_inactive))		pstm->stm_inactive = 0;	else {		rtpreleasestream(psn, pstm);		return OK;	}	/* 	 * Record data needed to generate receiver report.	 */	pthread_mutex_lock(&pstm->stm_mutex);	clock_gettime(CLOCK_REALTIME, &pstm->stm_lastsr);	pstm->stm_lastsrts = ntohl(psr->sr_rtpts);	pstm->stm_lastntp[RTP_NTPFRAC] = ntohl(psr->sr_fracts);	pstm->stm_lastntp[RTP_NTPINT] = ntohl(psr->sr_intts);	pthread_mutex_unlock(&pstm->stm_mutex);	/*	 * Post an event with the sender report as data.	 */	rtppostevent(psn, EVENT_RTCP_SR, pstm->stm_ssrc,		     (char *) prtcp, RTCP_LENGTH_BYTE(prtcp));	rtpreleasestream(psn, pstm);	return OK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -