www.pudn.com > RTP通用开发库(for Linux).rar > syngetstream.c


/*-------------------------------------------------------------------------
 * syngetstream.c - syngetstream
 *-------------------------------------------------------------------------
 */

#include 
#include 
#include 

/*------------------------------------------------------------------------
 * syngetstream - lookup stream by SSRC ID and increment reference count
 *------------------------------------------------------------------------
 */
struct synstream *
syngetstream(struct synsession *pssn, ssrc_t ssrc)
{
  
	struct synstream *psstm;

	if (pthread_mutex_lock(&pssn->ssn_getstreammutex) != 0)
		return NULL;

	psstm = (struct synstream *) htget(pssn->ssn_ssrcs, ssrc);
	if (psstm == NULL || psstm->sstm_zombie == TRUE) {
		pthread_mutex_unlock(&pssn->ssn_getstreammutex);
		return NULL;
	}
	psstm->sstm_refcnt++;
	pthread_mutex_unlock(&pssn->ssn_getstreammutex);
  
	return psstm;
}