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

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

?? manual.tex

?? 利用rtp庫實現實時語音傳送
?? TEX
?? 第 1 頁 / 共 3 頁
字號:
\documentstyle[12pt,a4]{article}\begin{document}\title{JRTPLIB (v2.8) -  REFERENCE MANUAL}\author{Jori Liesenborgs (jori@lumumba.luc.ac.be)}\date{6th January 2004}\maketitle\section{General Information}\subsection{Description}JRTPLIB (Jori's RTP Library) is an object oriented library for the use of RTP(Real-Time Transport Protocol). Normally, it should follow the specificationsaccording to RFC 1889. This textfile describes the classes and functions which form the interface of the library. If some of the used terms aren'tclear, you should consult RFC 1889.\subsection{Author \& contact}The library was written completely from scratch by Jori Liesenborgs. Anycomments, bugreports, ideas for improvements,... can be sent to the followinge-mail address:		jori@lumumba.luc.ac.be\subsection{Platforms}The library uses the socket mechanism for network communications. This meansit can be compiled (perhaps with some minor modifications) and used on various platforms. It has been tested on a Linux platform and on a Windowsplatform (using the Winsock library). It's also known to work on Solaris,HP-UX, FreeBSD and VxWorks platforms.\subsection{Important general information}All of the functions with return type 'int', return 0 or more on success. Thus, with these functions an error is always indicated by a negative number.\subsection{What the library doesn't do}An important remark is that the library will not necessarily filter out duplicate packets. The packets from one sender which are in the received packetsqueue after a call to 'Poll', won't be duplicates of other packets in the queue.Once out of the queue, however, there is no guarantee that some accepted packet won't have been received already. There is a good reason for this: the application using the library probably hasmore information about which packets are expected. Using this information it's possible to filter out duplicate packets using less memory than would be required inside the library.\subsection{Copyright \& disclaimer}  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.\section{class RTPSession}\subsection{Description}This class is used to set up a RTP session.\subsection{Member functions}\begin{itemize}\item {\tt int Create(int localportbase)}\\	This function attempts to create a RTP session with a given portbase.	It creates an initial timestamp and an initial packet sequence	number. It also creates a local synchronization source identifier	(SSRC). When doing this, the list of illegal SSRCs is checked. This	list can be modified by the functions AddIllegalLocalSSRC,	DeleteIllegalLocalSSRC and ClearInvalidLocalSSRCList. In a newly	created session, there are no destinations to send the RTP and RTCP	packets to. Destinations can be set by the functions AddDestination,	DeleteDestination and ClearDestinations.\item {\tt int GetPortBase()}\\	Returns the portbase of this session.\item {\tt int GetLocalSSRC(unsigned long *ssrc)}\\	This function retrieves the local synchronization source identifier.\item {\tt int Destroy()}\\	Destroys the session. All info is destroyed, including destinations,	default values for SendPacket, invalid local SSRC values,...	\item {\tt int GetRTPSocket(RTPSOCKET *sock)}\\	Retrieves the RTP socket (used for receiving RTP data). This way,	the socket can be used outside the library. A practical use would be	in the 'select' function.\item {\tt int GetRTCPSocket(RTPSOCKET *sock)}\\	Retrieves the RTCP socket (used for receiving RTCP data). This way,	the socket can be used outside the library. A practical use would	be in the 'select' function.\item {\tt int GetSendSocket(RTPSOCKET *sock)}\\	Retrieves the socket which is used for sending the RTP data. This	way, the socket can be used outside the library. A practical use	would be in the 'select' function.\item {\tt int GetSendPort()}\\	Retrieves the port to which the sending socket was bound.\item {\tt int GetLocalIP(unsigned long *ip)}\\ 	Puts the local IP address which is used by the library in 'ip'.\item {\tt int SetToS(int tos)}\\ 	Set the IP type of service (ToS) field for outgoing RTP and RTCP	packets. \item {\tt int AddDestination(unsigned long remoteIP,int remoteportbase)}\\ 	Adds a destination to send RTP and RTCP data to.\item {\tt int DeleteDestination(unsigned long remoteIP,int remoteportbase)}\\	Deletes a destination from the list of destinations.	\item {\tt void ClearDestinations()}\\	Clears the list of destinations.\item {\tt bool SupportsMulticasting()}\\	Returns 'true' if the library is compiled with multicasting support,	otherwise the function returns 'false'.\item {\tt int JoinMulticastGroup(unsigned long mcastIP)}\\ 	This function attempts to join the multicast group specified by the 	address in 'mcastIP'. Note that you only have to join a multicast 	group to receive packets which are sent to it. You don't have to be 	in a group to send packets to it.\item {\tt int LeaveMulticastGroup(unsigned long mcastIP)}\\ 	This function attempts to leave the multicast group specified by the 	address in 'mcastIP'\item {\tt void LeaveAllMulticastGroups()}\\ 	Leaves all multicast groups to which the session was previously joined 	through the use of JoinMulticastGroup 	\item {\tt int SetMulticastTTL(unsigned char ttl)}\\ 	Use this function to change the Time To Live (TTL) field for multicast 	packets. The TTL field is a field in the IP header which determines 	the lifetime for a packet (normally, this the maximum number of hops 	for a packet).	\item {\tt int SendPacket(void *data,int len)}\\	Sends a RTP packet with a payload containing of 'len' bytes of	'data'. To be able to use this function, you must first set the	default values for the payload type, the mark bit and the timestamp	increment value. These default values can be set with the functions	SetDefaultPayloadType, SetDefaultMark and SetDefaultTimeStampIncrement.\item {\tt int SendPacket(void *data,int len,unsigned char pt,bool mark,unsigned long timestampinc)}\\	Sends a RTP packet with a payload containing of 'len' bytes of	'data'. The packet type is specified by 'pt', the mark bit by 'mark'	and the timestamp increment by 'timestampinc'. The values set by	SetDefaultPayloadType, SetDefaultMark and SetDefaultTimeStampIncrement	are ignored.	\item {\tt int SendPacket(void *data,int len,unsigned short hdrextID,void *hdrextdata,int numhdrextwords)}\\	Sends a RTP packet with a payload containing of 'len' bytes of	'data'. To be able to use this function, you must first set the	default values for the payload type, the mark bit and the timestamp	increment value. These default values can be set with the functions	SetDefaultPayloadType, SetDefaultMark and SetDefaultTimeStampIncrement.	This function also causes a RTP header extension to be included in the	packet. This extension has identifier 'hdrextID' and the length of the	extension data is specified in 32-bit words by 'numhdrextwords'. The	data itself is contained in 'hdrextdata'.\item {\tt int SendPacket(void *data,int len,unsigned char pt,bool mark,unsigned long timestampinc,unsigned short hdrextID,void *hdrextdata,int numhdrextwords)}\\	Sends a RTP packet with a payload containing of 'len' bytes of	'data'. The packet type is specified by 'pt', the mark bit by 'mark'	and the timestamp increment by 'timestampinc'. The values set by	SetDefaultPayloadType, SetDefaultMark and SetDefaultTimeStampIncrement	are ignored. This function also causes a RTP header extension to be	included in the packet. This extension has identifier 'hdrextID' and	the length of the extension data is specified in 32-bit words by	'numhdrextwords'. The data itself is contained in 'hdrextdata'.\item {\tt void SetDefaultPayloadType(unsigned char pt)}\\	Sets the default packet type.\item {\tt void SetDefaultMark(bool mark)}\\	Sets the default value for the mark bit.\item {\tt void SetDefaultTimeStampIncrement(unsigned long inc)}\\	Sets the default timestamp increment value.\item {\tt int IncrementTimeStamp(unsigned long inc)}\\	Increments the current timestamp with value 'inc'.\item {\tt int IncrementTimeStampDefault()}\\	Increments the current timestamp with the default value, set by the	function SetDefaultTimeStampIncrement.\item {\tt int PollData()}\\	Checks for data on RTP and RTCP ports. If any data is present, it's	immediately processed. To retrieve RTP packets or info gathered from	RTCP packets, you can use the functions GotoFirstSource, GotoNextSource,	GotoFirstSourceWithData, GotoNextSourceWithData, GetNextPacket,	GetCurrentSourceInfo and GetSourceInfo. After calling PollData, you	should always use one of the GotoFirst functions before one of the	GotoNext functions, as the list of participating sources may have	changed: sources could have joined the session or may have left the	session.	Note that currently own RTCP packets are always discarded.\item {\tt bool GotoFirstSource()}\\	This function goes sets a pointer to the first participating source.	You can use this function to start an iteration over the participating	sources. It returns 'true' if there are any participating sources,	otherwise the function returns 'false'.	\item {\tt bool GotoNextSource()}\\	You can use this function to iterate over the participating sources.	If there is a source that hasn't been processed yet, the function	returns 'true'. If all sources were covered, 'false' is returned.\item {\tt bool GotoFirstSourceWithData()}\\	This function is similar to GotoFirstSource, but it skips sources	that haven't got any data pending on their input queues. Returns	'true' is a source with data on its queue exists. Returns 'false'	otherwise.\item {\tt bool GotoNextSourceWithData()}\\	This function is similar to GotoNextSource, but it skips sources	that haven't got any data pending on their input queues. If there	aren't any sources left to process 'false' is returned. If another	source was found, 'true' is returned.\item {\tt RTPPacket *GetNextPacket()}\\	When iterating over the participating sources with GotoFirst and	GotoNext functions, you can use this function to extract a packet	from the current source's queue. If data is available, the function	returns an instance of the class RTPPacket containing the data.	Otherwise, NULL is returned. If a packet is returned, it must be	destroyed by a call to 'delete' when it is no longer needed.\item {\tt RTPSourceData *GetCurrentSourceInfo()}\\	When iterating over the participating sources with GotoFirst and	GotoNext functions, you can use this function to get information	about the current source. If the iteration has stopped NULL is	returned, otherwise the function returns an instance of the class	RTPSourceData containing the info about the current source.\item {\tt RTPSourceData *GetSourceInfo(unsigned long ssrc)}\\	Retrieves information about the participating source with	synchronization source identifier 'ssrc'. If there is an entry for	that source, an instance of the class RTPSourceData is returned.	Otherwise the function returns NULL.\item {\tt AddInvalidLocalSSRC(unsigned long ssrc)}\\	Adds the synchronization source identifier 'ssrc' to the list of	invalid local sychronization source identifiers. This list is checked	when the local SSRC identifier is created.\item {\tt int RemoveInvalidLocalSSRC(unsigned long ssrc)}\\	Removes an entry from the list of invalid local SSRCs.\item {\tt void ClearInvalidLocalSSRCList()}\\	Clears the list of invalid local SSRCs.\item {\tt int AddCSRC(unsigned long csrc)}\\	Adds an entry to the list of contributing sources. Info about these	sources can be set with SetCSRC functions.\item {\tt int DeleteCSRC(unsigned long csrc)}\\	Deletes an entry from the list of contributing sources.\item {\tt void ClearCSRCList()}\\	Clears the list of contributing sources.\item {\tt int SetReceiveMode(int mode)}\\	Sets the receive mode. The parameter 'mode' has three legal values:	\begin{itemize}	\item RECEIVEMODE\_ALL \\		Accept all incoming data on RTP and RTCP ports.	\item RECEIVEMODE\_IGNORESOME \\		Ignore packets from the ip-port pairs in the ignore list, but		accept all other packets.			\item RECEIVEMODE\_ACCEPTSOME \\		Ignore all packets, except those whose ip-port origin is		found in the accept list.	\end{itemize}	The ignore list can be modified with the function AddToIgnoreList,	DeleteFromIgnoreList and ClearIgnoreList. The accept list can be

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频在线观看一区二区三区| 在线观看视频一区二区欧美日韩| 亚洲成人免费影院| 中文字幕日韩精品一区 | 欧美人狂配大交3d怪物一区| 白白色 亚洲乱淫| 91网页版在线| 色999日韩国产欧美一区二区| 色婷婷精品久久二区二区蜜臂av| 91蜜桃免费观看视频| 色94色欧美sute亚洲线路一ni| 99久久综合国产精品| 91香蕉视频mp4| 欧美亚洲日本国产| 9191久久久久久久久久久| 日韩欧美不卡一区| 国产亚洲欧美色| 亚洲女女做受ⅹxx高潮| 午夜在线成人av| 久久99久久精品欧美| 国产福利一区二区三区在线视频| 成人一级视频在线观看| 在线观看av一区| 精品欧美乱码久久久久久| 国产欧美日韩麻豆91| 一区二区三区小说| 蜜桃一区二区三区在线观看| 国产精品白丝av| 97se亚洲国产综合自在线 | 国产精一区二区三区| 精品一区二区在线看| 岛国av在线一区| 欧美日韩国产免费一区二区 | 国产精品欧美一区喷水| 夜色激情一区二区| 久久精品国产澳门| 99r精品视频| 欧美一区三区二区| 一区在线观看视频| 免费成人在线观看视频| 色综合久久88色综合天天免费| 精品人在线二区三区| 成人av资源在线观看| 欧美一区二区在线看| 欧美少妇xxx| 久久久国产午夜精品| 91福利国产精品| 中文字幕亚洲不卡| 欧美最猛性xxxxx直播| 亚洲国产美女搞黄色| 在线不卡一区二区| 久久9热精品视频| 国产视频亚洲色图| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲人成在线观看一区二区| 欧美日韩精品专区| 国产精品99久久不卡二区| 国产精品久久久久久久久免费相片 | 国产人伦精品一区二区| 91在线精品一区二区| 亚洲一区二区成人在线观看| 日韩你懂的在线播放| 成人综合婷婷国产精品久久| 亚洲最大的成人av| 久久人人97超碰com| 91免费国产在线| 免费成人你懂的| 成人欧美一区二区三区| 制服丝袜成人动漫| av在线播放不卡| 秋霞国产午夜精品免费视频| 国产精品久久久久精k8| 91精品国产91久久综合桃花| 99精品视频在线观看| 日韩**一区毛片| **性色生活片久久毛片| 精品不卡在线视频| 欧美私人免费视频| 国产福利精品导航| 日本视频在线一区| 亚洲欧洲综合另类| 国产午夜精品福利| 制服.丝袜.亚洲.中文.综合 | 韩国成人在线视频| 一区二区三区四区亚洲| 国产欧美精品一区| 日韩一区国产二区欧美三区| 日本韩国精品一区二区在线观看| 国产精品中文字幕日韩精品| 日韩国产精品久久| 亚洲最大成人综合| 亚洲欧洲精品天堂一级| 欧美一级高清大全免费观看| 在线观看91视频| 色94色欧美sute亚洲13| 粉嫩av一区二区三区| 久久成人av少妇免费| 爽好多水快深点欧美视频| 综合分类小说区另类春色亚洲小说欧美| 日韩欧美国产午夜精品| 欧美三级在线播放| 在线观看日韩毛片| 色婷婷久久综合| 成人精品一区二区三区四区| 国产一区二区0| 国产精品影视网| 激情久久五月天| 久久国产精品色婷婷| 日本美女视频一区二区| 亚洲国产精品久久艾草纯爱| 麻豆国产欧美日韩综合精品二区 | 欧美一区二区三区播放老司机 | 99麻豆久久久国产精品免费| 成人激情av网| 波多野结衣中文一区| av在线播放不卡| 91小视频免费看| 日本精品免费观看高清观看| 色天天综合久久久久综合片| 91小视频免费看| 欧美色图片你懂的| 欧美精品久久一区二区三区| 日韩一区二区三区视频在线| 日韩写真欧美这视频| 久久网站最新地址| 国产欧美一区二区精品性色| 国产精品丝袜一区| 亚洲女同一区二区| 日韩一区精品字幕| 国产精品综合av一区二区国产馆| 国产a级毛片一区| 色88888久久久久久影院野外| 欧美日本国产视频| 久久综合给合久久狠狠狠97色69| 亚洲国产精品高清| 亚洲精品ww久久久久久p站| 亚洲高清在线视频| 激情小说欧美图片| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 久久影院午夜论| 亚洲日本在线视频观看| 爽爽淫人综合网网站| 国产伦精一区二区三区| 色噜噜狠狠色综合欧洲selulu| 欧美日韩在线三区| 久久久久久久综合日本| 亚洲精品亚洲人成人网在线播放| 天堂精品中文字幕在线| 国产伦精品一区二区三区免费 | 91色在线porny| 日韩一区二区麻豆国产| 国产精品久久久久影院| 亚洲成av人片| 北岛玲一区二区三区四区| 这里是久久伊人| 日韩毛片精品高清免费| 开心九九激情九九欧美日韩精美视频电影| 国产精品白丝av| 在线播放中文一区| 国产精品久久三| 免费日本视频一区| 在线影院国内精品| 国产人伦精品一区二区| 日本亚洲最大的色成网站www| 成人综合婷婷国产精品久久 | 亚洲视频免费在线| 国产真实乱对白精彩久久| 欧美日韩在线免费视频| 一色桃子久久精品亚洲| 日本丶国产丶欧美色综合| 日本一区二区三级电影在线观看| 亚洲国产成人高清精品| 99re6这里只有精品视频在线观看| 精品国产免费一区二区三区香蕉| 亚洲成av人片在线| 色菇凉天天综合网| 中文字幕在线一区二区三区| 国产精品亚洲а∨天堂免在线| 日韩一区二区三区在线| 亚洲大片一区二区三区| 色国产综合视频| 亚洲情趣在线观看| 99久久国产综合色|国产精品| 久久人人爽爽爽人久久久| 麻豆成人久久精品二区三区红| 欧美揉bbbbb揉bbbbb| 亚洲精品日韩专区silk| 99精品久久免费看蜜臀剧情介绍| 国产夜色精品一区二区av| 蜜臀精品一区二区三区在线观看| 欧美精品一二三| 午夜精品久久久久| 欧美欧美午夜aⅴ在线观看| 亚洲精品视频一区| 91黄色在线观看| 一二三区精品福利视频| 色综合久久综合中文综合网| 亚洲免费观看高清在线观看| 日本韩国欧美在线| 亚洲与欧洲av电影|