亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hust_rtpqueueapi.c

?? 實現基于ip2022的MPEG2 TS的IP組播接收
?? C
字號:
/* rtpqueueapi.c - copypacket, copypacket2, rtpqinit, rtpqdestroy, * rtpqlock , rtpqunlock, rtpqclear, rtpqextracthead, rtpqinsert */#include "hust_rtp.h"///#include <pthread.h>///#include <stdlib.h>///#include <strings.h>/*------------------------------------------------------------------------ * copypacket - copy packet portion of rtpln to buffer *------------------------------------------------------------------------ */intcopypacket(struct rtpln *pln, char *buf, int buflen){	buflen = min(buflen, pln->rln_len);	memcpy(buf, &pln->rln_rtp, buflen);	return buflen;}/*------------------------------------------------------------------------ * copypacket2 - copy packet header and data into seperate buffers * Any header extension treated as data. Amounts copied returned via out * variables. *------------------------------------------------------------------------ */intcopypacket2(struct rtpln *pln, char *headbuf, int *headbuflen, char *databuf, int *databuflen){		*headbuflen = min(*headbuflen, RTP_HEADER_LEN(&pln->rln_rtp));	memcpy(headbuf, &pln->rln_rtp, *headbuflen);	*databuflen = min(*databuflen, pln->rln_len - 			  RTP_HEADER_LEN(&pln->rln_rtp));	memcpy(databuf, RTP_DATA(&pln->rln_rtp), *databuflen);		return OK;}/*------------------------------------------------------------------------ * rtpqinit - initialize a new queue of RTP packetss *------------------------------------------------------------------------ */intrtpqinit(struct rtpqueue *pq){	memset(pq, 0, sizeof(struct rtpqueue));	///pthread_mutex_init(&pq->rq_mutex, NULL);	return OK;}/*------------------------------------------------------------------------ * rtpqdestroy - destroy an RTP packet queue, freeing all packets *------------------------------------------------------------------------ */intrtpqdestroy(struct rtpqueue *pq){	///if (pthread_mutex_lock(&pq->rq_mutex) != 0)		///return ERROR;	_rtpqclear(pq);	///pthread_mutex_unlock(&pq->rq_mutex);	//pthread_mutex_destroy(&pq->rq_mutex);	return OK;}////銷毀一個rtpqueue,就是用_rtpqclear函數清除queue/*------------------------------------------------------------------------ * rtpqlock - lock a stream's queue *------------------------------------------------------------------------ *//*intrtpqlock(struct session *psn, ssrc_t ssrc){	struct stream *pstm;	pstm = rtpgetstream(psn, ssrc);	if (pstm == NULL)		return ERROR;	///if (pthread_mutex_lock(&pstm->stm_queue.rq_mutex) != 0) {		///rtpreleasestream(psn, pstm);		///return ERROR;	///}	rtpreleasestream(psn, pstm);	return OK;}*/////*------------------------------------------------------------------------ * rtpqunlock - unlock a stream's queue *------------------------------------------------------------------------ *//*intrtpqunlock(struct session *psn, ssrc_t ssrc){	struct stream *pstm;	pstm = rtpgetstream(psn, ssrc);	if (pstm == NULL)		return ERROR;	///pthread_mutex_unlock(&pstm->stm_queue.rq_mutex);	rtpreleasestream(psn, pstm);	return OK;}*//*------------------------------------------------------------------------ * rtpqclear - free all packets from a stream's RTP queue *------------------------------------------------------------------------ */intrtpqclear(struct session *psn, ssrc_t ssrc){	struct stream *pstm;	int		rv;	pstm = rtpgetstream(psn, ssrc);	if (pstm == NULL)		return ERROR;	/*if (pthread_mutex_unlock(&pstm->stm_queue.rq_mutex) != 0) {		rtpreleasestream(psn, pstm);		return ERROR;	}*/	rv = _rtpqclear(&pstm->stm_queue);	///pthread_mutex_unlock(&pstm->stm_queue.rq_mutex);	rtpreleasestream(psn, pstm);	return rv;}/*------------------------------------------------------------------------ * rtpqextracthead - remove and return pointer to first packet in queue *------------------------------------------------------------------------ */struct rtpln *rtpqextracthead(struct session *psn, ssrc_t ssrc){		struct stream	*pstm;	struct rtpln	*pln;      	pstm = rtpgetstream(psn, ssrc);	if (pstm == NULL)		return NULL;							///if (pthread_mutex_lock(&pstm->stm_queue.rq_mutex) != 0) {	///	rtpreleasestream(psn, pstm);	///	return NULL;	///}	pln = rtpqextract(&pstm->stm_queue, pstm->stm_queue.rq_head);	///pthread_mutex_unlock(&pstm->stm_queue.rq_mutex);	rtpreleasestream(psn, pstm);	return pln;}/*------------------------------------------------------------------------ * rtpqinsert - insert a packet into queue *------------------------------------------------------------------------ */intrtpqinsert(struct session *psn, ssrc_t ssrc, struct rtpln *pln){	struct stream *pstm;	int		rv;	pstm = rtpgetstream(psn, ssrc);	if (pstm == NULL)		return ERROR;	/*if (pthread_mutex_lock(&pstm->stm_queue.rq_mutex) != 0) {		rtpreleasestream(psn, pstm);		return ERROR;	}*/	rv = _rtpqinsert(&pstm->stm_queue, pln, NULL);	///pthread_mutex_unlock(&pstm->stm_queue.rq_mutex);	rtpreleasestream(psn, pstm);	return rv;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国毛片一区二区三区| 色哟哟一区二区在线观看 | 亚洲欧美日韩一区二区三区在线观看| wwwwxxxxx欧美| 欧美v国产在线一区二区三区| 欧美一卡二卡三卡| 欧美精品自拍偷拍动漫精品| 欧美人伦禁忌dvd放荡欲情| 欧美日本一区二区三区四区| 欧美顶级少妇做爰| 精品国产乱码久久久久久闺蜜 | 国产欧美精品国产国产专区| 久久久国际精品| 久久精品视频免费| 中文字幕一区二区三中文字幕| 国产精品妹子av| 亚洲精品免费在线| 偷拍自拍另类欧美| 激情综合色播五月| 国产精品一区专区| 成人精品小蝌蚪| 色诱视频网站一区| 欧美区在线观看| 精品国产乱码久久久久久老虎| 中文字幕欧美区| 一区二区视频在线| 蜜臀av在线播放一区二区三区| 韩国女主播一区二区三区| 成人av第一页| 欧美日韩国产美| 精品久久久久久久久久久久久久久| 国产三级欧美三级| 一区二区三区在线视频观看| 视频一区在线播放| 韩国三级在线一区| 不卡av电影在线播放| 欧美日韩一级二级| 国产亚洲精品福利| 亚洲一区二区三区在线播放| 九一九一国产精品| 91亚洲精华国产精华精华液| 欧美高清视频不卡网| 国产亚洲精久久久久久| 一区二区高清在线| 国产在线观看一区二区| 91在线观看免费视频| 欧美男男青年gay1069videost| 26uuu另类欧美| 一区二区三区不卡在线观看| 精品一区二区三区免费| 91久色porny | 在线视频一区二区三| 欧美大片在线观看一区| 亚洲黄色性网站| 国产在线视频一区二区三区| 色综合一个色综合亚洲| 日韩色在线观看| 亚洲精品乱码久久久久久久久| 久久99精品久久久久久动态图| 日本道精品一区二区三区 | 奇米888四色在线精品| www.亚洲精品| 精品理论电影在线| 亚洲国产精品欧美一二99| 777午夜精品免费视频| 国产精品视频一区二区三区不卡| 日韩精品国产欧美| 91视频91自| 欧美国产亚洲另类动漫| 久久91精品久久久久久秒播| 色欧美日韩亚洲| 国产精品美女久久久久久久| 久久99九九99精品| 欧美一区二区三区成人| 亚洲人午夜精品天堂一二香蕉| 国产一本一道久久香蕉| 欧美一区二区性放荡片| 亚洲电影激情视频网站| 91丨porny丨户外露出| 国产日产精品一区| 久久99精品久久久久久| 欧美一区二区二区| 亚洲3atv精品一区二区三区| 色综合久久中文综合久久牛| 国产精品麻豆欧美日韩ww| 国产一区二区视频在线播放| 日韩三级高清在线| 日韩不卡免费视频| 欧美日韩你懂得| 亚洲一区在线观看视频| 色激情天天射综合网| 亚洲三级免费观看| 波多野结衣中文字幕一区| 中文字幕精品在线不卡| 成人av在线资源网站| 国产欧美一区二区精品忘忧草 | 欧美一区二区精品在线| 日本视频免费一区| 在线播放日韩导航| 日日骚欧美日韩| 在线不卡免费欧美| 亚洲18影院在线观看| 欧美精品日日鲁夜夜添| 婷婷成人综合网| 欧美精品自拍偷拍| 日韩中文欧美在线| 欧美一区三区四区| 九九九精品视频| 久久人人爽人人爽| 国产精品一区二区果冻传媒| 欧美激情综合在线| 99久久国产免费看| 最新成人av在线| 日本韩国视频一区二区| 一区二区三区日韩在线观看| 欧美色视频在线观看| 日日噜噜夜夜狠狠视频欧美人| 欧美一级视频精品观看| 久久精品国产**网站演员| 久久综合九色综合97婷婷| 国产精品正在播放| 自拍视频在线观看一区二区| 91免费看`日韩一区二区| 专区另类欧美日韩| 欧美日韩精品免费观看视频| 日本亚洲三级在线| 久久美女高清视频| av午夜一区麻豆| 亚洲一卡二卡三卡四卡五卡| 欧美一卡二卡三卡| 国产精品白丝jk黑袜喷水| 亚洲色图丝袜美腿| 欧美一三区三区四区免费在线看| 狠狠色狠狠色综合| 国产精品久久久久久久久久免费看| 色一情一伦一子一伦一区| 成人免费av资源| 亚洲你懂的在线视频| 欧美区在线观看| 国产+成+人+亚洲欧洲自线| 最新日韩在线视频| 欧美日本在线看| 国内精品免费**视频| 亚洲精品乱码久久久久久久久| 91精品国产一区二区三区| 国产jizzjizz一区二区| 亚洲国产毛片aaaaa无费看| 日韩三级中文字幕| 99久久精品免费精品国产| 亚洲妇熟xx妇色黄| 久久久综合激的五月天| 欧美午夜精品久久久久久孕妇| 久久国产精品免费| 一区二区三区在线观看动漫| 久久综合九色综合欧美98 | 中文字幕第一区第二区| 7777精品伊人久久久大香线蕉的| 福利电影一区二区| 午夜精品福利久久久| 中文成人综合网| 欧美一区二区三区免费大片| 97超碰欧美中文字幕| 韩国成人在线视频| 亚洲福利一区二区| 国产精品美女久久久久久久| 日韩视频一区在线观看| 一本大道综合伊人精品热热 | 精品少妇一区二区三区视频免付费| 97久久久精品综合88久久| 另类小说图片综合网| 亚洲一二三专区| 中文av一区特黄| 精品美女在线播放| 欧美精品视频www在线观看| www..com久久爱| 国产美女一区二区三区| 日韩极品在线观看| 怡红院av一区二区三区| 国产日产精品1区| 日韩精品一区二区三区在线观看 | av在线免费不卡| 极品尤物av久久免费看| 日韩中文字幕1| 亚洲一区二区中文在线| 中文字幕视频一区| 久久久亚洲综合| 欧美大片在线观看一区| 91精品婷婷国产综合久久 | 国产精品久久国产精麻豆99网站| 日韩欧美三级在线| 欧美乱熟臀69xxxxxx| 欧洲激情一区二区| 97aⅴ精品视频一二三区| 高清成人在线观看| 国产精品一区在线观看乱码 | 欧美日韩日本视频| 欧美精品一区在线观看| 欧美一级日韩一级| 欧美一个色资源| 欧美一区二区美女|