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

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

?? rtpsourcedata.cpp

?? 利用rtp庫實現(xiàn)實時語音傳送
?? CPP
字號:
/*  This file is a part of JRTPLIB  Copyright (c) 1999-2004 Jori Liesenborgs  Contact: jori@lumumba.luc.ac.be  This library (JRTPLIB) was partially developed 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.*/#include "rtpsourcedata.h"#include "rtperror.h"#include "rtptimeutil.h"#include "rtppacket.h"#include <stdlib.h>/* RTPSenderReportData */RTPSenderReportData::RTPSenderReportData(){	srreceived = false;	srtime.tv_sec = 0;	srtime.tv_usec = 0;	ntplsw = 0;	ntpmsw = 0;	rtptimestamp = 0;	packetcount = 0;	bytecount = 0;}/* RTPReceiverReportData */RTPReceiverReportData::RTPReceiverReportData(){	rrreceived = false;	rrtime.tv_sec = 0;	rrtime.tv_usec = 0;	fractionlost = 0;	packetslost = 0;	exthighseqnum = 0;	jitter = 0;	lsr = 0;	dlsr = 0;}/* RTPSourceStats */RTPSourceStats::RTPSourceStats(){	hassentdata = false;	numpacketsreceived = 0;	numnewpackets = 0;	numcycles = 0;	seqbase = 0;	maxseq = 0;	prevmaxseq = 0;	jitter = 0;	djitter = 0;	prevts = 0;	prevpacktime.tv_sec = 0;	prevpacktime.tv_usec = 0;	lastmsgtime = 0;	rtt.tv_sec = 0;	rtt.tv_usec = 0;}void RTPSourceStats::ProcessPacketInStats(RTPPacket *p,double tsunit){	numpacketsreceived++;	numnewpackets++;	if (!hassentdata)	{		hassentdata = true;		if (p->seqnum == 0)		{			seqbase = 0xFFFF;			numcycles = 0x00010000;		}		else			seqbase = p->seqnum-1;		maxseq = seqbase+1;		p->extendedseqnum = maxseq;		prevmaxseq = seqbase;		gettimeofday(&prevpacktime,NULL);	}	else // already sent some data	{		RTPuint16 maxseq16;		RTPuint32 extseq;		struct timeval tv;		long diffsec,diffusec;		double diff;		double diffts1,diffts2;		/* Adjust max extended sequence number and set extende seq nr of packet */				maxseq16 = (RTPuint16)(maxseq&0x0000FFFF);		if (p->seqnum >= maxseq16)		{			extseq = numcycles+(RTPuint32)p->seqnum;			maxseq = extseq;		}		else		{			unsigned short dif1,dif2;			dif1 = (p->seqnum-maxseq16);			dif2 = (maxseq16-p->seqnum); 			if (dif1 < dif2) // check on which side it's closest			{				numcycles += 0x00010000;				extseq = numcycles+(RTPuint32)p->seqnum;				maxseq = extseq;			}			else				extseq = numcycles+(RTPuint32)p->seqnum;		}		p->extendedseqnum = extseq;		/* Calculate jitter */		gettimeofday(&tv,NULL);		diffsec = tv.tv_sec-prevpacktime.tv_sec;		diffusec = tv.tv_usec-prevpacktime.tv_usec;		while (diffusec < 0)		{			diffsec--;			diffusec += 1000000;		}		diffts1 = (((double)diffsec+((double)diffusec)/1000000.0)/tsunit);		diffts2 = (double)p->timestamp-(double)prevts;		diff = diffts1-diffts2;		if (diff < 0)			diff = -diff;		diff -= djitter;		diff /= 16.0;		djitter += diff;		if (djitter < 0)			djitter = 0;		jitter = (RTPuint32)djitter;		prevpacktime = tv;	}	prevts = p->timestamp;	lastmsgtime = prevpacktime.tv_sec;}/* RTPSourceData */RTPSourceData::RTPSourceData(unsigned long src,double ts){	ssrc = src;	sdes.SetSRC(src);	hassentnewdata = false;	isaCSRC = false;	ip = 0;	rtpport = -1;	rtcpport = -1;	tsunit = ts;	firstpacket = NULL;	lastpacket = NULL;	next = NULL;}RTPSourceData::~RTPSourceData(){	FlushPackets();}int RTPSourceData::AddPacket(RTPPacket *p){	RTPuint32 extseqnum;	RTPPacket *tmp,*tmp2;	bool found;	if (p == NULL)		return 0;	if (p->syncsource != ssrc)		return ERR_RTP_PACKETISNOTFORTHISSOURCE;	stats.ProcessPacketInStats(p,tsunit);		/* look for the right place to insert the packet */	if (firstpacket == NULL)	{		firstpacket = p;		lastpacket = p;	}	else // already some packets in the queue	{		/* Search for the right place to insert the packet */		tmp = lastpacket;		found = false;		extseqnum = p->extendedseqnum;		while (!found && tmp != NULL)		{			if (extseqnum < tmp->extendedseqnum)				tmp = tmp->prev;			else				found = true;		}		if (found)		{			if (tmp->extendedseqnum != extseqnum)			{				tmp2 = tmp->next;				tmp->next = p;				p->prev = tmp;				p->next = tmp2;				if (tmp2 != NULL)					tmp2->prev = p;				else					lastpacket = p;			}		}		else // insert at the front of the list		{			p->next = firstpacket;			firstpacket->prev = p;			firstpacket = p;		}	}	return 0;}RTPPacket *RTPSourceData::ExtractPacket(){	RTPPacket *tmp;	if (firstpacket == NULL)		return NULL;	tmp = firstpacket;	firstpacket = firstpacket->next;	if (firstpacket != NULL)		firstpacket->prev = NULL;	else		lastpacket = NULL;	tmp->prev = NULL;	tmp->next = NULL;	return tmp;}void RTPSourceData::FlushPackets(){	while (firstpacket != NULL)	{		lastpacket = firstpacket->next;		delete firstpacket;		firstpacket = lastpacket;	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久性| 奇米精品一区二区三区在线观看一 | 九九精品视频在线看| 日韩三级免费观看| 美女精品一区二区| 久久综合五月天婷婷伊人| 国产一区在线看| 国产调教视频一区| 成人18视频在线播放| 亚洲欧洲综合另类| 欧美巨大另类极品videosbest| 亚洲bt欧美bt精品777| 91精品国产入口| 国产91精品欧美| 亚洲最色的网站| 日韩三级伦理片妻子的秘密按摩| 国产一区二区伦理片| 国产精品成人网| 欧美精品色综合| 成人精品小蝌蚪| 亚洲不卡av一区二区三区| 日韩午夜av一区| www.欧美日韩| 青青草国产精品97视觉盛宴| 欧美国产日本视频| 91精品婷婷国产综合久久性色| 国产精品资源在线| 亚洲激情av在线| 久久综合色之久久综合| 色偷偷一区二区三区| 麻豆免费看一区二区三区| 国产精品久久国产精麻豆99网站 | 91久久国产最好的精华液| 青青草精品视频| 亚洲男女毛片无遮挡| 日韩亚洲欧美一区| 色婷婷一区二区| 国模套图日韩精品一区二区| 一区二区在线观看不卡| 精品剧情v国产在线观看在线| 色婷婷国产精品| 国产精品538一区二区在线| 亚洲一卡二卡三卡四卡五卡| 国产午夜亚洲精品不卡| 欧美日韩一区二区电影| 99精品视频在线播放观看| 久久er99热精品一区二区| 亚洲午夜在线视频| 亚洲欧美在线视频观看| 26uuu精品一区二区| 91精品婷婷国产综合久久性色| 色综合网站在线| 成人自拍视频在线| 狠狠狠色丁香婷婷综合激情| 亚洲福利一区二区三区| 亚洲视频1区2区| 国产女同互慰高潮91漫画| 欧美一区二区免费视频| 欧美日韩专区在线| 91美女福利视频| 成人性生交大片免费看视频在线| 久久精品久久综合| 天堂影院一区二区| 亚洲激情校园春色| 一区二区三区四区乱视频| 国产精品久久毛片av大全日韩| 欧美videos中文字幕| 91精品国产综合久久婷婷香蕉| 欧美亚洲国产一卡| 日本道色综合久久| 欧美日韩免费一区二区三区 | 国产乱妇无码大片在线观看| 日本伊人精品一区二区三区观看方式| 亚洲一二三专区| 亚洲尤物在线视频观看| 亚洲精品视频在线观看网站| 亚洲男同性恋视频| 亚洲综合在线第一页| 一区二区三区四区不卡视频| 亚洲色大成网站www久久九九| 中文字幕在线一区| 国产精品私人影院| 国产精品久久三| 亚洲精品日韩一| 亚洲va国产天堂va久久en| 性欧美疯狂xxxxbbbb| 无吗不卡中文字幕| 日本不卡视频一二三区| 久久精品久久综合| 国产毛片精品视频| av电影天堂一区二区在线观看| av激情亚洲男人天堂| 日本道在线观看一区二区| 欧美日韩另类一区| 欧美成va人片在线观看| 久久精品日产第一区二区三区高清版| 国产日韩精品一区| 亚洲桃色在线一区| 亚洲成av人片一区二区梦乃| 美女网站在线免费欧美精品| 国产一区91精品张津瑜| 成人av资源在线观看| 欧美四级电影网| 日韩丝袜情趣美女图片| 欧美激情中文字幕一区二区| 亚洲激情图片小说视频| 免播放器亚洲一区| 国产精品 日产精品 欧美精品| 成人中文字幕电影| 欧美日韩大陆在线| 久久久精品tv| 亚洲男同性视频| 加勒比av一区二区| 色综合欧美在线视频区| 欧美一二三区精品| 成人欧美一区二区三区小说| 亚洲第一激情av| 国产成人免费在线观看不卡| 色94色欧美sute亚洲线路一ni| 欧美一区二区三区免费在线看| 国产视频一区二区在线观看| 亚洲第一电影网| 大陆成人av片| 欧美一区2区视频在线观看| 国产精品区一区二区三区| 午夜激情久久久| 成人va在线观看| 91精品久久久久久久91蜜桃| 亚洲视频 欧洲视频| 国产精品自拍三区| 欧美一区二区福利在线| 亚洲人精品午夜| 国内精品国产成人国产三级粉色 | av日韩在线网站| 精品国产亚洲在线| 亚洲乱码日产精品bd| 高清成人免费视频| 欧美一级二级三级蜜桃| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人av一区二区三区在线| 91精品视频网| 亚洲成人精品影院| av欧美精品.com| 中文在线资源观看网站视频免费不卡| 日本美女一区二区三区视频| 一本色道a无线码一区v| 国产女人水真多18毛片18精品视频| 日本va欧美va精品发布| 欧美性videosxxxxx| 亚洲视频网在线直播| 国产成人在线色| 欧美精品一区二区三区很污很色的| 舔着乳尖日韩一区| 欧美日韩免费高清一区色橹橹 | 色婷婷狠狠综合| 亚洲欧美另类在线| 成人av电影在线观看| 久久久亚洲精华液精华液精华液| 免费在线观看日韩欧美| 欧美一级专区免费大片| 五月婷婷激情综合| 欧美日韩国产精品成人| 亚洲成人一二三| 欧美手机在线视频| 亚洲国产精品一区二区www在线| 91麻豆高清视频| 亚洲欧美日韩系列| 91国偷自产一区二区开放时间 | 亚洲成a人在线观看| 色噜噜夜夜夜综合网| 亚洲综合色在线| 欧美日韩国产首页在线观看| 丝袜美腿亚洲一区二区图片| 欧美日本国产视频| 五月婷婷另类国产| 欧美一级国产精品| 国产精一区二区三区| 欧美国产日韩精品免费观看| jlzzjlzz国产精品久久| 亚洲免费观看高清完整版在线| 91免费观看视频在线| 亚洲国产精品久久艾草纯爱| 欧美美女黄视频| 久久99国产精品麻豆| 国产亚洲一区二区三区在线观看| 国产九九视频一区二区三区| 中文字幕制服丝袜一区二区三区| 色综合一区二区| 日韩国产精品大片| 久久久久久夜精品精品免费| 丰满少妇在线播放bd日韩电影| 综合欧美一区二区三区| 欧美中文字幕一区二区三区亚洲| 天天综合网 天天综合色| 精品国产乱码久久久久久牛牛| 丁香婷婷综合激情五月色| 亚洲精品乱码久久久久久 | 国产尤物一区二区在线| 国产精品久久久久久妇女6080| 欧洲另类一二三四区|