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

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

?? rtpfaketransmitter.h

?? jrtp庫
?? H
字號:
/*  This class allows for jrtp to process packets without sending them out   anywhere.  The incoming messages are handed in to jrtp through the TransmissionParams   and can be retreived from jrtp through the normal polling mecanisms.  The outgoing RTP/RTCP packets are given to jrtp through the normal  session->SendPacket() and those packets are handed back out to the  client through a callback function (packet_ready_cb).    example usage : Allows for integration of RTP into gstreamer.    Copyright (c) 2005 Philippe Khalaf <burger@speedy.org>    This file is a part of JRTPLIB  Copyright (c) 1999-2004 Jori Liesenborgs  Contact: jori.liesenborgs@gmail.com  This library was developed at the "Expertisecentrum Digitale Media"  (http://www.edm.luc.ac.be), a research center of the "Limburgs Universitair  Centrum" (http://www.luc.ac.be). The library is based upon work done for   my thesis at the School for Knowledge Technology (Belgium/The Netherlands).  Permission is hereby granted, free of charge, to any person obtaining a  copy of this software and associated documentation files (the "Software"),  to deal in the Software without restriction, including without limitation  the rights to use, copy, modify, merge, publish, distribute, sublicense,  and/or sell copies of the Software, and to permit persons to whom the  Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included  in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS  IN THE SOFTWARE.*/#ifndef RTPFAKETRANSMITTER_H#define RTPFAKETRANSMITTER_H#include "rtpconfig.h"#include "rtptransmitter.h"#include "rtpipv4destination.h"#include "rtphashtable.h"#include "rtpkeyhashtable.h"#include <list>#ifdef RTP_SUPPORT_THREAD	#include <jmutex.h>#endif // RTP_SUPPORT_THREAD#define RTPFAKETRANS_HASHSIZE									8317#define RTPFAKETRANS_DEFAULTPORTBASE								5000// Definition of a callback that is called when a packet is ready for sending// params (*data, data_len, dest_addr, dest_port, rtp [1 if rtp, 0 if rtcp])typedef void(*packet_ready_cb)(void*, uint8_t*, uint16_t, uint32_t, uint16_t, int rtp);class RTPFakeTransmissionParams : public RTPTransmissionParams{public:	RTPFakeTransmissionParams():RTPTransmissionParams(RTPTransmitter::UserDefinedProto)	{ portbase = RTPFAKETRANS_DEFAULTPORTBASE; bindIP = 0; multicastTTL = 1; currentdata = NULL;}	void SetBindIP(uint32_t ip)								{ bindIP = ip; }	void SetPortbase(uint16_t pbase)							{ portbase = pbase; }	void SetMulticastTTL(uint8_t mcastTTL)							{ multicastTTL = mcastTTL; }	void SetLocalIPList(std::list<uint32_t> &iplist)					{ localIPs = iplist; } 	void ClearLocalIPList()									{ localIPs.clear(); }    void SetCurrentData(uint8_t *data)                      { currentdata = data; }    void SetCurrentDataLen(uint16_t len)                   { currentdatalen = len; }    void SetCurrentDataAddr(uint32_t addr)                 { currentdataaddr = addr; }    void SetCurrentDataPort(uint16_t port)                 { currentdataport = port; }    void SetCurrentDataType(bool type)                      { currentdatatype = type; }    void SetPacketReadyCB(packet_ready_cb cb)                 { packetreadycb = cb; };    void SetPacketReadyCBData(void *data)                 { packetreadycbdata = data; };	uint32_t GetBindIP() const								{ return bindIP; }	uint16_t GetPortbase() const								{ return portbase; }	uint8_t GetMulticastTTL() const							{ return multicastTTL; }	const std::list<uint32_t> &GetLocalIPList() const					{ return localIPs; }    uint8_t* GetCurrentData() const                     { return currentdata; }    uint16_t GetCurrentDataLen() const                     { return currentdatalen; }    uint32_t GetCurrentDataAddr() const                { return currentdataaddr; }    uint16_t GetCurrentDataPort() const                 { return currentdataport; }    bool GetCurrentDataType() const                     { return currentdatatype; }    packet_ready_cb GetPacketReadyCB() const             { return packetreadycb; }    void* GetPacketReadyCBData() const             { return packetreadycbdata; }private:	uint16_t portbase;	uint32_t bindIP;	std::list<uint32_t> localIPs;	uint8_t multicastTTL;    uint8_t* currentdata;    uint16_t currentdatalen;    uint32_t currentdataaddr;    uint16_t currentdataport;    bool currentdatatype;    packet_ready_cb packetreadycb;    void *packetreadycbdata;};class RTPFakeTransmissionInfo : public RTPTransmissionInfo{public:	RTPFakeTransmissionInfo(std::list<uint32_t> iplist,            RTPFakeTransmissionParams *transparams) :         RTPTransmissionInfo(RTPTransmitter::UserDefinedProto)     { localIPlist = iplist; params = transparams; } 	~RTPFakeTransmissionInfo()								{ }	std::list<uint32_t> GetLocalIPList() const						{ return localIPlist; }    RTPFakeTransmissionParams* GetTransParams()             { return params; }private:	std::list<uint32_t> localIPlist;    RTPFakeTransmissionParams *params;};	class RTPFakeTrans_GetHashIndex_IPv4Dest{public:	static int GetIndex(const RTPIPv4Destination &d)					{ return d.GetIP()%RTPFAKETRANS_HASHSIZE; }};class RTPFakeTrans_GetHashIndex_uint32_t{public:	static int GetIndex(const uint32_t &k)							{ return k%RTPFAKETRANS_HASHSIZE; }};#define RTPFAKETRANS_HEADERSIZE						(20+8)	class RTPFakeTransmitter : public RTPTransmitter{public:	RTPFakeTransmitter(RTPMemoryManager *mgr);	~RTPFakeTransmitter();	int Init(bool treadsafe);	int Create(size_t maxpacksize,const RTPTransmissionParams *transparams);	void Destroy();	RTPTransmissionInfo *GetTransmissionInfo();	int GetLocalHostName(uint8_t *buffer,size_t *bufferlength);	bool ComesFromThisTransmitter(const RTPAddress *addr);	size_t GetHeaderOverhead()							{ return RTPFAKETRANS_HEADERSIZE; }		int Poll();	int WaitForIncomingData(const RTPTime &delay,bool *dataavailable = 0);	int AbortWait();		int SendRTPData(const void *data,size_t len);		int SendRTCPData(const void *data,size_t len);	int AddDestination(const RTPAddress &addr);	int DeleteDestination(const RTPAddress &addr);	void ClearDestinations();	bool SupportsMulticasting();	int JoinMulticastGroup(const RTPAddress &addr);	int LeaveMulticastGroup(const RTPAddress &addr);	void LeaveAllMulticastGroups();	int SetReceiveMode(RTPTransmitter::ReceiveMode m);	int AddToIgnoreList(const RTPAddress &addr);	int DeleteFromIgnoreList(const RTPAddress &addr);	void ClearIgnoreList();	int AddToAcceptList(const RTPAddress &addr);	int DeleteFromAcceptList(const RTPAddress &addr);	void ClearAcceptList();	int SetMaximumPacketSize(size_t s);			bool NewDataAvailable();	RTPRawPacket *GetNextPacket();#ifdef RTPDEBUG	void Dump();#endif // RTPDEBUGprivate:	int CreateLocalIPList();	bool GetLocalIPList_Interfaces();	void GetLocalIPList_DNS();	void AddLoopbackAddress();	void FlushPackets();	int FakePoll();	int ProcessAddAcceptIgnoreEntry(uint32_t ip,uint16_t port);	int ProcessDeleteAcceptIgnoreEntry(uint32_t ip,uint16_t port);#ifdef RTP_SUPPORT_IPV4MULTICAST	bool SetMulticastTTL(uint8_t ttl);#endif // RTP_SUPPORT_IPV4MULTICAST	bool ShouldAcceptData(uint32_t srcip,uint16_t srcport);	void ClearAcceptIgnoreInfo();	    RTPFakeTransmissionParams *params;	bool init;	bool created;	bool waitingfordata;	std::list<uint32_t> localIPs;	uint16_t portbase;	uint8_t multicastTTL;	RTPTransmitter::ReceiveMode receivemode;	uint8_t *localhostname;	size_t localhostnamelength;		RTPHashTable<const RTPIPv4Destination,RTPFakeTrans_GetHashIndex_IPv4Dest,RTPFAKETRANS_HASHSIZE> destinations;#ifdef RTP_SUPPORT_IPV4MULTICAST//	RTPHashTable<const uint32_t,RTPFakeTrans_GetHashIndex_uint32_t,RTPFAKETRANS_HASHSIZE> multicastgroups;#endif // RTP_SUPPORT_IPV4MULTICAST	std::list<RTPRawPacket*> rawpacketlist;	bool supportsmulticasting;	size_t maxpacksize;	class PortInfo	{	public:		PortInfo() { all = false; }				bool all;		std::list<uint16_t> portlist;	};	RTPKeyHashTable<const uint32_t,PortInfo*,RTPFakeTrans_GetHashIndex_uint32_t,RTPFAKETRANS_HASHSIZE> acceptignoreinfo;	int CreateAbortDescriptors();	void DestroyAbortDescriptors();	void AbortWaitInternal();#ifdef RTP_SUPPORT_THREAD	JMutex mainmutex,waitmutex;	int threadsafe;#endif // RTP_SUPPORT_THREAD};#endif // RTPFakeTRANSMITTER_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜精品电影| 轻轻草成人在线| 99精品国产99久久久久久白柏| 久久久久99精品一区| 国产东北露脸精品视频| 中文字幕一区不卡| 色综合久久久久综合| 亚洲chinese男男1069| 91精品国产综合久久久久久久| 琪琪一区二区三区| 久久久久久夜精品精品免费| 成人午夜av在线| 亚洲一区二区av在线| 日韩一区二区视频在线观看| 国产精品996| 亚洲欧美日韩国产成人精品影院| 在线观看亚洲精品视频| 麻豆国产91在线播放| 国产欧美视频在线观看| 色综合中文综合网| 国产午夜精品美女毛片视频| www.欧美精品一二区| 亚洲综合网站在线观看| 欧美成人r级一区二区三区| 国产精品亚洲а∨天堂免在线| 综合久久一区二区三区| 在线观看亚洲一区| 国内精品嫩模私拍在线| 亚洲精品五月天| 欧美zozozo| 色偷偷一区二区三区| 久久精品国产成人一区二区三区 | 激情成人午夜视频| 亚洲视频香蕉人妖| 精品少妇一区二区三区 | 亚洲愉拍自拍另类高清精品| 日韩三级视频在线观看| jlzzjlzz亚洲日本少妇| 日本中文字幕一区二区有限公司| 欧美经典一区二区| 欧美日韩国产不卡| 成人av网站在线观看| 美女视频一区二区| 亚洲精品ww久久久久久p站| 精品美女在线观看| 欧美日韩精品二区第二页| 国产宾馆实践打屁股91| 美女看a上一区| 夜夜嗨av一区二区三区中文字幕 | 亚洲国产精品精华液2区45| 欧美剧在线免费观看网站 | 色婷婷国产精品| 国产精品一色哟哟哟| 日韩高清一区二区| 亚洲成a天堂v人片| 亚洲欧美电影一区二区| 国产精品天美传媒| 久久精品夜色噜噜亚洲aⅴ| 欧美一区二区免费| 色网站国产精品| 成人免费三级在线| 蜜臀av国产精品久久久久| 婷婷亚洲久悠悠色悠在线播放| 国产精品污污网站在线观看| 日韩三级在线观看| 欧美午夜在线观看| 久久99精品网久久| 狠狠色综合播放一区二区| 天天色图综合网| 一区二区三区四区在线播放| 国产亚洲一二三区| 欧美va在线播放| 91精品一区二区三区久久久久久| av电影在线观看一区| 国产精品18久久久久久久网站| 国产日产欧美一区| 欧美一卡2卡三卡4卡5免费| 91蝌蚪porny九色| 国产成人在线色| 国产资源在线一区| 热久久久久久久| 日韩中文欧美在线| 午夜欧美在线一二页| 一级做a爱片久久| 日韩理论电影院| 日韩欧美中文一区| 欧美精品一区二区不卡 | 日本一区二区三区四区 | 日本精品视频一区二区| 99re成人精品视频| aaa亚洲精品一二三区| 国产精品亚洲一区二区三区在线| 精品在线一区二区三区| 亚洲一区在线视频观看| 同产精品九九九| 日本一区中文字幕| 蜜桃视频在线观看一区二区| 蜜臀av国产精品久久久久| 人人超碰91尤物精品国产| 青娱乐精品视频在线| 美腿丝袜亚洲综合| 国产一区二区三区观看| 日本美女一区二区| 五月综合激情网| 毛片不卡一区二区| 久久99精品一区二区三区三区| 久久99精品久久久| 国产成人精品www牛牛影视| 高清av一区二区| 白白色 亚洲乱淫| 色婷婷久久久综合中文字幕| 99亚偷拍自图区亚洲| 欧美浪妇xxxx高跟鞋交| 欧美videos中文字幕| 国产午夜精品在线观看| 亚洲欧洲另类国产综合| 亚洲资源在线观看| 日韩高清不卡在线| 国产一区二区三区四区在线观看 | 欧美亚洲综合另类| 欧美疯狂性受xxxxx喷水图片| 亚洲精品一区二区三区福利| 亚洲国产经典视频| 一个色综合av| 蜜臀久久久99精品久久久久久| 国产乱子伦视频一区二区三区| 99re成人精品视频| 日本精品免费观看高清观看| 日韩视频在线一区二区| 欧美国产一区视频在线观看| 亚洲精品免费在线播放| 日本视频免费一区| 成人一区二区三区在线观看| 95精品视频在线| 日韩一区二区三区电影在线观看 | 亚洲欧美日韩小说| 奇米一区二区三区| 成人三级在线视频| 欧美精品18+| 欧美成人高清电影在线| 亚洲桃色在线一区| 美女免费视频一区| 99在线精品免费| 欧美成人在线直播| 亚洲免费看黄网站| 国产在线精品一区二区| 欧美色区777第一页| 欧美激情在线观看视频免费| 亚洲一区二区在线免费观看视频| 国产麻豆一精品一av一免费| 欧美日韩激情一区二区| 国产精品网曝门| 久久99久久精品| 欧美日韩一级二级三级| 久久免费电影网| 激情综合亚洲精品| 欧美天堂一区二区三区| 国产精品色在线观看| 五月天欧美精品| 99久久精品情趣| 久久久久久夜精品精品免费| 首页国产欧美日韩丝袜| 国产成人综合自拍| 国产肉丝袜一区二区| 另类调教123区| 欧美日本精品一区二区三区| 自拍偷拍欧美激情| 国产精品一二三四| 精品国精品国产尤物美女| 亚州成人在线电影| 91丨九色丨尤物| 亚洲男人天堂一区| jiyouzz国产精品久久| 久久亚洲免费视频| 久国产精品韩国三级视频| 在线电影欧美成精品| 亚洲第一电影网| 风间由美一区二区三区在线观看 | 91麻豆自制传媒国产之光| 久久久久97国产精华液好用吗| 精品一区二区精品| 日韩免费电影一区| 久草热8精品视频在线观看| 日韩午夜精品视频| 捆绑变态av一区二区三区| 88在线观看91蜜桃国自产| 免费观看91视频大全| 日韩丝袜美女视频| 久久99国产精品免费| 久久综合色8888| 国产一区不卡视频| 久久综合九色欧美综合狠狠| 国产·精品毛片| 日韩美女视频一区| 色狠狠色狠狠综合| 亚洲v中文字幕| 欧美一级理论片| 极品少妇xxxx精品少妇偷拍| 亚洲欧洲精品成人久久奇米网| 色欲综合视频天天天|