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

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

?? rtcpsdespacket.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 "rtcpsdespacket.h"#ifdef RTPDEBUG	#include <iostream>#endif // RTPDEBUG#include "rtpdebug.h"RTCPSDESPacket::RTCPSDESPacket(uint8_t *data,size_t datalength)	: RTCPPacket(SDES,data,datalength){	knownformat = false;	currentchunk = 0;	itemoffset = 0;	curchunknum = 0;			RTCPCommonHeader *hdr = (RTCPCommonHeader *)data;	size_t len = datalength;		if (hdr->padding)	{		uint8_t padcount = data[datalength-1];		if ((padcount & 0x03) != 0) // not a multiple of four! (see rfc 3550 p 37)			return;		if (((size_t)padcount) >= len)			return;		len -= (size_t)padcount;	}		if (hdr->count == 0)	{		if (len != sizeof(RTCPCommonHeader))			return;	}	else	{		int ssrccount = (int)(hdr->count);		uint8_t *chunk;		int chunkoffset;				if (len < sizeof(RTCPCommonHeader))			return;				len -= sizeof(RTCPCommonHeader);		chunk = data+sizeof(RTCPCommonHeader);				while ((ssrccount > 0) && (len > 0))		{			chunkoffset = 0;						if (len < (sizeof(uint32_t)*2)) // chunk must contain at least a SSRC identifier				return;                  // and a (possibly empty) item						len -= sizeof(uint32_t);			chunkoffset = sizeof(uint32_t);			bool done = false;			while (!done)			{				if (len < 1) // at least a zero byte (end of item list) should be there					return;								RTCPSDESHeader *sdeshdr = (RTCPSDESHeader *)(chunk+chunkoffset);				if (sdeshdr->sdesid == 0) // end of item list				{					len--;					chunkoffset++;					size_t r = (chunkoffset&0x03);					if (r != 0)					{						size_t addoffset = 4-r;											if (addoffset > len)							return;						len -= addoffset;						chunkoffset += addoffset;					}					done = true;				}				else				{					if (len < sizeof(RTCPSDESHeader))						return;										len -= sizeof(RTCPSDESHeader);					chunkoffset += sizeof(RTCPSDESHeader);										size_t itemlen = (size_t)(sdeshdr->length);					if (itemlen > len)						return;										len -= itemlen;					chunkoffset += itemlen;				}					}						ssrccount--;			chunk += chunkoffset;		}		// check for remaining bytes		if (len > 0)			return;		if (ssrccount > 0)			return;	}	knownformat = true;}#ifdef RTPDEBUGvoid RTCPSDESPacket::Dump(){	RTCPPacket::Dump();	if (!IsKnownFormat())	{		std::cout << "    Unknown format" << std::endl;		return;	}	if (!GotoFirstChunk())	{		std::cout << "    No chunks present" << std::endl;		return;	}		do	{		std::cout << "    SDES Chunk for SSRC:    " << GetChunkSSRC() << std::endl;		if (!GotoFirstItem())			std::cout << "        No items found" << std::endl; 		else		{			do			{				std::cout << "        ";				switch (GetItemType())				{				case None:					std::cout << "None    ";					break;				case CNAME:					std::cout << "CNAME   ";					break;				case NAME:					std::cout << "NAME    ";					break;				case EMAIL:					std::cout << "EMAIL   ";					break;				case PHONE:					std::cout << "PHONE   ";					break;				case LOC:					std::cout << "LOC     ";					break;				case TOOL:					std::cout << "TOOL    ";					break;				case NOTE:					std::cout << "NOTE    ";					break;				case PRIV:					std::cout << "PRIV    ";					break;				case Unknown:				default:					std::cout << "Unknown ";				}								std::cout << "Length: " << GetItemLength() << std::endl;				if (GetItemType() != PRIV)				{					char str[1024];					memcpy(str,GetItemData(),GetItemLength());					str[GetItemLength()] = 0;					std::cout << "                Value:  " << str << std::endl;				}#ifdef RTP_SUPPORT_SDESPRIV				else // PRIV item				{					char str[1024];					memcpy(str,GetPRIVPrefixData(),GetPRIVPrefixLength());					str[GetPRIVPrefixLength()] = 0;					std::cout << "                Prefix: " << str << std::endl;					std::cout << "                Length: " << GetPRIVPrefixLength() << std::endl;					memcpy(str,GetPRIVValueData(),GetPRIVValueLength());					str[GetPRIVValueLength()] = 0;					std::cout << "                Value:  " << str << std::endl;					std::cout << "                Length: " << GetPRIVValueLength() << std::endl;				}#endif // RTP_SUPPORT_SDESPRIV			} while (GotoNextItem());		}	} while (GotoNextChunk());}#endif // RTPDEBUG

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性猛交一区二区三区精品| 丝袜美腿亚洲一区二区图片| 免费观看在线色综合| thepron国产精品| 欧美一级艳片视频免费观看| 久久久国产精品不卡| 日韩成人免费看| 在线观看视频一区二区 | 日韩精品中文字幕一区二区三区| 国产精品的网站| 国产成人精品免费| 欧美一区二区三区性视频| 国产精品午夜电影| 紧缚奴在线一区二区三区| 欧美精品v国产精品v日韩精品| 国产精品伦理在线| 国产一区999| 久久久久成人黄色影片| 美女在线视频一区| 91精品国产综合久久久久久久 | 日本一区二区视频在线| 国产乱人伦偷精品视频不卡| 久久免费视频一区| 国产成a人无v码亚洲福利| 91色视频在线| 亚洲一区二区三区四区的| 在线观看欧美日本| 日韩不卡手机在线v区| 日本福利一区二区| 亚洲成人精品影院| 欧美一区二区三区婷婷月色| 理论片日本一区| 久久精品一区二区三区四区| 国产麻豆日韩欧美久久| 国产欧美一区二区三区在线老狼| 国产福利一区二区| 亚洲免费三区一区二区| 777a∨成人精品桃花网| 黄色资源网久久资源365| 欧美国产日本视频| 在线观看亚洲专区| 麻豆精品在线视频| 亚洲视频在线一区二区| 日韩欧美成人午夜| 色综合中文字幕| 国内精品国产成人| 亚洲午夜一区二区三区| 久久久久久久久久久久久女国产乱| 99久久精品一区| 91亚洲精品久久久蜜桃网站| 国产精品美女久久福利网站| 激情深爱一区二区| 亚洲欧美在线视频| 2024国产精品视频| 日韩一区二区三区观看| 中文字幕一区二区5566日韩| 日韩一区二区电影网| 成人少妇影院yyyy| 精品中文字幕一区二区| 亚洲一区二区在线视频| 国产亚洲综合性久久久影院| 91麻豆精品久久久久蜜臀| 欧洲日韩一区二区三区| 91在线免费视频观看| www.欧美亚洲| 91在线免费看| 91麻豆国产在线观看| 99久久er热在这里只有精品15| 另类专区欧美蜜桃臀第一页| 日日夜夜一区二区| 国产精选一区二区三区| 午夜精品一区二区三区免费视频 | 国产99久久久国产精品免费看| 中文字幕亚洲欧美在线不卡| 91毛片在线观看| 亚洲小说欧美激情另类| 国产精品毛片a∨一区二区三区 | 国产成人精品1024| 国产一区二区在线免费观看| 国产原创一区二区三区| 丁香婷婷综合五月| av电影在线不卡| 91社区在线播放| 成人性生交大片| 欧美色区777第一页| 一本色道亚洲精品aⅴ| 欧美日韩一级片网站| 日韩午夜在线播放| 亚洲国产精品激情在线观看| 国产精品白丝在线| 一片黄亚洲嫩模| 亚洲成人免费影院| 久久99精品国产.久久久久久| 蜜芽一区二区三区| 国产一区二区三区电影在线观看| 成人福利视频网站| 欧美三级电影一区| 久久久国产精华| 亚洲午夜久久久久久久久久久| 亚洲国产一区二区三区| 激情亚洲综合在线| 色999日韩国产欧美一区二区| 欧美亚洲免费在线一区| 欧美不卡一区二区三区| 国产精品免费观看视频| 亚洲第一激情av| 丰满岳乱妇一区二区三区| 欧美精三区欧美精三区| 国产精品久久久久久久久久免费看| 一区二区三区国产精华| 国产盗摄一区二区三区| 色综合久久中文字幕| 久久这里只有精品6| 亚洲一区二区三区中文字幕在线 | 中文字幕一区二区三区乱码在线| 五月婷婷综合在线| 99免费精品视频| 久久亚区不卡日本| 人人狠狠综合久久亚洲| 在线观看精品一区| 亚洲日本va午夜在线影院| 国产在线精品一区二区不卡了| 在线综合亚洲欧美在线视频| 国产精品女人毛片| 国产麻豆精品在线观看| 欧美一卡在线观看| 亚洲国产精品视频| 在线亚洲免费视频| 亚洲三级在线观看| 欧美亚洲国产一区二区三区va| 亚洲欧洲韩国日本视频| 99久久综合精品| 亚洲视频1区2区| 日本久久一区二区| 亚洲伊人伊色伊影伊综合网| 色老综合老女人久久久| 亚洲免费观看高清完整版在线观看 | 国产乱子伦视频一区二区三区 | 成人午夜精品在线| 国产精品网站在线| 色综合久久中文综合久久牛| 亚洲综合999| 欧美一区二区精品在线| 卡一卡二国产精品| 日韩情涩欧美日韩视频| 奇米精品一区二区三区在线观看 | 精品国产一区二区三区av性色 | 99热99精品| 成人毛片在线观看| 亚洲少妇中出一区| 成av人片一区二区| 亚洲视频小说图片| 欧美日韩在线直播| 国产在线精品不卡| 亚洲欧洲韩国日本视频| 欧美在线你懂的| 精品亚洲欧美一区| 亚洲最色的网站| www激情久久| 成人av中文字幕| 天天免费综合色| 久久久久国色av免费看影院| 色综合久久综合| 91精品国产91综合久久蜜臀| 国产福利精品一区| 性感美女久久精品| 国产欧美一二三区| 日韩免费视频一区| 91蜜桃视频在线| 青青草原综合久久大伊人精品 | 国产精品三级av| 在线综合视频播放| 色av成人天堂桃色av| 99这里只有精品| 国产+成+人+亚洲欧洲自线| 天堂蜜桃一区二区三区| 亚洲少妇最新在线视频| 精品久久久久99| 欧美日本韩国一区二区三区视频 | 色综合色狠狠天天综合色| 黑人精品欧美一区二区蜜桃| 裸体一区二区三区| 午夜精品久久久久久久久久久| 亚洲欧洲综合另类在线| 中文字幕免费不卡| 日韩午夜电影av| 欧美日韩国产乱码电影| 欧美中文字幕不卡| 色综合天天综合网国产成人综合天| 成人黄色综合网站| 国产在线精品免费| 国产在线观看一区二区| 狠狠色丁香九九婷婷综合五月| 美女视频一区二区| 久久国产精品一区二区| 国产制服丝袜一区| 成人教育av在线| 99国产精品久久久久久久久久久| 91美女福利视频| 国产精品久久久久久久裸模|