331 lines
7.3 KiB
C
331 lines
7.3 KiB
C
/*
|
||
* Filename: RRCMPROT.H
|
||
*
|
||
* Functions prototyping.
|
||
*
|
||
* INTEL Corporation Proprietary Information
|
||
* This listing is supplied under the terms of a license agreement with
|
||
* Intel Corporation and may not be copied nor disclosed except in
|
||
* accordance with the terms of that agreement.
|
||
* Copyright (c) 1995 Intel Corporation.
|
||
*--------------------------------------------------------------------------*/
|
||
|
||
#ifndef _RRCMPROT_H_
|
||
#define _RRCMPROT_H_
|
||
|
||
#include "rrcm.h"
|
||
#include "rtp.h"
|
||
|
||
#if defined(__cplusplus)
|
||
extern "C"
|
||
{
|
||
#endif // (__cplusplus)
|
||
|
||
|
||
/*
|
||
RRCMqueu.CPP
|
||
*/
|
||
extern DWORD allocateLinkedList (PLINK_LIST,
|
||
HANDLE,
|
||
PDWORD,
|
||
DWORD,
|
||
CRITICAL_SECTION *);
|
||
extern void addToHeadOfList (PLINK_LIST,
|
||
PLINK_LIST,
|
||
CRITICAL_SECTION *);
|
||
extern void addToTailOfList (PLINK_LIST,
|
||
PLINK_LIST,
|
||
CRITICAL_SECTION *);
|
||
extern PLINK_LIST removePcktFromTail (PLINK_LIST,
|
||
CRITICAL_SECTION *);
|
||
extern PLINK_LIST removePcktFromHead (PLINK_LIST,
|
||
CRITICAL_SECTION *);
|
||
|
||
|
||
/*
|
||
RTCPINIT.CPP
|
||
*/
|
||
extern DWORD initRTCP(void);
|
||
extern DWORD deleteRTCP(void);
|
||
|
||
/*
|
||
RTCPSESS.CPP
|
||
*/
|
||
extern DWORD allocateRTCPContextHeaps (PRTCP_CONTEXT);
|
||
extern DWORD allocateRTCPSessionHeaps (PRTCP_SESSION *);
|
||
extern DWORD allocateRTCPsessionResources (PRTCP_SESSION *,
|
||
PSSRC_ENTRY *);
|
||
extern PRTCP_SESSION CreateRTCPSession (SOCKET,
|
||
SOCKET,
|
||
LPVOID,
|
||
DWORD,
|
||
PSDES_DATA,
|
||
DWORD,
|
||
PENCRYPT_INFO,
|
||
DWORD,
|
||
PRRCM_EVENT_CALLBACK,
|
||
DWORD_PTR,
|
||
DWORD,
|
||
DWORD,
|
||
PDWORD);
|
||
extern DWORD deleteRTCPSession (SOCKET,
|
||
PCHAR);
|
||
extern DWORD buildSDESinfo (PSSRC_ENTRY,
|
||
PSDES_DATA);
|
||
extern DWORD frequencyToPckt (DWORD);
|
||
extern DWORD CreateRTCPthread (void);
|
||
extern void terminateRtcpThread (void);
|
||
extern DWORD RTCPflushIO (PSSRC_ENTRY);
|
||
extern DWORD flushIO (PSSRC_ENTRY);
|
||
extern void CALLBACK RTCPflushCallback (DWORD,
|
||
DWORD,
|
||
LPWSAOVERLAPPED,
|
||
DWORD);
|
||
|
||
|
||
/*
|
||
RTCPSSRC.CPP
|
||
*/
|
||
extern PSSRC_ENTRY getOneSSRCentry (PLINK_LIST,
|
||
HANDLE,
|
||
PDWORD,
|
||
CRITICAL_SECTION *);
|
||
extern DWORD getSSRC (LINK_LIST,
|
||
LINK_LIST);
|
||
extern DWORD isSSRCunique (PSSRC_ENTRY,
|
||
PDWORD);
|
||
extern PSSRC_ENTRY createSSRCEntry (DWORD,
|
||
PRTCP_SESSION,
|
||
PSOCKADDR,
|
||
DWORD,
|
||
DWORD);
|
||
extern DWORD RRCMChkCollisionTable (PSOCKADDR pFrom,
|
||
UINT fromlen,
|
||
PSSRC_ENTRY);
|
||
extern DWORD RRCMAddEntryToCollisionTable (PSOCKADDR pFrom,
|
||
UINT fromlen,
|
||
PSSRC_ENTRY);
|
||
extern void RRCMTimeOutCollisionTable (PRTCP_SESSION);
|
||
extern DWORD deleteSSRCEntry (DWORD,
|
||
PRTCP_SESSION);
|
||
extern void deleteSSRClist (PRTCP_SESSION,
|
||
PLINK_LIST,
|
||
PRTCP_CONTEXT);
|
||
void clearSSRCEntry (PSSRC_ENTRY);
|
||
|
||
/*
|
||
RTCPMEM.CPP
|
||
*/
|
||
extern DWORD allocateRTCPBfrList (PLINK_LIST,
|
||
HANDLE,
|
||
HANDLE,
|
||
PDWORD,
|
||
DWORD,
|
||
CRITICAL_SECTION *);
|
||
|
||
|
||
/*
|
||
RTCPTIME.CPP
|
||
*/
|
||
extern DWORD RTCPxmitInterval (DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
int *,
|
||
DWORD);
|
||
|
||
|
||
/*
|
||
RTCPRECV.CPP
|
||
*/
|
||
extern DWORD RTCPrcvInit (PSSRC_ENTRY);
|
||
extern void CALLBACK RTCPrcvCallback (DWORD,
|
||
DWORD,
|
||
LPWSAOVERLAPPED,
|
||
DWORD);
|
||
extern DWORD parseRTCPsr (SOCKET,
|
||
RTCP_T *,
|
||
PRTCP_SESSION,
|
||
PRTCP_BFR_LIST);
|
||
extern DWORD parseRTCPrr (SOCKET,
|
||
RTCP_RR_T *,
|
||
PRTCP_SESSION,
|
||
PRTCP_BFR_LIST,
|
||
DWORD);
|
||
extern PCHAR parseRTCPsdes (SOCKET,
|
||
PCHAR,
|
||
PRTCP_SESSION,
|
||
PRTCP_BFR_LIST);
|
||
extern DWORD parseRTCPbye (SOCKET,
|
||
DWORD,
|
||
PRTCP_SESSION,
|
||
PRTCP_BFR_LIST);
|
||
extern DWORD ownLoopback (SOCKET,
|
||
DWORD,
|
||
PRTCP_SESSION);
|
||
extern DWORD updateRRfeedback (SOCKET,
|
||
DWORD,
|
||
DWORD,
|
||
RTCP_RR_T *,
|
||
PSSRC_ENTRY);
|
||
extern void RTCPpostRecvBfr (PSSRC_ENTRY,
|
||
PRTCP_BFR_LIST);
|
||
|
||
|
||
/*
|
||
RTCPSEND.CPP
|
||
*/
|
||
extern void CALLBACK RTCPxmtCallback (DWORD,
|
||
DWORD,
|
||
LPWSAOVERLAPPED,
|
||
DWORD);
|
||
extern BOOL FormatRTCPReport (PRTCP_SESSION,
|
||
PSSRC_ENTRY,
|
||
DWORD);
|
||
extern DWORD getSSRCpcktLoss (PSSRC_ENTRY,
|
||
DWORD);
|
||
extern DWORD *RTCPbuildSDES (RTCP_COMMON_T *,
|
||
PSSRC_ENTRY,
|
||
SOCKET,
|
||
char *,
|
||
PSDES_DATA);
|
||
extern void RTCPcheckSDEStoXmit (PSSRC_ENTRY,
|
||
PSDES_DATA);
|
||
extern void RTCPbuildSenderRpt (PSSRC_ENTRY,
|
||
RTCP_COMMON_T *,
|
||
SENDER_RPT **,
|
||
SOCKET);
|
||
extern DWORD usec2ntp (DWORD);
|
||
extern DWORD usec2ntpFrac (long);
|
||
extern void RTCPbuildReceiverRpt (PSSRC_ENTRY,
|
||
RTCP_RR_T *,
|
||
SOCKET);
|
||
extern void RTCPsendBYE (PSSRC_ENTRY,
|
||
PCHAR);
|
||
extern DWORD getDLSR (PSSRC_ENTRY);
|
||
|
||
#ifdef DYNAMIC_RTCP_BW
|
||
extern DWORD updateRtpXmtBW (PSSRC_ENTRY);
|
||
extern DWORD updateRtpRcvBW (PSSRC_ENTRY);
|
||
#endif
|
||
|
||
|
||
/*
|
||
RTPINIT.CPP
|
||
*/
|
||
extern DWORD deleteRTP (HINSTANCE);
|
||
extern void addBuf (void);
|
||
extern DWORD initRTP (HINSTANCE);
|
||
extern void RRCMreadRegistry (PRTP_CONTEXT);
|
||
extern void RRCMgetRegistryValue (HKEY,
|
||
LPTSTR,
|
||
PDWORD,
|
||
DWORD,
|
||
DWORD);
|
||
extern DWORD RRCMgetDynamicLink (void);
|
||
extern DWORD deleteRTPSession(PRTP_CONTEXT,
|
||
PRTP_SESSION);
|
||
|
||
|
||
/*
|
||
RTPSEND.CPP
|
||
*/
|
||
extern void CALLBACK RTPTransmitCallback (DWORD,
|
||
DWORD,
|
||
LPWSAOVERLAPPED,
|
||
DWORD);
|
||
extern DWORD CALLBACK saveWinsockContext(LPWSAOVERLAPPED,
|
||
LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||
PRTP_SESSION,
|
||
SOCKET);
|
||
#if 0
|
||
extern void updateNtpRtpTimeStampOffset (RTP_HDR_T *,
|
||
PSSRC_ENTRY);
|
||
#endif
|
||
|
||
|
||
|
||
/*
|
||
RTPRECV.CPP
|
||
*/
|
||
extern DWORD RTPReceiveCheck (
|
||
HANDLE hRTPSession,
|
||
SOCKET RTPsocket,
|
||
char *pPacket,
|
||
DWORD cbTransferred,
|
||
PSOCKADDR pFrom,
|
||
UINT fromlen
|
||
);
|
||
extern BOOL validateRTPHeader(RTP_HDR_T *);
|
||
|
||
|
||
/*
|
||
RTP_STAT.CPP
|
||
*/
|
||
extern DWORD calculateJitter (RTP_HDR_T *,
|
||
PSSRC_ENTRY);
|
||
extern DWORD updateRTPStats (RTP_HDR_T *,
|
||
PSSRC_ENTRY,
|
||
DWORD);
|
||
|
||
/*
|
||
RTPMISC.CPP
|
||
*/
|
||
extern DWORD saveNetworkAddress (PSSRC_ENTRY,
|
||
PSOCKADDR,
|
||
int);
|
||
extern PSSRC_ENTRY searchforSSRCatHead(PSSRC_ENTRY,
|
||
DWORD);
|
||
extern PSSRC_ENTRY searchforSSRCatTail(PSSRC_ENTRY,
|
||
DWORD);
|
||
extern PSSRC_ENTRY searchForMySSRC(PSSRC_ENTRY,
|
||
SOCKET);
|
||
|
||
#ifdef ENABLE_ISDM2
|
||
extern void registerSessionToISDM (PSSRC_ENTRY,
|
||
PRTCP_SESSION,
|
||
PISDM2);
|
||
extern void updateISDMstat (PSSRC_ENTRY,
|
||
PISDM2,
|
||
DWORD,
|
||
BOOL);
|
||
#endif
|
||
extern void RRCMdebugMsg (PCHAR,
|
||
DWORD,
|
||
PCHAR,
|
||
DWORD,
|
||
DWORD);
|
||
extern void RRCMnotification (RRCM_EVENT_T,
|
||
PSSRC_ENTRY,
|
||
DWORD,
|
||
DWORD);
|
||
|
||
|
||
|
||
|
||
/*
|
||
RRCMCRT.CPP
|
||
*/
|
||
extern void RRCMsrand (unsigned int);
|
||
extern int RRCMrand (void);
|
||
extern char *RRCMitoa (int, char *, int);
|
||
extern char *RRCMultoa (unsigned long, char *, int);
|
||
extern char *RRCMltoa (long, char *, int);
|
||
|
||
/*
|
||
RTCPTHRD.CPP
|
||
*/
|
||
extern void RTCPThread (PRTCP_CONTEXT);
|
||
extern PSSRC_ENTRY SSRCTimeoutCheck (PRTCP_SESSION,
|
||
DWORD);
|
||
|
||
|
||
#if defined(__cplusplus)
|
||
}
|
||
#endif // (__cplusplus)
|
||
|
||
|
||
#endif /* ifndef _RRCMPROT_H_ */
|
||
|
||
|