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

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

?? rtptransmitter.h

?? jrtp庫
?? H
字號:
/*  This file is a part of JRTPLIB  Copyright (c) 1999-2007 Jori Liesenborgs  Contact: jori.liesenborgs@gmail.com  This library was developed at the "Expertisecentrum Digitale Media"  (http://www.edm.uhasselt.be), a research center of the Hasselt University  (http://www.uhasselt.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.*//** * \file rtptransmitter.h */#ifndef RTPTRANSMITTER_H#define RTPTRANSMITTER_H#include "rtpconfig.h"#include "rtptypes.h"#include "rtpmemoryobject.h"class RTPRawPacket;class RTPAddress;class RTPTransmissionParams;class RTPTime;class RTPTransmissionInfo;/** Abstract class from which actual transmission components should be derived. *  Abstract class from which actual transmission components should be derived. *  The abstract class RTPTransmitter specifies the interface for *  actual transmission components. Currently, two implementations exist: *  an UDP over IPv4 transmitter and an UDP over IPv6 transmitter.  */class RTPTransmitter : public RTPMemoryObject{public:	/** Used to identify a specific transmitter. 	 *  If UserDefinedProto is used in the RTPSession::Create function, the RTPSession	 *  virtual member function NewUserDefinedTransmitter will be called to create	 *  a transmission component.	 */	enum TransmissionProtocol 	{ 		IPv4UDPProto, /**< Specifies the internal UDP over IPv4 transmitter. */		IPv6UDPProto, /**< Specifies the internal UDP over IPv6 transmitter. */		UserDefinedProto  /**< Specifies a user defined, external transmitter. */	};	/** Three kind of receive modes can be specified. */	enum ReceiveMode 	{ 		AcceptAll, /**< All incoming data is accepted, no matter where it originated from. */		AcceptSome, /**< Only data coming from specific sources will be accepted. */		IgnoreSome /**< All incoming data is accepted, except for data coming from a specific set of sources. */	};protected:	/** Constructor in which you can specify a memory manager to use. */	RTPTransmitter(RTPMemoryManager *mgr) : RTPMemoryObject(mgr)									{ }public:	virtual ~RTPTransmitter()													{ }	/** This function must be called before the transmission component can be used. 	 *  This function must be called before the transmission component can be used. Depending on 	 *  the value of \c threadsafe, the component will be created for thread-safe usage or not.	 */	virtual int Init(bool threadsafe) = 0;	/** Prepares the component to be used.	 *  Prepares the component to be used. The parameter \c maxpacksize specifies the maximum size 	 *  a packet can have: if the packet is larger it will not be transmitted. The \c transparams	 *  parameter specifies a pointer to an RTPTransmissionParams instance. This is also an abstract 	 *  class and each actual component will define its own parameters by inheriting a class 	 *  from RTPTransmissionParams. If \c transparams is NULL, the default transmission parameters 	 *  for the component will be used.	 */	virtual int Create(size_t maxpacksize,const RTPTransmissionParams *transparams) = 0;	/** By calling this function, buffers are cleared and the component cannot be used anymore. 	 *  By calling this function, buffers are cleared and the component cannot be used anymore.	 *  Only when the Create function is called again can the component be used again. */	virtual void Destroy() = 0;	/** Returns additional information about the transmitter.	 *  This function returns an instance of a subclass of RTPTransmissionInfo which will give 	 *  some additional information about the transmitter (a list of local IP addresses for example). 	 *  Currently, either an instance of RTPUDPv4TransmissionInfo or RTPUDPv6TransmissionInfo is 	 *  returned, depending on the type of the transmitter. The user has to deallocate the returned 	 *  instance when it is no longer needed.	 */	virtual RTPTransmissionInfo *GetTransmissionInfo() = 0;	/** Looks up the local host name.	 *  Looks up the local host name based upon internal information about the local host's 	 *  addresses. This function might take some time since a DNS query might be done. \c bufferlength 	 *  should initially contain the number of bytes that may be stored in \c buffer. If the function 	 *  succeeds, \c bufferlength is set to the number of bytes stored in \c buffer. Note that the data 	 *  in \c buffer is not NULL-terminated. If the function fails because the buffer isn't large enough, 	 *  it returns \c ERR_RTP_TRANS_BUFFERLENGTHTOOSMALL and stores the number of bytes needed in	 *  \c bufferlength.	 */	virtual int GetLocalHostName(uint8_t *buffer,size_t *bufferlength) = 0;	/** Returns \c true if the address specified by \c addr is one of the addresses of the transmitter. */	virtual bool ComesFromThisTransmitter(const RTPAddress *addr) = 0;	/** Returns the amount of bytes that will be added to the RTP packet by the underlying layers (excluding 	 *  the link layer). */	virtual size_t GetHeaderOverhead() = 0;		/** Checks for incoming data and stores it. */	virtual int Poll() = 0;	/** Waits until incoming data is detected.	 *  Waits at most a time \c delay until incoming data has been detected. If \c dataavailable is not NULL, 	 *  it should be set to \c true if data was actually read and to \c false otherwise.	 */	virtual int WaitForIncomingData(const RTPTime &delay,bool *dataavailable = 0) = 0;	/** If the previous function has been called, this one aborts the waiting. */	virtual int AbortWait() = 0;		/** Send a packet with length \c len containing \c data	to all RTP addresses of the current destination list. */	virtual int SendRTPData(const void *data,size_t len) = 0;		/** Send a packet with length \c len containing \c data to all RTCP addresses of the current destination list. */	virtual int SendRTCPData(const void *data,size_t len) = 0;	/** Adds the address specified by \c addr to the list of destinations. */	virtual int AddDestination(const RTPAddress &addr) = 0;	/** Deletes the address specified by \c addr from the list of destinations. */	virtual int DeleteDestination(const RTPAddress &addr) = 0;	/** Clears the list of destinations. */	virtual void ClearDestinations() = 0;	/** Returns \c true if the transmission component supports multicasting. */	virtual bool SupportsMulticasting() = 0;	/** Joins the multicast group specified by \c addr. */	virtual int JoinMulticastGroup(const RTPAddress &addr) = 0;	/** Leaves the multicast group specified by \c addr. */	virtual int LeaveMulticastGroup(const RTPAddress &addr) = 0;	/** Leaves all the multicast groups that have been joined. */	virtual void LeaveAllMulticastGroups() = 0;	/** Sets the receive mode.	 *  Sets the receive mode to \c m, which is one of the following: RTPTransmitter::AcceptAll, 	 *  RTPTransmitter::AcceptSome or RTPTransmitter::IgnoreSome. Note that if the receive	 *  mode is changed, all information about the addresses to ignore to accept is lost.	 */	virtual int SetReceiveMode(RTPTransmitter::ReceiveMode m) = 0;	/** Adds \c addr to the list of addresses to ignore. */	virtual int AddToIgnoreList(const RTPAddress &addr) = 0;	/** Deletes \c addr from the list of addresses to accept. */	virtual int DeleteFromIgnoreList(const RTPAddress &addr)= 0;	/** Clears the list of addresses to ignore. */	virtual void ClearIgnoreList() = 0;	/** Adds \c addr to the list of addresses to accept. */	virtual int AddToAcceptList(const RTPAddress &addr) = 0;	/** Deletes \c addr from the list of addresses to accept. */	virtual int DeleteFromAcceptList(const RTPAddress &addr) = 0;	/** Clears the list of addresses to accept. */	virtual void ClearAcceptList() = 0;	/** Sets the maximum packet size which the transmitter should allow to \c s. */	virtual int SetMaximumPacketSize(size_t s) = 0;			/** Returns \c true if packets can be obtained using the GetNextPacket member function. */	virtual bool NewDataAvailable() = 0;	/** Returns the raw data of a received RTP packet (received during the Poll function) 	 *  in an RTPRawPacket instance. */	virtual RTPRawPacket *GetNextPacket() = 0;#ifdef RTPDEBUG	virtual void Dump() = 0;#endif // RTPDEBUG};/** Base class for transmission parameters. *  This class is an abstract class which will have a specific implementation for a  *  specific kind of transmission component. All actual implementations inherit the *  GetTransmissionProtocol function which identifies the component type for which *  these parameters are valid. */class RTPTransmissionParams{protected:	RTPTransmissionParams(RTPTransmitter::TransmissionProtocol p)				{ protocol = p; }public:	virtual ~RTPTransmissionParams() { }	/** Returns the transmitter type for which these parameters are valid. */	RTPTransmitter::TransmissionProtocol GetTransmissionProtocol() const			{ return protocol; }private:	RTPTransmitter::TransmissionProtocol protocol;};/** Base class for additional information about the transmitter.  *  This class is an abstract class which will have a specific implementation for a  *  specific kind of transmission component. All actual implementations inherit the *  GetTransmissionProtocol function which identifies the component type for which *  these parameters are valid. */class RTPTransmissionInfo{protected:	RTPTransmissionInfo(RTPTransmitter::TransmissionProtocol p)				{ protocol = p; }public:	virtual ~RTPTransmissionInfo() { }	/** Returns the transmitter type for which these parameters are valid. */	RTPTransmitter::TransmissionProtocol GetTransmissionProtocol() const			{ return protocol; }private:	RTPTransmitter::TransmissionProtocol protocol;};#endif // RTPTRANSMITTER_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产嫩草影院久久久久| 懂色一区二区三区免费观看| 国产三级精品三级| 亚洲一区二区三区四区五区黄| 国产精选一区二区三区| 麻豆国产精品官网| 性感美女久久精品| 欧美高清在线一区二区| 欧美日韩成人综合天天影院| 国产麻豆91精品| 国产三级久久久| 一区二区三区精品在线| 中文字幕一区二区三中文字幕| 精品电影一区二区三区| 欧美刺激脚交jootjob| 欧美性生活大片视频| 欧美性感一类影片在线播放| 一本色道久久加勒比精品| 99久久综合国产精品| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产成人午夜精品5599| 亚洲一区二区免费视频| 亚洲自拍偷拍九九九| 国产精品久久久久久久久晋中| 亚洲一区二区三区视频在线播放 | 伊人色综合久久天天人手人婷| 国产欧美精品在线观看| 国产精品理论片| 亚洲人吸女人奶水| 亚洲第一精品在线| 亚洲国产日韩av| 亚洲成精国产精品女| 久久精品国产亚洲a| 岛国精品在线观看| 欧美三级韩国三级日本三斤| 欧美午夜精品理论片a级按摩| 欧美日韩不卡在线| 51精品视频一区二区三区| 欧美一区在线视频| 国产精品网站在线| 亚洲综合网站在线观看| 国产一区不卡视频| 99精品热视频| 欧美精品一区二区三区在线播放| 国产精品三级久久久久三级| 日日摸夜夜添夜夜添国产精品 | 日本女优在线视频一区二区 | 日韩精品一区国产麻豆| 欧美一区二区视频在线观看2020 | 欧美日韩在线不卡| 日韩网站在线看片你懂的| 中文字幕一区免费在线观看| 视频一区视频二区中文| 99精品偷自拍| 久久精品夜夜夜夜久久| 亚洲6080在线| 97se亚洲国产综合自在线观| 亚洲国产成人午夜在线一区| 美女www一区二区| 欧美一区二区视频在线观看2020| 一区二区三区四区激情| 91视频国产观看| 日本一区二区不卡视频| 精品国偷自产国产一区| 婷婷激情综合网| 欧美日韩一区二区三区在线| 亚洲欧洲精品一区二区三区不卡| 高清在线成人网| 国产精品久久福利| 色综合久久久久网| 最新国产の精品合集bt伙计| k8久久久一区二区三区| 中文字幕在线免费不卡| 91无套直看片红桃| 一区二区三区蜜桃| 欧美精品日韩一区| 美国毛片一区二区| 国产拍揄自揄精品视频麻豆| 97超碰欧美中文字幕| 99久久久久久| 欧美少妇xxx| 精品中文字幕一区二区| 国产欧美视频一区二区三区| av在线播放成人| 久久久精品黄色| 91极品美女在线| 亚洲一区二区三区视频在线 | 91美女福利视频| 日韩制服丝袜av| 国产精品天天摸av网| 欧美日韩中文字幕一区二区| 极品尤物av久久免费看| 国产精品的网站| 欧美成人艳星乳罩| 色嗨嗨av一区二区三区| 国产精品一区二区久激情瑜伽| 从欧美一区二区三区| 一区二区三区成人在线视频| 日韩午夜在线观看| 成人黄色综合网站| 日韩综合在线视频| 国产精品夫妻自拍| 久久综合久久99| 欧美一区二区高清| 日本道在线观看一区二区| 国产成人自拍网| 九九国产精品视频| 日韩av中文在线观看| 一区二区三区四区视频精品免费| 久久影音资源网| 日韩视频一区二区在线观看| 欧美在线不卡视频| 色哟哟日韩精品| 色综合一区二区三区| 久久99日本精品| 国产精品久99| 欧美经典一区二区三区| 久久精品一区二区三区不卡 | 国产欧美一区二区在线观看| 欧美三区免费完整视频在线观看| 美女在线观看视频一区二区| 日本不卡免费在线视频| 亚洲成人av在线电影| 日日夜夜免费精品| 日韩—二三区免费观看av| 日本午夜精品一区二区三区电影| 亚洲电影在线播放| 日韩经典一区二区| 麻豆国产一区二区| 国产91精品一区二区麻豆网站| 国产在线视频不卡二| 亚洲一级二级三级在线免费观看| 久久久久99精品国产片| 欧美国产日韩一二三区| 亚洲精品国产视频| 天天综合色天天综合| 国产aⅴ精品一区二区三区色成熟| 国产成人免费视频网站| 91免费观看视频| 91精品国产综合久久香蕉的特点| 欧美精品一区二区三区一线天视频 | 亚洲色图20p| 日本不卡中文字幕| 成人91在线观看| 欧美一区二区三区四区视频 | 国产成人免费在线| 欧美午夜精品一区二区三区| 精品成人在线观看| 亚洲精品国产无天堂网2021 | 欧美少妇bbb| 欧美经典一区二区| 樱桃视频在线观看一区| 亚洲成人av在线电影| 本田岬高潮一区二区三区| 精品三级在线看| 亚洲aaa精品| 97久久精品人人澡人人爽| 欧美成人性战久久| 视频一区中文字幕国产| 91亚洲精品一区二区乱码| 久久欧美一区二区| 日本中文字幕一区| 亚洲精品在线观看网站| 午夜成人免费电影| 91丨porny丨最新| 国产精品美女久久久久av爽李琼| 美国三级日本三级久久99| 欧美日本一区二区三区四区| 一区二区三区日韩精品| av亚洲产国偷v产偷v自拍| 国产欧美视频一区二区三区| 国产在线看一区| 欧美成人一区二区三区在线观看| 日韩精品1区2区3区| 日韩一区二区三区四区| 精品伊人久久久久7777人| 日韩视频免费观看高清在线视频| 日本视频在线一区| 精品99999| jlzzjlzz国产精品久久| 一区二区三区欧美视频| 国内精品国产三级国产a久久| 欧美一区二区播放| 美女视频一区二区| 国产日本亚洲高清| 色综合视频一区二区三区高清| 亚洲日本中文字幕区| 欧美日韩国产精品成人| 国产在线精品一区二区不卡了| 国产欧美一区二区三区鸳鸯浴| 91网址在线看| 蜜乳av一区二区| 亚洲欧洲av在线| 国产老妇另类xxxxx| 中文字幕av一区二区三区| 91传媒视频在线播放| 韩国视频一区二区| 一区二区三区高清| 久久婷婷国产综合精品青草| 91同城在线观看|