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

📄 rtcpcyclethreadfcn.c

📁 linux环境下用纯c写的RTP协议的通用开发库
💻 C
字号:
/*------------------------------------------------------------------------- * rtcpcyclethreadfcn.c - rtcpcyclethreadfcn *------------------------------------------------------------------------- */#include <rtp.h>#include <rtcp.h>#include <pthread.h>#include <unistd.h>#include <math.h>#include <signal.h>#include <util.h>/*------------------------------------------------------------------------- * rtcpcyclethreadfcn - loop and invoke rtcpcycle at appropriate interval. *------------------------------------------------------------------------- */voidrtcpcyclethreadfcn(struct session *psn){	double	time;	/*	 * Initialize by setting signal handler, then signal condition to	 * indicate that initialization is complete. This code prevents	 * rtpctl from sending a SIGTERM *before* the handler is installed.	 */	pthread_mutex_lock(&psn->sn_rtcpcyclethrmutex);	signal(SIGTERM, nullfcn);	psn->sn_rtcpcyclethrstat = THR_RUNNING;	pthread_cond_signal(&psn->sn_cond);	pthread_mutex_unlock(&psn->sn_rtcpcyclethrmutex);	/*	 * Compute initial interval to wait before	 * generating a receiver report.	 */	time = rtcpinitinterval(psn);	while(TRUE) {		usleep((unsigned int) (time * 1000000));		/*		 * Check if SIGTERM has been received.		 * If so, return.		 */		pthread_mutex_lock(&psn->sn_rtcpcyclethrmutex);		if (psn->sn_rtcpcyclethrstat == THR_TERMINATE) {			psn->sn_rtcpcyclethrstat = THR_NOTRUNNING;			pthread_cond_signal(&psn->sn_cond);			pthread_mutex_unlock(&psn->sn_rtcpcyclethrmutex);			return;		}		pthread_mutex_unlock(&psn->sn_rtcpcyclethrmutex);		time = rtcpcycle(psn);	}}

⌨️ 快捷键说明

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