rtpqueue.c

来自「&#61599 Douglas Comer」· C语言 代码 · 共 53 行

C
53
字号
/* rtpqueue.c - rtpqdequeue, rtpqinsert */#include <rtp.h>/*------------------------------------------------------------------------ * rtpqdequeue - remove the oldest packet from the RTP packet queue *------------------------------------------------------------------------ */struct rtpln *rtpqdequeue(void){  	struct rtpln *p, *pln;  	(void) pthread_mutex_lock(&stm.stm_qmutex);	if ((pln = stm.stm_qhead) != NULL) {		if ((p = pln->rln_prev) != NULL) {			stm.stm_qhead = p;			p->rln_next = NULL;		} else 			stm.stm_qtail = stm.stm_qhead = NULL;	}	(void) pthread_mutex_unlock(&stm.stm_qmutex);	return pln;}/*------------------------------------------------------------------------ * rtpqinsert - insert a packet into the RTP packet queue *------------------------------------------------------------------------ */boolrtpqinsert(struct rtpln *pln){  	struct rtpln	*p, *q = NULL;	bool            head = FALSE;	(void) pthread_mutex_lock(&stm.stm_qmutex);	for (p = stm.stm_qtail; p != NULL && p->rln_seq > pln->rln_seq;	     q = p, p = p->rln_next);	if (q != NULL)		q->rln_next = pln;	else		stm.stm_qtail = pln;	pln->rln_prev = q;	if (p != NULL)		p->rln_prev = pln;	else		stm.stm_qhead = pln;	pln->rln_next = p;  	head = pln == stm.stm_qhead;	(void) pthread_mutex_unlock(&stm.stm_qmutex);	return head;}

⌨️ 快捷键说明

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