www.pudn.com > streamrtp.rar > rtpgetstream.c
/*------------------------------------------------------------------------- * rtpgetstream.c - rtpgetstream *------------------------------------------------------------------------- */ #include#include #include /*------------------------------------------------------------------------ * rtpgetstream - look up a stream struct by SSRC ID and incr its refcnt *------------------------------------------------------------------------ */ struct stream * rtpgetstream(struct session *psn, ssrc_t ssrc) { struct stream *pstm; if (pthread_mutex_lock(&psn->sn_getstreammutex) != 0) return NULL; pstm = (struct stream *) htget(psn->sn_ssrcs, ssrc); if (pstm == NULL || pstm->stm_zombie == TRUE) { pthread_mutex_unlock(&psn->sn_getstreammutex); return NULL; } pstm->stm_refcnt++; pthread_mutex_unlock(&psn->sn_getstreammutex); return pstm; }