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

📄 rtcp.h

📁 h.248协议源码
💻 H
字号:
/*

NOTICE:
This document contains information that is proprietary to RADVision LTD.
No part of this publication may be reproduced in any form whatsoever without 
written prior approval by RADVision LTD.

RADVision LTD. reserves the right to revise this publication and make changes 
without obligation to notify any person of such revisions or changes.

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


#ifndef __RTCP_H
#define __RTCP_H

#include "rvtypes.h"
#include "rtpstd.h"


#ifndef __RTP_H
DECLARE_OPAQUE(HRTCPSESSION);
#endif


#define ERR_RTCP_GENERALERROR     -350   /* general error */
#define ERR_RTCP_SSRCCOLLISION    -351   /* ssrc collision */
#define ERR_RTCP_ILLEGALSSRC      -352   /* an illegal ssrc was specified */
#define ERR_RTCP_ILLEGALSDES      -353   /* an illegal sdes was specified */
#define ERR_RTCP_ILLEGALPACKET    -354   /* illegal RTCP pkt encountered */



/* typedef RvBool (CALLCONV *LPSSRCENUM)( */
typedef RvBool (*LPSSRCENUM)(
        IN  HRTCPSESSION  hRTCP,
        IN  RvUint32        ssrc);


typedef struct {
    RvBool    valid;
    RvUint32  mNTPtimestamp;
    RvUint32  lNTPtimestamp;
    RvUint32  timestamp;
    RvUint32  packets;
    RvUint32  octets;
} RTCPSRINFO;

typedef struct {
    RvBool    valid;
    RvUint32  fractionLost;
    RvUint32  cumulativeLost;
    RvUint32  sequenceNumber;
    RvUint32  jitter;
    RvUint32  lSR;
    RvUint32  dlSR;

} RTCPRRINFO;

typedef struct {
    RvBool        selfNode;
    RTCPSRINFO  sr;
    RTCPRRINFO  rrFrom;
    RTCPRRINFO  rrTo;
    char        cname[255];
} RTCPINFO;



                      /* == Basic RTCP Functions == */


RVVXDAPI
RvInt32 VXDCALLCONV rtcpInit(void);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpInitEx(RvUint32 ip);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpEnd(void);


RVVXDAPI
int VXDCALLCONV rtcpGetAllocationSize(
	IN  int sessionMembers);

RVVXDAPI
HRTCPSESSION VXDCALLCONV rtcpOpenFrom(
        IN  RvUint32  ssrc,
        IN  RvUint16  port,
        IN  char *  cname,
	IN  int	    sessionMembers,
	IN  void *  buffer,
	IN  int	    bufferSize);

RVVXDAPI
HRTCPSESSION VXDCALLCONV rtcpOpen(
        IN  RvUint32  ssrc,
        IN  RvUint16  port,
        IN  char *  cname);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpClose(
        IN  HRTCPSESSION  hRCTP);

RVVXDAPI
void VXDCALLCONV rtcpSetRemoteAddress(
        IN  HRTCPSESSION  hRTCP,
        IN  RvUint32        ip,
        IN  RvUint16        port);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpStop(
        IN  HRTCPSESSION  hRTCP);


RVVXDAPI
RvInt32 VXDCALLCONV rtcpRTPPacketRecv(
        IN  HRTCPSESSION  hRTCP,
        IN  RvUint32        ssrc,
        IN  RvUint32        myTimestamp,
        IN  RvUint32        timestamp,
        IN  RvUint16        sequence);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpRTPPacketSent(
        IN  HRTCPSESSION  hRTCP,
        IN  RvInt32         bytes,
        IN  RvUint32        timestamp);

RVVXDAPI
RvUint16 VXDCALLCONV rtcpGetPort(
        IN  HRTCPSESSION  hRCTP);


                   /* == ENDS: Basic RTCP Functions == */



                    /* == Accessory RTCP Functions == */


RVVXDAPI
RvBool VXDCALLCONV rtcpCheckSSRCCollision(
        IN  HRTCPSESSION  hRTCP);

/* ouch! */
#define rtcpEnumParticipients  rtcpEnumParticipants

RVVXDAPI
RvBool VXDCALLCONV rtcpEnumParticipants(
        IN  HRTCPSESSION  hRTCP,
        IN  LPSSRCENUM    enumerator);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpGetSourceInfo(
        IN   HRTCPSESSION hRTCP,
        IN   RvUint32       ssrc,
        OUT  RTCPINFO*    info);	

RVVXDAPI
RvInt32 VXDCALLCONV rtcpSetGroupAddress(
        IN  HRTCPSESSION  hRTCP,
        IN  RvUint32        ip);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpGetSSRC(
        IN  HRTCPSESSION  hRTCP);

RVVXDAPI
RvInt32 VXDCALLCONV rtcpSetSSRC(
        IN  HRTCPSESSION  hRTCP,
        IN  RvUint32        ssrc);

                 /* == ENDS: Accessory RTCP Functions == */


#endif  /* __RTCP_H */
#ifdef __cplusplus
}
#endif

⌨️ 快捷键说明

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