synsources.c
来自「linux环境下用纯c写的RTP协议的通用开发库」· C语言 代码 · 共 45 行
C
45 行
/*------------------------------------------------------------------------- * synsources.c - synsources *------------------------------------------------------------------------- */#include <syn.h>#include <stdlib.h>#include <rtp.h>#include <hash.h>/*------------------------------------------------------------------------ * synsources - fill array sources with list of IDs of streams turned on * at the synchronization layer. Returns number of SSRCs in list. * Maxsources gives the size of the area pointed to by sources in * sizeof(ssrc_t) (short) units. *------------------------------------------------------------------------ */intsynsources(struct synsession *pssn, ssrc_t *sources, int maxsources){ struct htent **v; int htcount, i, count; if (pthread_mutex_lock(&pssn->ssn_getstreammutex) != 0) return ERROR; if ((v = htenum(pssn->ssn_ssrcs)) == NULL) { pthread_mutex_unlock(&pssn->ssn_getstreammutex); return ERROR; } for (htcount = 0; v[htcount] != NULL; htcount++); maxsources = min(maxsources, htcount); for (i = 0, count = 0; count < maxsources && i < htcount; i++) if (((struct synstream *) v[i]->hte_object)->sstm_zombie != TRUE) { sources[i] = v[i]->hte_key; count++; } pthread_mutex_unlock(&pssn->ssn_getstreammutex); free(v); return count;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?