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

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

?? h323caps.cxx

?? mgcp協(xié)議源代碼。支持多種編碼:g711
?? CXX
?? 第 1 頁 / 共 3 頁
字號:
/* * h323caps.cxx * * H.323 protocol handler * * Open H323 Library * * Copyright (c) 1998-2000 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Open H323 Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Portions of this code were written with the assisance of funding from * Vovida Networks, Inc. http://www.vovida.com. * * Contributor(s): ______________________________________. * * $Log: h323caps.cxx,v $ * Revision 1.15  2000/07/13 12:30:46  robertj * Fixed problems with fast start frames per packet adjustment. * * Revision 1.14  2000/07/12 10:25:37  robertj * Renamed all codecs so obvious whether software or hardware. * * Revision 1.13  2000/07/10 16:03:02  robertj * Started fixing capability set merging, still more to do. * * Revision 1.12  2000/07/04 01:16:49  robertj * Added check for capability allowed in "combinations" set, still needs more done yet. * * Revision 1.11  2000/07/02 14:08:43  craigs * Fixed problem with removing capabilities based on wildcard * * Revision 1.10  2000/06/03 03:16:39  robertj * Fixed using the wrong capability table (should be connections) for some operations. * * Revision 1.9  2000/05/30 06:53:48  robertj * Fixed bug where capability numbers in duplicate table are not identical (should be!). * * Revision 1.8  2000/05/23 11:32:37  robertj * Rewrite of capability table to combine 2 structures into one and move functionality into that class *    allowing some normalisation of usage across several applications. * Changed H323Connection so gets a copy of capabilities instead of using endponts, allows adjustments *    to be done depending on the remote client application. * * Revision 1.7  2000/05/10 04:05:34  robertj * Changed capabilities so has a function to get name of codec, instead of relying on PrintOn. * * Revision 1.6  2000/05/02 04:32:26  robertj * Fixed copyright notice comment. * * Revision 1.5  2000/04/05 19:01:12  robertj * Added function so can change desired transmit packet size. * * Revision 1.4  2000/03/22 01:29:43  robertj * Fixed default "frame" size for audio codecs, caused crash using G.711 * * Revision 1.3  2000/03/21 03:06:50  robertj * Changes to make RTP TX of exact numbers of frames in some codecs. * * Revision 1.2  2000/02/16 03:24:27  robertj * Fixed bug in clamping maximum transmit packet size in G.711 capabilities. * * Revision 1.1  1999/12/23 23:02:36  robertj * File reorganision for separating RTP from H.323 and creation of LID for VPB support. * */#include <ptlib.h>#include "h323caps.h"#include "h323.h"#include "h225.h"#include "h245.h"#define new PNEW/////////////////////////////////////////////////////////////////////////////H323Capability::H323Capability(){  assignedCapabilityNumber = 0; // Unassigned}PObject::Comparison H323Capability::Compare(const PObject & obj) const{  PAssert(obj.IsDescendant(H323Capability::Class()), PInvalidCast);  const H323Capability & other = (const H323Capability &)obj;  int mt = GetMainType();  int omt = other.GetMainType();  if (mt < omt)    return LessThan;  if (mt > omt)    return GreaterThan;  int st = GetSubType();  int ost = other.GetSubType();  if (st < ost)    return LessThan;  if (st > ost)    return GreaterThan;  return EqualTo;}void H323Capability::PrintOn(ostream & strm) const{  strm << GetFormatName();  if (assignedCapabilityNumber != 0)    strm << " <" << assignedCapabilityNumber << '>';}unsigned H323Capability::GetDefaultSessionID() const{  return 0;}void H323Capability::SetTxFramesInPacket(unsigned /*frames*/){}unsigned H323Capability::GetTxFramesInPacket() const{  return 1;}unsigned H323Capability::GetRxFramesInPacket() const{  return 1;}unsigned H323Capability::GetMaxFrameSize() const{  return 1;}#if PTRACINGconst char * const H323Capability::MainTypesNames[] = {  "Audio", "Video", "Data", "UserInput"};#endif/////////////////////////////////////////////////////////////////////////////H323Channel * H323RealTimeCapability::CreateChannel(H323Connection & connection,                                                    H323Channel::Directions dir,                                                    unsigned sessionID,                                 const H245_H2250LogicalChannelParameters * param) const{  RTP_Session * session;  if (param != NULL)    session = connection.UseSession(param->m_sessionID, param->m_mediaControlChannel);  else {    // Make a fake transmprt address from the connection so gets initialised with    // the transport type (IP, IPX, multicast etc).    H245_TransportAddress addr;    connection.GetControlChannel().SetUpTransportPDU(addr, 0);    session = connection.UseSession(sessionID, addr);  }  if (session == NULL)    return NULL;  return new H323_RTPChannel(connection, *this, dir, *session);}/////////////////////////////////////////////////////////////////////////////H323NonStandardCapabilityInfo::H323NonStandardCapabilityInfo(H323EndPoint & endpoint,                                                             const BYTE * dataPtr,                                                             PINDEX dataSize)  : fixedData(dataPtr, dataSize){  H225_H221NonStandard h221;  endpoint.SetH221NonStandardInfo(h221);  t35CountryCode = (BYTE)(unsigned)h221.m_t35CountryCode;  t35Extension = (BYTE)(unsigned)h221.m_t35Extension;  manufacturerCode = (WORD)(unsigned)h221.m_manufacturerCode;}H323NonStandardCapabilityInfo::H323NonStandardCapabilityInfo(const PString & _oid,                                                             const BYTE * dataPtr,                                                             PINDEX dataSize)  : oid(_oid),    fixedData(dataPtr, dataSize){}H323NonStandardCapabilityInfo::H323NonStandardCapabilityInfo(BYTE country,                                                             BYTE extension,                                                             WORD maufacturer,                                                             const BYTE * dataPtr,                                                             PINDEX dataSize)  : t35CountryCode(country),    t35Extension(extension),    manufacturerCode(maufacturer),    fixedData(dataPtr, dataSize){}H323NonStandardCapabilityInfo::~H323NonStandardCapabilityInfo(){}BOOL H323NonStandardCapabilityInfo::OnSendingPDU(PBYTEArray & data) const{  data = fixedData;  return data.GetSize() > 0;}BOOL H323NonStandardCapabilityInfo::OnReceivedPDU(const PBYTEArray & data){  return data == fixedData;}BOOL H323NonStandardCapabilityInfo::OnSendingNonStandardPDU(PASN_Choice & pdu,                                                            unsigned nonStandardTag) const{  PBYTEArray data;  if (!OnSendingPDU(data))    return FALSE;  pdu.SetTag(nonStandardTag);  H245_NonStandardParameter & param = (H245_NonStandardParameter &)pdu.GetObject();  if (!oid) {    param.m_nonStandardIdentifier.SetTag(H245_NonStandardIdentifier::e_object);    ((PASN_ObjectId &)param) = oid;  }  else {    param.m_nonStandardIdentifier.SetTag(H245_NonStandardIdentifier::e_h221NonStandard);    H245_NonStandardIdentifier_h221NonStandard & h221 = param.m_nonStandardIdentifier;    h221.m_t35CountryCode = (unsigned)t35CountryCode;    h221.m_t35Extension = (unsigned)t35Extension;    h221.m_manufacturerCode = (unsigned)manufacturerCode;  }  param.m_data = data;  return data.GetSize() > 0;}BOOL H323NonStandardCapabilityInfo::OnReceivedNonStandardPDU(const PASN_Choice & pdu,                                                             unsigned nonStandardTag){  if (pdu.GetTag() != nonStandardTag)    return FALSE;  const H245_NonStandardParameter & param = (const H245_NonStandardParameter &)pdu.GetObject();  if (!oid) {    if (param.m_nonStandardIdentifier.GetTag() != H245_NonStandardIdentifier::e_object)      return FALSE;    if (((PASN_ObjectId &)param) != oid)      return FALSE;  }  else {    if (param.m_nonStandardIdentifier.GetTag() != H245_NonStandardIdentifier::e_h221NonStandard)      return FALSE;    const H245_NonStandardIdentifier_h221NonStandard & h221 = param.m_nonStandardIdentifier;    if (h221.m_t35CountryCode != (unsigned)t35CountryCode)      return FALSE;    if (h221.m_t35Extension != (unsigned)t35Extension)      return FALSE;    if (h221.m_manufacturerCode != (unsigned)manufacturerCode)      return FALSE;  }  return OnReceivedPDU(param.m_data);}/////////////////////////////////////////////////////////////////////////////H323AudioCapability::H323AudioCapability(unsigned rx, unsigned tx){  rxFramesInPacket = rx;  txFramesInPacket = tx;  maxFrameSize = 8;}H323Capability::MainTypes H323AudioCapability::GetMainType() const{  return e_Audio;}unsigned H323AudioCapability::GetDefaultSessionID() const{  return RTP_Session::DefaultAudioSessionID;}void H323AudioCapability::SetTxFramesInPacket(unsigned frames){  PAssert(frames > 0, PInvalidParameter);  txFramesInPacket = frames;}unsigned H323AudioCapability::GetTxFramesInPacket() const{  return txFramesInPacket;}unsigned H323AudioCapability::GetRxFramesInPacket() const{  return rxFramesInPacket;}unsigned H323AudioCapability::GetMaxFrameSize() const{  return maxFrameSize;}BOOL H323AudioCapability::OnSendingPDU(H245_Capability & cap) const{  cap.SetTag(H245_Capability::e_receiveAudioCapability);  return OnSendingPDU((H245_AudioCapability &)cap, rxFramesInPacket);}BOOL H323AudioCapability::OnSendingPDU(H245_DataType & dataType) const{  dataType.SetTag(H245_DataType::e_audioData);  return OnSendingPDU((H245_AudioCapability &)dataType, txFramesInPacket);}BOOL H323AudioCapability::OnReceivedPDU(const H245_Capability & cap){  if (cap.GetTag() != H245_Capability::e_receiveAudioCapability &&    cap.GetTag() != H245_Capability::e_receiveAndTransmitAudioCapability)    return FALSE;  unsigned packetSize;  if (!OnReceivedPDU((const H245_AudioCapability &)cap, packetSize))    return FALSE;  // Clamp our transmit size to maximum allowed  if (txFramesInPacket > packetSize)    txFramesInPacket = packetSize;  return TRUE;}BOOL H323AudioCapability::OnReceivedPDU(const H245_DataType & dataType, BOOL receiver){  if (dataType.GetTag() != H245_DataType::e_audioData)    return FALSE;  return OnReceivedPDU((const H245_AudioCapability &)dataType, receiver ? rxFramesInPacket : txFramesInPacket);}/////////////////////////////////////////////////////////////////////////////H323NonStandardAudioCapability::H323NonStandardAudioCapability(unsigned max,                                                               unsigned desired,                                                               H323EndPoint & endpoint,                                                               const BYTE * fixedData,                                                               PINDEX dataSize)  : H323AudioCapability(max, desired),    H323NonStandardCapabilityInfo(endpoint, fixedData, dataSize){}H323NonStandardAudioCapability::H323NonStandardAudioCapability(unsigned max,                                                               unsigned desired,                                                               const PString & oid,                                                               const BYTE * fixedData,                                                               PINDEX dataSize)  : H323AudioCapability(max, desired),    H323NonStandardCapabilityInfo(oid, fixedData, dataSize){}H323NonStandardAudioCapability::H323NonStandardAudioCapability(unsigned max,                                                               unsigned desired,                                                               BYTE country,                                                               BYTE extension,                                                               WORD maufacturer,                                                               const BYTE * fixedData,                                                               PINDEX dataSize)  : H323AudioCapability(max, desired),    H323NonStandardCapabilityInfo(country, extension, maufacturer, fixedData, dataSize){}unsigned H323NonStandardAudioCapability::GetSubType() const{  return H245_AudioCapability::e_nonStandard;}BOOL H323NonStandardAudioCapability::OnSendingPDU(H245_AudioCapability & pdu,                                                  unsigned) const{  return OnSendingNonStandardPDU(pdu, H245_AudioCapability::e_nonStandard);}BOOL H323NonStandardAudioCapability::OnReceivedPDU(const H245_AudioCapability & pdu,                                                   unsigned &){  return OnReceivedNonStandardPDU(pdu, H245_AudioCapability::e_nonStandard);}/////////////////////////////////////////////////////////////////////////////H323Capability::MainTypes H323VideoCapability::GetMainType() const{  return e_Video;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av电影免费观看| 久久精品国产精品亚洲综合| 一本大道av一区二区在线播放| 日韩av电影天堂| 欧美日本国产视频| 热久久久久久久| 久久综合久久综合久久| 风间由美中文字幕在线看视频国产欧美| 久久久噜噜噜久久人人看| 成人激情免费网站| 亚洲一区二区三区在线播放| 日韩欧美国产系列| 成人激情免费视频| 亚洲18色成人| 久久久久国产精品人| 91麻豆国产福利在线观看| 亚洲国产日韩a在线播放| 欧美一卡二卡三卡| 成人高清视频在线观看| 亚洲成人av免费| 久久精品一区二区三区不卡 | 亚洲国产欧美日韩另类综合 | 国产亚洲精品超碰| 91麻豆免费视频| 美女爽到高潮91| 中文字幕视频一区| 欧美精品三级在线观看| 成人在线一区二区三区| 午夜影院在线观看欧美| 中文字幕精品一区| 欧美男女性生活在线直播观看| 国产成人av资源| 亚洲bt欧美bt精品| 国产精品区一区二区三区 | 日韩丝袜美女视频| 91一区在线观看| 九九九精品视频| 亚洲成人先锋电影| 国产精品久久777777| 宅男噜噜噜66一区二区66| 91在线播放网址| 国产在线乱码一区二区三区| 亚洲午夜一区二区三区| 国产色91在线| 日韩一卡二卡三卡国产欧美| 欧美亚洲一区三区| a在线播放不卡| 国产一区二区三区观看| 日本美女视频一区二区| 亚洲尤物在线视频观看| 欧美国产精品v| 精品三级av在线| 欧美精品久久一区| 日本丶国产丶欧美色综合| 丁香一区二区三区| 韩国中文字幕2020精品| 免费在线看一区| 午夜精品福利一区二区三区av| 亚洲色图都市小说| 国产欧美一区二区精品仙草咪| 日韩免费在线观看| 在线成人免费视频| 欧美精品在线视频| 欧美日韩专区在线| 欧美亚洲一区三区| 欧美三级韩国三级日本三斤| 色噜噜狠狠色综合欧洲selulu| 成人国产在线观看| 成人av在线观| 波多野结衣亚洲| aaa亚洲精品| 色欧美88888久久久久久影院| 成人免费福利片| 99在线精品免费| 91丨九色丨黑人外教| 99国产麻豆精品| 色婷婷亚洲精品| 一本到不卡精品视频在线观看| av影院午夜一区| 色综合中文字幕国产| 国产白丝网站精品污在线入口| 国产美女精品一区二区三区| 国内精品伊人久久久久av影院| 国产一区二区不卡在线| 国产精品一区二区三区99| 国产福利电影一区二区三区| 国产成人av影院| 99久久久精品| 欧美日韩国产精选| 91麻豆精品91久久久久同性| 精品国产精品一区二区夜夜嗨| 久久一留热品黄| 中文字幕亚洲欧美在线不卡| 亚洲人一二三区| 亚洲国产成人av好男人在线观看| 午夜精品免费在线观看| 久久99精品一区二区三区三区| 国产福利一区在线| 色先锋aa成人| 3atv一区二区三区| 久久久久久久综合狠狠综合| 亚洲欧美在线高清| 天涯成人国产亚洲精品一区av| 美国av一区二区| 国产精品99久久久久久似苏梦涵| av欧美精品.com| 欧美一区二区啪啪| 久久久久久久一区| 玉米视频成人免费看| 捆绑紧缚一区二区三区视频| 成人黄色电影在线| 欧美一级在线视频| 国产精品第13页| 日本女优在线视频一区二区| 成人爱爱电影网址| 欧美一区日本一区韩国一区| 国产精品婷婷午夜在线观看| 日韩成人精品在线| 99精品视频中文字幕| 日韩一区二区在线播放| 中文字幕中文字幕在线一区| 首页国产欧美日韩丝袜| 国产不卡高清在线观看视频| 在线电影欧美成精品| 1024成人网| 国产精品亚洲а∨天堂免在线| 在线观看免费亚洲| 国产精品美女久久久久高潮| 日本中文在线一区| 91视频精品在这里| 国产亚洲一本大道中文在线| 亚洲成人手机在线| 99re这里只有精品视频首页| 精品国产乱码91久久久久久网站| 亚洲国产一区视频| 99国内精品久久| 久久综合九色综合欧美98| 亚洲自拍偷拍欧美| 成人黄色片在线观看| 2019国产精品| 久久黄色级2电影| 欧美午夜片在线观看| 国产精品乱码久久久久久| 国产毛片精品国产一区二区三区| 欧美日韩和欧美的一区二区| 亚洲免费观看高清完整版在线 | 日韩久久免费av| 亚洲第一在线综合网站| 一本到一区二区三区| 国产精品第一页第二页第三页| 国产乱人伦精品一区二区在线观看| 欧美日韩国产精品成人| 亚洲国产中文字幕在线视频综合| 91尤物视频在线观看| 综合色中文字幕| 不卡的电影网站| 国产精品色哟哟网站| 成人av在线资源网| 中文av一区特黄| 国产91在线|亚洲| 国产精品情趣视频| 成人精品鲁一区一区二区| 久久久精品影视| 国产v综合v亚洲欧| 国产精品三级av| jlzzjlzz亚洲女人18| 亚洲日本一区二区| 色婷婷综合久久久久中文| 亚洲综合色噜噜狠狠| 欧美日韩精品系列| 日本欧美加勒比视频| 日韩精品中文字幕一区| 国产呦萝稀缺另类资源| 久久综合99re88久久爱| 国产精品影音先锋| 国产人伦精品一区二区| 成人深夜福利app| 国产精品第一页第二页第三页| 不卡影院免费观看| 一区二区成人在线视频| 欧美日韩一级大片网址| 五月天激情综合| 欧美sm美女调教| 高清久久久久久| 亚洲最大成人综合| 51精品秘密在线观看| 美国av一区二区| 国产精品美女视频| 色婷婷国产精品| 日韩av高清在线观看| 国产日韩欧美精品在线| 色偷偷一区二区三区| 日韩精品一二区| 国产日韩三级在线| 色香蕉成人二区免费| 日韩高清一级片| 国产亚洲精品资源在线26u| 91亚洲精品久久久蜜桃| 三级不卡在线观看| 久久网站热最新地址|