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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rtpfaketransmitter.h

?? jrtplib開發(fā)好幫手啊
?? 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久久久久久| 91女厕偷拍女厕偷拍高清| 久久aⅴ国产欧美74aaa| 狠狠色丁香婷综合久久| 粉嫩高潮美女一区二区三区 | 日韩一级二级三级| 国产欧美日韩卡一| 亚洲自拍偷拍图区| 国产综合一区二区| 一本色道综合亚洲| 精品国产一区久久| 亚洲男同性视频| 狠狠色丁香久久婷婷综合_中| 97精品国产露脸对白| 91.麻豆视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美午夜精品一区| 欧美成人猛片aaaaaaa| 亚洲人成7777| 激情深爱一区二区| 色婷婷av一区二区| 2021中文字幕一区亚洲| 亚洲影视在线播放| 国产精品1024| 欧美一区欧美二区| ●精品国产综合乱码久久久久| 日本美女一区二区三区| 91麻豆免费看| 久久久噜噜噜久噜久久综合| 亚洲午夜激情网站| 成人午夜av影视| 欧美电影免费观看高清完整版| 亚洲精品大片www| 国产寡妇亲子伦一区二区| 欧美日韩视频在线第一区| 国产精品国产自产拍在线| 蜜臂av日日欢夜夜爽一区| 在线国产电影不卡| 欧美激情在线观看视频免费| 国产精品三级在线观看| 一区二区激情视频| 暴力调教一区二区三区| 久久这里只有精品视频网| 欧美又粗又大又爽| 国产亚洲精品7777| 日产国产欧美视频一区精品| 色94色欧美sute亚洲线路一ni | 国产酒店精品激情| 制服丝袜亚洲色图| 亚洲国产视频网站| 色婷婷综合久久久| 亚洲欧洲日产国码二区| 国产精品99久| 久久欧美一区二区| 黄色日韩网站视频| 欧美大片一区二区| 美美哒免费高清在线观看视频一区二区| 欧美性生活一区| 亚洲一区影音先锋| 91色|porny| 综合久久综合久久| 91偷拍与自偷拍精品| 一区二区中文视频| 99re这里只有精品6| 国产精品妹子av| jiyouzz国产精品久久| 国产欧美日韩精品在线| 国产69精品久久久久毛片| 国产网站一区二区三区| 国产精品一线二线三线精华| 亚洲精品在线电影| 国产乱子轮精品视频| 久久只精品国产| 国产成人免费在线视频| 欧美国产一区二区在线观看| 国产成人av网站| 亚洲国产精品传媒在线观看| 懂色中文一区二区在线播放| 国产精品国产三级国产普通话蜜臀| 成人丝袜高跟foot| 亚洲欧洲精品一区二区三区| 97se亚洲国产综合自在线| 伊人夜夜躁av伊人久久| 91福利区一区二区三区| 五月天精品一区二区三区| 7799精品视频| 国内欧美视频一区二区| 国产午夜精品美女毛片视频| 成人午夜电影小说| 国产一区二区三区免费播放| 国产婷婷一区二区| 成人性生交大片免费看视频在线| 国产精品久久久久久久久图文区| 91网站视频在线观看| 午夜欧美在线一二页| 日韩欧美一区二区久久婷婷| 国产成人在线视频网站| 亚洲欧美日韩国产综合在线| 欧美三级三级三级| 麻豆传媒一区二区三区| 国产午夜精品在线观看| 色综合 综合色| 蜜桃av一区二区在线观看| 国产欧美一区二区精品性色| 91在线观看一区二区| 亚洲成人动漫在线观看| 日韩精品一区国产麻豆| 国产mv日韩mv欧美| 亚洲高清视频的网址| 精品电影一区二区| 色综合一区二区| 热久久国产精品| 中文字幕精品在线不卡| 91久久奴性调教| 久久99国产乱子伦精品免费| 国产精品福利一区二区| 制服丝袜av成人在线看| 成人精品小蝌蚪| 日本午夜精品一区二区三区电影| 久久久久青草大香线综合精品| 色婷婷亚洲综合| 精品在线免费视频| 亚洲精品视频在线观看网站| 日韩欧美一区二区三区在线| 99热这里都是精品| 美女视频免费一区| 亚洲婷婷国产精品电影人久久| 日韩欧美一区二区久久婷婷| 一本久道久久综合中文字幕| 免费av成人在线| 一区二区三区电影在线播| 久久人人97超碰com| 欧美色成人综合| 成人精品鲁一区一区二区| 日产欧产美韩系列久久99| 成人免费小视频| 久久亚洲精品小早川怜子| 欧美优质美女网站| 成人爱爱电影网址| 久国产精品韩国三级视频| 亚洲六月丁香色婷婷综合久久| 精品国产乱码久久久久久久久| 日本精品一级二级| 成人美女在线观看| 韩国v欧美v日本v亚洲v| 天天av天天翘天天综合网色鬼国产| 日韩一区日韩二区| 国产性色一区二区| 日韩你懂的在线播放| 欧美最猛黑人xxxxx猛交| kk眼镜猥琐国模调教系列一区二区| 久久精品国产色蜜蜜麻豆| 亚洲成精国产精品女| 亚洲少妇屁股交4| 日本一区二区视频在线| 日韩午夜在线观看| 欧美日韩一区二区三区在线看 | 狠狠狠色丁香婷婷综合激情| 亚洲高清在线精品| 亚洲欧美另类久久久精品| 国产精品久久久久久久久久久免费看 | 久久夜色精品国产欧美乱极品| 在线成人高清不卡| 欧美亚洲自拍偷拍| 91浏览器入口在线观看| 风间由美一区二区三区在线观看| 精品一区二区在线视频| 蜜臀av一区二区在线免费观看| 亚洲国产精品久久久男人的天堂| 亚洲精品国产成人久久av盗摄| 亚洲欧洲99久久| 国产精品美女一区二区| 国产精品私房写真福利视频| 久久久久亚洲综合| 久久精品一区二区三区不卡牛牛 | 久久66热re国产| 精品一区二区在线播放| 麻豆一区二区三区| 蜜臀91精品一区二区三区| 日韩和的一区二区| 日韩电影一区二区三区| 日韩av电影天堂| 蜜乳av一区二区| 国内精品伊人久久久久av一坑| 美国十次了思思久久精品导航| 老司机免费视频一区二区| 免费在线看成人av| 九九国产精品视频| 麻豆91在线播放免费| 九色综合国产一区二区三区| 久久69国产一区二区蜜臀| 国产乱对白刺激视频不卡| 国产精品88av| 99久久精品免费看国产| 91视频精品在这里| 欧美亚洲愉拍一区二区| 欧美一区二区网站| 亚洲精品一线二线三线无人区| 日本一区二区三区高清不卡| 国产精品初高中害羞小美女文|