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

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

?? jb.x

?? 基于h323協(xié)議的軟phone
?? X
?? 第 1 頁 / 共 2 頁
字號:

/********************************************************************20**

     Name:    JitterBuffer

     Type:    C include file

     Desc:    Structures, variables and typedefs required by H.323
              control layer

     File:    jb.x

     Sid:     jb.x 1.0  -  01/19/2000

     Prg:     sdg

*********************************************************************21*/


#ifndef __JBX__
#define __JBX__

//#include <vector.h>

//#include "VMutex.h"


using namespace std;

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include <semLib.h>

/* include all the module specific files */

/* typedefs */

/* forward type declarations */


/***********************************************************************
                 Gen Config Structure
 ***********************************************************************/

typedef struct jbGenCfg
{
    Bool    cfgDone;            /* Flag to say if GenCfg is done */
    S16     maxConnections;     /* Max number of active conn */
    S16     maxSize;            /* Max size of buffer in packets
                                    (must be a power of 2) */
} JbGenCfg;


/***********************************************************************
                 Buffer Config Structure
 ***********************************************************************/

typedef struct jbJitterCfg
{
    /* slm: changed maxLatency to 16 bit to be consistent */
    U16     maxLatency;         /* Maximum level the Jitter Buffer
                                    is allowed to fill in packets */
    U16     maxHoldTime;        /* Maximum number of playAttempts to wait
                                    before releasing a packet, represented
                                    as a percentage of the HWM */
    U8      minSize;            /* Minimum size of the Buffer in packets */
    U8      minStableTime;      /* Minimum time the jitter needs to be less
                                    than the HWM before the HWM is reduced */
    U16     incAmount;          /* Used to increase the HWM */
    U16     decAmount;          /* Used to decrease the HWM */
//    TmrCfg  longSilenceTimer;   /* Used to determine the cause of an underflow */
    U16     longSilenceTimer;
} JbJitterCfg;


/***********************************************************************
                 Buffer Structure
 ***********************************************************************/

typedef struct jBuf
{
    U32     seqNum;             /* sequence number of packet. */
    U32     len;                /* slm: length of data in buffer.
                                    This equals 0 if empty */
    Ticks   timeStamp;          /* timestamp of packet */
    Data    *buffer;            /* pointer to data buffer */
} JBuf;


/***********************************************************************
                 Jitter Structure
 ***********************************************************************/

typedef struct jitter
{
    U8      p;                  /* play index in buffer */
    U8      q;                  /* put index in buffer */
    U8      maxJitter;          /* max jitter in currentStableTime */
    U8      currentStableTime;  /* time jitter has been less than hwm */
    U8      playAttempts;       /* number playAttempts in ActiveHold state */
    U8      receivePacketCount; /* number of received packets in a row */
    U8      playPacketCount;    /* number of played packet in a row */
    U8      gotFirst;           /* got first pkt */
    U8      bufferDrop;         /* slm: MR4213 flag to indicate dropping buffer */
    U8      bufferCreep;        /* slm: MR4213 counter to watch for buffer creep */
    U16     lastSeqNum;         /* last seq# received */
    U16     maxLatency;         /* max latency in packets */
    U16     dropWait;           /* slm: MR4213 wait count for stable packets before drop */
    U16     maxAlSduFrames;     /* slm: MR4213 max frames */
    Ticks   curTimestamp;       /* slm: MR4213 current timestamp */
    JBuf    *jBuf;              /* pointer to the jitter buffer */
    JbState state;              /* jitter state */
} Jitter;


/***********************************************************************
                 Connection stats
 ***********************************************************************/

typedef struct jbConnSts
{
    S32         packetsTx;          /* Transmitted packets to RTP */
    S32         packetsRx;          /* Received packets from DSP */
    S32         packetsLate;        /* This gets incremented when there
                                        isn't room to put a packet before
                                        the q pointer */
    S32         packetsDropped;     /* Total number of packets dropped */
    S32         packetsLost;        /* This gets incremented when the buffer
                                        tries to play an empty packet */
    S32         packetsRedundant;   /* This gets incremented when the
                                        buffer attempts to insert a packet
                                        in a non-empty slot in the buffer */
    S32         breaks;             /* Total number of speech breaks */
    S32         numPackets;         /* Current level of jitter buffer */
    S32         jitterBufferSize;   /* Current High Water Mark */
    S32         currentJitter;
} JbConnSts;


/***********************************************************************
                 Connection key
 ***********************************************************************/

typedef struct jbConnKey
{
    S32         sessionId;          /* ID of current session */
//    SpId        spId;               /* Service provider ID of session */
    CoderInfo   txCodec;            /* Tx Codec type */
    CoderInfo   rxCodec;            /* Rx Codec type */
    S16         lineNo;             /* slm: MR8849 add line number */
} JbConnKey;


/***********************************************************************
                 Jitter Buffer Stats
 ***********************************************************************/

typedef struct jbCbSts
{
    S32         totalConnections;  /* Total connections since init */
    S32         activeConnections; /* Current number of connections */
} JbCbSts;


/***********************************************************************
                 Connection control block
 ***********************************************************************/

typedef struct jbConnCb
{
//   CmHashListEnt    conn;
   U8               connIndex;      /* Index into jbCb connection list */
   JbConnKey        key;            /* Hash list key */
   JbConnSts        sts;            /* Connection stats */
   Jitter           jitter;         /* Buffer Structure */
} JbConnCb;


/***********************************************************************
                 Management Structure
 ***********************************************************************/
typedef struct jbCfg
{
    ConfigType type;                /* type of config request */
    union
    {
        JbGenCfg    genCfg;         /* General Config Structure */
        JbJitterCfg jitterCfg;      /* Buffer Config Structure */
    } c;
} JbCfg;

typedef struct jbSts
{
    StatsType type;                 /* type of stats requested */
    Bool      clearConnSts;         /* Flag to clear conn stats */
    union
    {
        JbCbSts     jbCbSts;        /* Control Block Stats */
        JbConnSts   jbConnSts;      /* Connection Stats */
    } s;
} JbSts;

/***********************************************************************
                       JitterBuffer Global Control Block
 ***********************************************************************/

typedef struct jbCb
{
//   CmHashListCp connHlCp;           /* Hash list containing all active connections */
//   TskInit      jbInit;             /* Init Structure for jb */
   vector<JbConnCb> connHlCp;
   JbGenCfg     genCfg;             /* General config structure */
   JbJitterCfg  jitCfg;             /* Buffer config structure */
   JbCbSts      sts;                /* Jitter Buffer System Stats */
//   JbConnKey    **conn;             /* List of Connection Keys */
//   CmTqCp       jbTqCp;             /* Jitter Buffer Timing Queue Control Point */
//   CmTqType     jbTq[JB_TQSIZE];    /* Jitter Buffer Timing Queue */
//   CmTimer      *jbTimers;          /* Jitter Buffer Timers */
   vector<JbConnKey*> conn;
   vector<int>              jbTimers;
   /* slm: MR8849 now use array of activeConn for multiple lines */
   U8           activeConn[JB_MAX_LINENUMS];    /* Index of Active call in Conn Key List */
   S16          timerRes;
//   VMutex       sem;
	SEM_ID  sem;
   /* slm: MR8849 now use array of dspSem for multiple lines */
//   VMutex       dspSem[JB_MAX_LINENUMS];        /* slm: MR4386 need to protect accesses
//                                        to DSP from multiple writes */
	SEM_ID	dspSem[JB_MAX_LINENUMS];

} JbCb;

/* slm: MR4213 - FIXME - jb structs MUST MATCH hi structs
**               in order for JbReadSocket() to work properly
**               Add JbTxSts struct to match HiTxSts struct
**               Change JbSap struct to match HiSap Struct
**               Change JbConCb struct to match HiConCb struct
**               Whenever hi struct changes - due to Trillium patches -
**               These structures must be updated to match
**               This is not an optimal solution, better way would be
**               to include the HI.X file */
/* Transmit statistics */
//typedef struct jbTxSts
//{
//   StsCntr     numCons;
//   StsCntr     numTxTcpMsg;
//   StsCntr     numTxUdpMsg;
//   StsCntr     numTxbytes;
//#ifdef HI_REL_1_3
//   StsCntr     numTxRawMsg;
//#endif /* HI_REL_1_3 */
//
//} JbTxSts;

/* SAP based on HiSap */
/* This struct MUST match HiSap structure */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二三区好的| 欧美日韩国产一级二级| 久久久三级国产网站| 亚洲成在人线在线播放| 69久久99精品久久久久婷婷| 日韩电影免费在线观看网站| 欧美一区二区三区喷汁尤物| 精品综合免费视频观看| 国产欧美在线观看一区| 色综合色狠狠综合色| 亚洲成人免费影院| 精品美女一区二区| 成人国产精品免费网站| 亚洲欧美福利一区二区| 9191成人精品久久| 国产高清精品网站| 亚洲精品中文在线影院| 欧美二区在线观看| 国产剧情一区二区三区| 一级中文字幕一区二区| 欧美大肚乱孕交hd孕妇| 不卡的电影网站| 亚洲地区一二三色| 国产欧美一区二区精品秋霞影院| 色婷婷精品大视频在线蜜桃视频 | 欧美挠脚心视频网站| 久久黄色级2电影| 国产精品欧美经典| 欧美一区二区国产| 成人一区二区在线观看| 婷婷中文字幕一区三区| 国产日韩欧美精品在线| 欧美性xxxxx极品少妇| 国产一区二三区| 亚洲五月六月丁香激情| 久久久久久夜精品精品免费| 欧美三区在线观看| 成人av在线资源| 蜜臀av国产精品久久久久| 中文字幕在线播放不卡一区| 欧美成人a视频| 欧美三级电影网站| www.色精品| 国内精品视频一区二区三区八戒| 一级日本不卡的影视| 国产欧美一区二区三区网站| 日韩一级高清毛片| 在线免费精品视频| av在线一区二区| 国产精品一二三四五| 蜜臀av一区二区| 亚洲成人激情av| 亚洲精品欧美综合四区| 国产精品区一区二区三| 久久综合九色综合久久久精品综合| 欧美少妇一区二区| 99久久精品国产麻豆演员表| 国产精品99久久久久久宅男| 麻豆精品在线观看| 蜜臀av一区二区| 日本欧美久久久久免费播放网| 亚洲午夜精品在线| 艳妇臀荡乳欲伦亚洲一区| 国产精品欧美久久久久一区二区 | 精品视频在线视频| 色欧美日韩亚洲| 91在线观看成人| 丁香网亚洲国际| 欧美一卡二卡三卡| 自拍偷自拍亚洲精品播放| 久久综合九色综合97婷婷| 欧美人与性动xxxx| 精品视频一区三区九区| 在线观看成人小视频| 色视频欧美一区二区三区| av福利精品导航| 91在线观看污| 99riav久久精品riav| 91在线无精精品入口| 99精品欧美一区二区三区综合在线| 国产91精品露脸国语对白| 国产高清不卡一区二区| 成人福利视频在线看| 99视频一区二区三区| 色欧美片视频在线观看| 欧美色图免费看| 欧美一区三区四区| 欧美成人aa大片| 欧美精彩视频一区二区三区| 欧美国产精品v| 亚洲欧美日韩一区二区 | 色系网站成人免费| 在线影院国内精品| 欧美日本乱大交xxxxx| 日韩午夜小视频| 久久久久久麻豆| 亚洲欧美影音先锋| 亚洲午夜精品在线| 看电视剧不卡顿的网站| 国产91精品精华液一区二区三区| 91小视频在线免费看| 欧美日韩精品欧美日韩精品一| 欧美狂野另类xxxxoooo| 久久免费美女视频| 亚洲天堂精品视频| 日韩影院免费视频| 国产成人免费视频网站 | 精品一区二区三区在线播放| 大白屁股一区二区视频| 日本韩国一区二区三区视频| 欧美一区欧美二区| 国产精品乱码一区二三区小蝌蚪| 夜夜嗨av一区二区三区四季av| 蜜臀av一级做a爰片久久| 白白色 亚洲乱淫| 宅男在线国产精品| 日韩精品一区二区三区在线| 欧美高清在线精品一区| 亚洲成人激情社区| www.亚洲人| 日韩欧美电影在线| 一区二区三区精品| 国内精品免费在线观看| 欧美性猛交xxxx乱大交退制版| 久久天堂av综合合色蜜桃网| 亚洲一区二区在线免费看| 国产一区二区在线看| 欧美日韩国产高清一区| 国产精品国产三级国产专播品爱网 | 欧美自拍偷拍午夜视频| 精品成人一区二区三区| 亚洲成a人片在线观看中文| 成人性生交大片| 日韩视频123| 亚洲精品一卡二卡| 国产成人欧美日韩在线电影| 欧美精品欧美精品系列| 亚洲色图.com| 国产成人免费在线| 欧美成人午夜电影| 视频一区在线播放| 色婷婷狠狠综合| 中文字幕一区二区不卡| 激情偷乱视频一区二区三区| 88在线观看91蜜桃国自产| 亚洲日本va在线观看| 床上的激情91.| 精品99一区二区| 日本中文字幕一区二区有限公司| 91麻豆精东视频| 国产精品久久久久久久久免费丝袜| 国产乱对白刺激视频不卡| 91精品国产一区二区三区| 一区二区三区日韩精品视频| 91欧美一区二区| 国产精品视频麻豆| 成人午夜视频福利| 久久综合五月天婷婷伊人| 日韩电影在线观看网站| 欧美猛男超大videosgay| 亚洲午夜影视影院在线观看| 色av一区二区| 亚洲综合成人网| 在线视频中文字幕一区二区| 亚洲精品久久7777| 在线看国产一区| 亚洲高清视频的网址| 91久久人澡人人添人人爽欧美 | 久久亚洲一区二区三区四区| 久久电影网电视剧免费观看| 日韩精品专区在线影院观看| 精品一区二区三区欧美| 欧美精品一区二区三区蜜桃视频| 久久精品噜噜噜成人av农村| 欧美大片顶级少妇| 国产在线精品一区二区三区不卡| 久久综合av免费| 国产成人精品aa毛片| 国产亚洲va综合人人澡精品| 风间由美一区二区三区在线观看| 久久精品夜夜夜夜久久| 成人激情免费网站| 亚洲伦理在线精品| 欧美高清www午色夜在线视频| 男女性色大片免费观看一区二区| 精品久久久久久无| 亚洲在线视频一区| 欧美一级片在线看| 国产成人午夜精品5599| 亚洲女子a中天字幕| 成人av第一页| 久久久午夜电影| 成人激情黄色小说| 亚洲成在人线在线播放| 日韩一区二区在线观看视频 | 中文在线资源观看网站视频免费不卡 | 国产欧美日韩卡一| 一本大道久久a久久综合| 五月婷婷久久丁香| 久久视频一区二区|