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

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

?? rtpfaketransmitter.h

?? G726局域網語音通話源代碼 這是使用G726語音壓縮(16kbps)和RTP進行傳輸的程序
?? 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@lumumba.luc.ac.be  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)(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; };	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; }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;};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;};	#ifdef RTP_SUPPORT_INLINETEMPLATEPARAM	inline int RTPFakeTrans_GetHashIndex_IPv4Dest(const RTPIPv4Destination &d)				{ return d.GetIP_HBO()%RTPFAKETRANS_HASHSIZE; }	inline int RTPFakeTrans_GetHashIndex_uint32_t(const uint32_t &k)					{ return k%RTPFAKETRANS_HASHSIZE; }#else // No support for inline function as template parameter	int RTPFakeTrans_GetHashIndex_IPv4Dest(const RTPIPv4Destination &d);	int RTPFakeTrans_GetHashIndex_uint32_t(const uint32_t &k);#endif // RTP_SUPPORT_INLINETEMPLATEPARAM#define RTPFAKETRANS_HEADERSIZE						(20+8)	class RTPFakeTransmitter : public RTPTransmitter{public:	RTPFakeTransmitter();	~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);	void ResetPacketCount();	uint32_t GetNumRTPPacketsSent();	uint32_t GetNumRTCPPacketsSent();					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	uint32_t rtppackcount,rtcppackcount;};#endif // RTPFakeTRANSMITTER_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品电影| 911精品产国品一二三产区| 丰满白嫩尤物一区二区| 国产成人精品三级麻豆| 91麻豆国产福利精品| 欧美日韩中文另类| 7777精品伊人久久久大香线蕉最新版| 3d成人动漫网站| 国产精品无遮挡| 亚洲成国产人片在线观看| 蜜桃av一区二区三区电影| 成人午夜电影久久影院| 欧美理论片在线| 日韩一区在线播放| 精品一区二区在线免费观看| 色网站国产精品| 国产欧美综合在线观看第十页| 五月天亚洲精品| 在线观看www91| 国产精品福利一区| 国产一区二区精品久久| 另类小说综合欧美亚洲| 秋霞电影网一区二区| 色综合久久中文综合久久牛| 久久综合成人精品亚洲另类欧美 | 蓝色福利精品导航| 欧美性大战久久| 亚洲一区二区欧美日韩| 91丨九色丨国产丨porny| 中文无字幕一区二区三区| 老司机午夜精品99久久| 欧美电视剧在线看免费| 日韩国产高清在线| 日韩视频在线永久播放| 麻豆国产精品一区二区三区| 欧美成人在线直播| 韩国av一区二区| 亚洲国产高清在线| aaa亚洲精品| 久久久久久久久久久久电影| 国产成人免费视频网站高清观看视频| 欧美一级欧美三级在线观看| 午夜视频一区二区三区| 日韩免费看的电影| 国产99一区视频免费| 亚洲免费在线看| 欧美精品一区视频| 成人一区二区三区视频在线观看 | 99久久国产综合色|国产精品| 国产欧美1区2区3区| 色嗨嗨av一区二区三区| 麻豆精品新av中文字幕| 成人欧美一区二区三区视频网页| 日本丶国产丶欧美色综合| 五月婷婷综合激情| 国产精品久久午夜夜伦鲁鲁| 91福利视频网站| 国产不卡高清在线观看视频| 亚洲午夜av在线| 国产人久久人人人人爽| 717成人午夜免费福利电影| 精品一区二区三区视频在线观看| 亚洲综合网站在线观看| 国产视频一区在线观看| 欧美一级精品在线| 欧美精品久久99| 欧美亚洲一区二区在线| av激情成人网| 成人免费高清在线| 国产麻豆精品theporn| 久久国内精品视频| 日韩精品电影一区亚洲| 亚洲国产精品久久人人爱| 国产精品久久二区二区| 亚洲国产高清aⅴ视频| 久久影视一区二区| 久久久久久亚洲综合| 精品国产免费一区二区三区香蕉 | 秋霞电影网一区二区| 婷婷久久综合九色综合伊人色| 一区二区三区在线播放| 亚洲一区二区综合| 日韩一区精品视频| 麻豆高清免费国产一区| 久久av中文字幕片| 国产精华液一区二区三区| 成人妖精视频yjsp地址| 国产91丝袜在线观看| 久久精品视频网| 久久久国产精华| 国产日产欧美一区| 亚洲欧美综合另类在线卡通| 欧美韩国日本一区| 中文字幕日韩av资源站| 亚洲欧美激情小说另类| 美国毛片一区二区| 老汉av免费一区二区三区| 不卡视频在线看| 欧美日韩国产区一| 精品久久久三级丝袜| 国产精品素人一区二区| 日日摸夜夜添夜夜添精品视频| 日韩精品1区2区3区| 91在线视频官网| 日韩免费视频一区二区| 中文字幕亚洲综合久久菠萝蜜| 一区二区日韩av| 久99久精品视频免费观看| 在线观看日韩精品| 国产精品传媒在线| 美女性感视频久久| 欧美丝袜丝交足nylons| 日本一区二区电影| 奇米888四色在线精品| 色综合色狠狠天天综合色| 国产亚洲福利社区一区| 久久成人免费日本黄色| 91福利社在线观看| 亚洲图片你懂的| 成人激情图片网| 国产欧美日韩一区二区三区在线观看| 亚洲成人在线免费| 在线视频一区二区免费| 亚洲码国产岛国毛片在线| 国内久久精品视频| 久久久久久久久久电影| 国产91丝袜在线18| 中文在线资源观看网站视频免费不卡| 国内久久婷婷综合| 欧美成人精品高清在线播放| 麻豆免费看一区二区三区| 日韩一区二区三区在线| 日韩一区欧美二区| 日韩一区二区免费高清| 日本aⅴ精品一区二区三区| 欧美一区二区三区性视频| 日韩精品电影在线| 国产亚洲人成网站| 色噜噜狠狠色综合欧洲selulu| 亚洲视频在线观看三级| 6080午夜不卡| av一区二区三区| 五月婷婷激情综合| 国产欧美日韩精品a在线观看| 成人免费视频国产在线观看| 亚洲精品菠萝久久久久久久| 色天天综合久久久久综合片| 亚洲电影一级黄| 国产精品成人网| 777精品伊人久久久久大香线蕉| 蜜臀av一区二区在线免费观看| 国产女人水真多18毛片18精品视频 | 久久久精品欧美丰满| 91香蕉国产在线观看软件| 亚洲国产欧美另类丝袜| 久久精品视频在线看| 欧美午夜寂寞影院| 成人高清免费观看| 久久疯狂做爰流白浆xx| 亚洲一区二区视频在线| 国产免费久久精品| 欧美日韩成人高清| 欧美日韩免费观看一区三区| 97se亚洲国产综合自在线观| 黄色日韩三级电影| 蜜臀av一级做a爰片久久| 午夜视频久久久久久| 亚洲成av人片在www色猫咪| 最新热久久免费视频| 国产精品午夜久久| 1024成人网| 亚洲.国产.中文慕字在线| 亚洲自拍偷拍网站| 一区二区三区欧美| 亚洲成av人影院在线观看网| 亚洲国产日韩综合久久精品| 亚洲欧美日韩国产另类专区| 中文字幕不卡在线播放| 日本一区二区三区免费乱视频 | 美日韩一级片在线观看| 日日骚欧美日韩| 国产一区二区三区电影在线观看| 六月丁香综合在线视频| 国内久久婷婷综合| 国产99久久久国产精品潘金 | 欧美大胆一级视频| 欧美不卡一区二区三区四区| 久久久影视传媒| 亚洲天堂成人网| 美女视频黄免费的久久| 六月丁香综合在线视频| 91免费观看在线| 欧美高清精品3d| 中文字幕在线一区| 久久99国产精品成人| 色综合久久88色综合天天6| 日韩精品在线看片z| 亚洲激情网站免费观看| 国产一区二区伦理| 精品视频全国免费看|