home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / rtp.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  2KB  |  78 lines

  1. /*++
  2.  
  3. Copyright 1996 - 1998 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     rtp.h
  8.  
  9. Abstract:
  10.  
  11.     Header for RTP/RTCP Protocol.
  12.  
  13. --*/
  14.  
  15. #ifndef _INC_RTP
  16. #define _INC_RTP
  17.  
  18. #define RTP_TYPE     2
  19. #define RTP_MAX_SDES 256
  20. #define RTP_MAX_EKEY 32
  21.  
  22. typedef struct _RTP_SDES_ITEM {
  23.     BYTE Type;
  24.     BYTE TextLength;
  25.     BYTE Text[RTP_MAX_SDES];
  26. } RTCP_SDES_ITEM, *PRTCP_SDES_ITEM;
  27.  
  28. typedef struct _RTCP_SENDER_REPORT {
  29.     DWORD NtpTimestampSec;
  30.     DWORD NtpTimestampFrac;
  31.     DWORD RtpTimestamp;
  32.     DWORD TotalPackets;
  33.     DWORD TotalOctets;
  34. } RTCP_SENDER_REPORT, *PRTCP_SENDER_REPORT;
  35.     
  36. typedef struct _RTCP_RECEIVER_REPORT {
  37.     DWORD FractionLost:8;
  38.     DWORD TotalLostPackets:24;
  39.     DWORD HighestSequenceNum;
  40.     DWORD InterarrivalJitter;
  41.     DWORD LastSRTimestamp;
  42.     DWORD DelaySinceLastSR;
  43. } RTCP_RECEIVER_REPORT, *PRTCP_RECEIVER_REPORT;
  44.  
  45. typedef struct _RTCP_PARTICIPANT_REPORT {
  46.     DWORD                SSRC;
  47.     RTCP_SENDER_REPORT   LastSR;
  48.     RTCP_RECEIVER_REPORT LastIncomingRR;
  49.     RTCP_RECEIVER_REPORT LastOutgoingRR;
  50. } RTCP_PARTICIPANT_REPORT, *PRTCP_PARTICIPANT_REPORT;
  51.     
  52. typedef struct _RTP_HEADER {
  53. //--- NETWORK BYTE ORDER BEGIN ---//
  54.     WORD  NumCSRC:4;                                      
  55.     WORD  fExtHeader:1;                                   
  56.     WORD  fPadding:1;                                     
  57.     WORD  Version:2;                                      
  58.     WORD  PayloadType:7;
  59.     WORD  fMarker:1;
  60. //---- NETWORK BYTE ORDER END ----//
  61.     WORD  SequenceNum;
  62.     DWORD Timestamp;
  63.     DWORD SSRC;
  64. } RTP_HEADER, *PRTP_HEADER;
  65.  
  66. typedef struct _RTP_HEADER_X {
  67.     WORD  Identifier;
  68.     WORD  DataLength;
  69.     DWORD Data[1];
  70. } RTP_HEADER_X, *PRTP_HEADER_X;
  71.  
  72. typedef struct _RTP_ENCRYPTION_INFO {
  73.     DWORD Scheme;
  74.     DWORD Key[RTP_MAX_EKEY];
  75. } RTP_ENCRYPTION_INFO, *PRTP_ENCRYPTION_INFO;
  76.  
  77. #endif // _INC_RTP
  78.