⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resource.c

📁 h.248源代码
💻 C
字号:
/******************************************************************** * * File:	resource.c * * Description: *	Resource reservation * * Copyright 2000-2003, Netergy Microelectronics.  All rights reserved. * ********************************************************************/#include "h248app.h" WORD g_wMaxAvailableResources;WORD GetAvailableResources(){  CONNECTION *pConn;  WORD wReservedResources = 0;  DLLIST_head(pdllConn);  while ((pConn = DLLIST_read(pdllConn))) {    wReservedResources += pConn->ReservedCapRx + pConn->ReservedCapTx;    DLLIST_next(pdllConn);  }  return (g_wMaxAvailableResources - wReservedResources);}WORD GetWeight(PROTOCOL_MEDIA_CAP *pCap){  if(pCap->eTxRx == PROTOCOL_TXRX_TX) {    switch(pCap->oPayload){    case PROTOCOL_RTPPAYLOAD_PCMA:    case PROTOCOL_RTPPAYLOAD_PCMU:       return G711_ENCODER_WEIGHT;      break;    case PROTOCOL_RTPPAYLOAD_G729:    case PROTOCOL_RTPPAYLOAD_G723:     case PROTOCOL_RTPPAYLOAD_G726:        return COMPLEX_ENCODER_WEIGHT;      break;    }  }  else {    switch(pCap->oPayload){    case PROTOCOL_RTPPAYLOAD_PCMA:    case PROTOCOL_RTPPAYLOAD_PCMU:       return G711_DECODER_WEIGHT;      break;    case PROTOCOL_RTPPAYLOAD_G729:    case PROTOCOL_RTPPAYLOAD_G723:    case PROTOCOL_RTPPAYLOAD_G726:         return COMPLEX_DECODER_WEIGHT;      break;    }  }  /* If we do not recognize this payload we return MAX_AVAILABLE_RESOURCES*/  return g_wMaxAvailableResources;}BOOL ReservResource(CONNECTION *pCon,                    PROTOCOL_MEDIA_CAP *pCap,                    E_RESERV_TYPE eReservType){  WORD wAvailableResources;  WORD *pReservedWeight = &(pCon->ReservedCapRx);  WORD wWeight;  wAvailableResources = GetAvailableResources();  wWeight = GetWeight(pCap);   if(pCap->eTxRx == PROTOCOL_TXRX_TX)    pReservedWeight = &(pCon->ReservedCapTx);   if( wAvailableResources >= wWeight - *pReservedWeight){    if(eReservType == RESERV_TYPE_EQUAL ||       (eReservType == RESERV_TYPE_MIN && *pReservedWeight > wWeight) ||       (eReservType == RESERV_TYPE_MAX && *pReservedWeight < wWeight)||       *pReservedWeight == 0)      *pReservedWeight = wWeight;    return TRUE;  }  return FALSE;}BOOL MediaCapSupported(OCTET oPayload){  PROTOCOL_CAP xCap;  xCap.eMedia = PROTOCOL_MEDIA_AUDIO;  xCap.xCmn.oPayload = oPayload;  if(MediaStreamSystemCapEnabled(&xCap))    return TRUE;  return FALSE;   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -