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

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

?? rtcpcompoundpacket.cpp

?? jrtp庫
?? CPP
字號:
/*  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.*/#include "rtcpcompoundpacket.h"#include "rtprawpacket.h"#include "rtperrors.h"#include "rtpstructs.h"#include "rtpdefines.h"#include "rtcpsrpacket.h"#include "rtcprrpacket.h"#include "rtcpsdespacket.h"#include "rtcpbyepacket.h"#include "rtcpapppacket.h"#include "rtcpunknownpacket.h"#if ! (defined(WIN32) || defined(_WIN32_WCE))	#include <netinet/in.h>#endif // WIN32#include "rtpdebug.h"RTCPCompoundPacket::RTCPCompoundPacket(RTPRawPacket &rawpack, RTPMemoryManager *mgr) : RTPMemoryObject(mgr){	compoundpacket = 0;	compoundpacketlength = 0;	error = 0;		if (rawpack.IsRTP())	{		error = ERR_RTP_RTCPCOMPOUND_INVALIDPACKET;		return;	}	uint8_t *data = rawpack.GetData();	size_t datalen = rawpack.GetDataLength();	error = ParseData(data,datalen);	if (error < 0)		return;		compoundpacket = rawpack.GetData();	compoundpacketlength = rawpack.GetDataLength();	deletepacket = true;	rawpack.ZeroData();		rtcppackit = rtcppacklist.begin();}RTCPCompoundPacket::RTCPCompoundPacket(uint8_t *packet, size_t packetlen, bool deletedata, RTPMemoryManager *mgr) : RTPMemoryObject(mgr){	compoundpacket = 0;	compoundpacketlength = 0;		error = ParseData(packet,packetlen);	if (error < 0)		return;		compoundpacket = packet;	compoundpacketlength = packetlen;	deletepacket = deletedata;	rtcppackit = rtcppacklist.begin();}RTCPCompoundPacket::RTCPCompoundPacket(RTPMemoryManager *mgr) : RTPMemoryObject(mgr){	compoundpacket = 0;	compoundpacketlength = 0;	error = 0;	deletepacket = true;}int RTCPCompoundPacket::ParseData(uint8_t *data, size_t datalen){	bool first;		if (datalen < sizeof(RTCPCommonHeader))		return ERR_RTP_RTCPCOMPOUND_INVALIDPACKET;	first = true;		do	{		RTCPCommonHeader *rtcphdr;		size_t length;				rtcphdr = (RTCPCommonHeader *)data;		if (rtcphdr->version != RTP_VERSION) // check version		{			ClearPacketList();			return ERR_RTP_RTCPCOMPOUND_INVALIDPACKET;		}		if (first)		{			// Check if first packet is SR or RR						first = false;			if ( ! (rtcphdr->packettype == RTP_RTCPTYPE_SR || rtcphdr->packettype == RTP_RTCPTYPE_RR))			{				ClearPacketList();				return ERR_RTP_RTCPCOMPOUND_INVALIDPACKET;			}		}				length = (size_t)ntohs(rtcphdr->length);		length++;		length *= sizeof(uint32_t);		if (length > datalen) // invalid length field		{			ClearPacketList();			return ERR_RTP_RTCPCOMPOUND_INVALIDPACKET;		}				if (rtcphdr->padding)		{			// check if it's the last packet			if (length != datalen)			{				ClearPacketList();				return ERR_RTP_RTCPCOMPOUND_INVALIDPACKET;			}		}		RTCPPacket *p;				switch (rtcphdr->packettype)		{		case RTP_RTCPTYPE_SR:			p = RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPSRPACKET) RTCPSRPacket(data,length);			break;		case RTP_RTCPTYPE_RR:			p = RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPRRPACKET) RTCPRRPacket(data,length);			break;		case RTP_RTCPTYPE_SDES:			p = RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPSDESPACKET) RTCPSDESPacket(data,length);			break;		case RTP_RTCPTYPE_BYE:			p = RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPBYEPACKET) RTCPBYEPacket(data,length);			break;		case RTP_RTCPTYPE_APP:			p = RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPAPPPACKET) RTCPAPPPacket(data,length);			break;		default:			p = RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPUNKNOWNPACKET) RTCPUnknownPacket(data,length);		}		if (p == 0)		{			ClearPacketList();			return ERR_RTP_OUTOFMEM;		}		rtcppacklist.push_back(p);				datalen -= length;		data += length;	} while (datalen >= (size_t)sizeof(RTCPCommonHeader));	if (datalen != 0) // some remaining bytes	{		ClearPacketList();		return ERR_RTP_RTCPCOMPOUND_INVALIDPACKET;	}	return 0;}RTCPCompoundPacket::~RTCPCompoundPacket(){	ClearPacketList();	if (compoundpacket && deletepacket)		RTPDeleteByteArray(compoundpacket,GetMemoryManager());}void RTCPCompoundPacket::ClearPacketList(){	std::list<RTCPPacket *>::const_iterator it;	for (it = rtcppacklist.begin() ; it != rtcppacklist.end() ; it++)		RTPDelete(*it,GetMemoryManager());	rtcppacklist.clear();	rtcppackit = rtcppacklist.begin();}#ifdef RTPDEBUGvoid RTCPCompoundPacket::Dump(){	std::list<RTCPPacket *>::const_iterator it;	for (it = rtcppacklist.begin() ; it != rtcppacklist.end() ; it++)	{		RTCPPacket *p = *it;		p->Dump();	}}#endif // RTPDEBUG

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产精品免费| 91精品午夜视频| 欧美日韩精品电影| 6080亚洲精品一区二区| 91精品91久久久中77777| 欧美日韩午夜在线| 中文字幕巨乱亚洲| 日本欧美一区二区| 91蝌蚪porny成人天涯| 2017欧美狠狠色| 视频在线观看一区二区三区| 成人免费毛片片v| 精品成人一区二区| 亚瑟在线精品视频| 色综合久久久久久久久| 久久精品一区二区三区不卡| 日韩一区精品视频| 欧美日本一区二区三区| 国产精品家庭影院| 波多野洁衣一区| 国产日韩成人精品| 国产成人综合自拍| 精品久久久久久久一区二区蜜臀| 亚洲成人一二三| 欧美中文字幕一二三区视频| 国产精品九色蝌蚪自拍| 成人久久久精品乱码一区二区三区| 精品国产乱码久久久久久久久 | 欧美丝袜丝交足nylons图片| 中文字幕免费不卡| 国产91清纯白嫩初高中在线观看| 日韩一区二区三区精品视频| 天堂成人国产精品一区| 欧美日韩久久久| 三级欧美韩日大片在线看| 欧美日韩国产乱码电影| 午夜视频在线观看一区| 911国产精品| 免费人成精品欧美精品| 欧美一区二区国产| 精品系列免费在线观看| 久久精品免费在线观看| 成人在线视频首页| 一区二区视频在线| 欧美日韩另类国产亚洲欧美一级| 视频一区国产视频| 精品欧美久久久| 成人精品国产免费网站| 亚洲码国产岛国毛片在线| 欧美无砖专区一中文字| 麻豆一区二区三| 国产肉丝袜一区二区| av在线一区二区| 亚洲不卡在线观看| 精品国产91洋老外米糕| 成人ar影院免费观看视频| 一区二区三区毛片| 欧美va亚洲va香蕉在线| 成人午夜免费av| 中文字幕五月欧美| 一本久久综合亚洲鲁鲁五月天| 亚洲成人免费视频| 国产一区二区美女| 国产高清不卡一区二区| 国产精品毛片久久久久久| 国产成人亚洲精品青草天美| 中文字幕不卡的av| 成人高清视频免费观看| 亚洲综合精品久久| 国产欧美日韩不卡| 夜夜亚洲天天久久| 国产91丝袜在线播放九色| 日韩欧美一级二级| 国产成人精品一区二区三区四区| 中文字幕精品一区| 欧美在线你懂的| 久久精品99国产精品日本| 国产亚洲成年网址在线观看| 国产在线麻豆精品观看| 亚洲精品你懂的| 日韩一二在线观看| 成人av网站在线| 婷婷丁香久久五月婷婷| 2024国产精品| 欧美三级资源在线| 国产精品911| 亚洲国产精品久久人人爱蜜臀| 欧美成人乱码一区二区三区| 高清成人在线观看| 亚洲国产成人高清精品| 日本一区二区视频在线| 欧美日韩一级二级| 国产福利一区二区三区| 偷拍一区二区三区| 国产精品三级视频| 制服丝袜亚洲播放| 国产suv精品一区二区883| 最新欧美精品一区二区三区| 日韩手机在线导航| 亚洲欧洲www| 蜜臀精品一区二区三区在线观看 | 亚洲资源在线观看| 久久久夜色精品亚洲| 99精品欧美一区二区三区小说 | 久久激情综合网| 中文字幕中文字幕一区二区| 欧美日韩在线观看一区二区| 盗摄精品av一区二区三区| 日韩中文字幕区一区有砖一区| 中文字幕 久热精品 视频在线| 欧美电影一区二区| 国产亚洲欧美中文| 国产亚洲综合av| 国产又粗又猛又爽又黄91精品| 亚洲精品自拍动漫在线| 久久影院视频免费| 欧美一区二区三区四区高清| 色婷婷亚洲一区二区三区| 日韩av中文在线观看| 婷婷久久综合九色国产成人| 亚洲精品美国一| 中文字幕一区二区三| 26uuu亚洲综合色欧美| 日韩一区二区在线免费观看| 欧美在线小视频| 精品一区二区久久久| 成人欧美一区二区三区1314| 国产午夜精品一区二区三区嫩草| 精品成a人在线观看| 91精品国产美女浴室洗澡无遮挡| 欧美日韩精品免费观看视频| 91黄色激情网站| 在线观看成人免费视频| 成人国产电影网| 在线精品视频免费播放| 一本到三区不卡视频| 亚洲香蕉伊在人在线观| 久久久久国产成人精品亚洲午夜| 日韩一区二区三区视频| 日韩女同互慰一区二区| 欧美一级片在线| 欧美成人video| 久久新电视剧免费观看| 欧美大黄免费观看| 精品国产露脸精彩对白| 久久婷婷久久一区二区三区| 久久久精品欧美丰满| 国产精品沙发午睡系列990531| 国产精品剧情在线亚洲| 曰韩精品一区二区| 偷窥国产亚洲免费视频| 美女任你摸久久| 婷婷中文字幕综合| 久久99九九99精品| 久久国产精品无码网站| 成人午夜看片网址| 欧洲国内综合视频| 日韩精品专区在线影院重磅| 久久久亚洲国产美女国产盗摄| 一区在线播放视频| 性久久久久久久久| 免费av成人在线| 大胆欧美人体老妇| 欧美日韩视频专区在线播放| 欧美精品一区二区三区蜜臀| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美一区二区黄| 久久久国产综合精品女国产盗摄| 久久久久9999亚洲精品| 一区二区三区不卡在线观看| 日韩精品国产欧美| 丰满岳乱妇一区二区三区| 欧美午夜精品理论片a级按摩| 精品三级在线观看| 亚洲伦在线观看| 国产在线一区二区综合免费视频| 一本大道av一区二区在线播放| 欧美系列日韩一区| 日本一区二区高清| 视频一区二区中文字幕| 成人免费黄色大片| 欧美成人a∨高清免费观看| 一区二区三区四区蜜桃| 国产精品911| 欧美一区在线视频| 午夜精品久久一牛影视| 91色在线porny| 国产亚洲成年网址在线观看| 天堂va蜜桃一区二区三区| 不卡影院免费观看| 久久夜色精品国产噜噜av| 亚洲 欧美综合在线网络| 国产精品影视在线观看| 久久综合九色综合97婷婷| 人妖欧美一区二区| 色妞www精品视频| 中文av一区二区| 极品少妇xxxx偷拍精品少妇| 欧美久久久久久久久久| 亚洲成人激情综合网|