Ignore:
Timestamp:
Jul 12, 2018 8:22:31 AM (6 years ago)
Author:
nanang
Message:

Close #2126: Initial implementation of RTCP Feedback.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/include/pjmedia/types.h

    r5166 r5820  
    7373 
    7474/** 
    75  * Media transport protocol. 
     75 * Media transport protocol and profile. 
    7676 */ 
    7777typedef enum pjmedia_tp_proto 
    7878{ 
     79    /* Basic transports */ 
     80 
    7981    /** No transport type */ 
    80     PJMEDIA_TP_PROTO_NONE = 0, 
     82    PJMEDIA_TP_PROTO_NONE           = 0, 
     83 
     84    /** Transport unknown */ 
     85    PJMEDIA_TP_PROTO_UNKNOWN        = (1 << 0), 
     86 
     87    /** UDP transport */ 
     88    PJMEDIA_TP_PROTO_UDP            = (1 << 1), 
     89 
     90    /** RTP transport */ 
     91    PJMEDIA_TP_PROTO_RTP            = (1 << 2), 
     92 
     93    /** DTLS transport */ 
     94    PJMEDIA_TP_PROTO_DTLS           = (1 << 3), 
     95 
     96 
     97    /* Basic profiles */ 
     98     
     99    /** RTCP Feedback profile */ 
     100    PJMEDIA_TP_PROFILE_RTCP_FB      = (1 << 13), 
     101 
     102    /** Secure RTP profile */ 
     103    PJMEDIA_TP_PROFILE_SRTP         = (1 << 14), 
     104 
     105    /** Audio/video profile */ 
     106    PJMEDIA_TP_PROFILE_AVP          = (1 << 15), 
     107 
     108 
     109    /* Predefined transport profiles (commonly used) */ 
    81110 
    82111    /** RTP using A/V profile */ 
    83     PJMEDIA_TP_PROTO_RTP_AVP, 
    84  
    85     /** Secure RTP */ 
    86     PJMEDIA_TP_PROTO_RTP_SAVP, 
    87  
    88     /** Unknown */ 
    89     PJMEDIA_TP_PROTO_UNKNOWN 
     112    PJMEDIA_TP_PROTO_RTP_AVP        = (PJMEDIA_TP_PROTO_RTP | 
     113                                       PJMEDIA_TP_PROFILE_AVP), 
     114 
     115    /** Secure RTP using A/V profile */ 
     116    PJMEDIA_TP_PROTO_RTP_SAVP       = (PJMEDIA_TP_PROTO_RTP_AVP | 
     117                                       PJMEDIA_TP_PROFILE_SRTP), 
     118 
     119    /** Secure RTP using A/V profile and DTLS-SRTP keying */ 
     120    PJMEDIA_TP_PROTO_DTLS_SRTP      = (PJMEDIA_TP_PROTO_DTLS | 
     121                                       PJMEDIA_TP_PROTO_RTP_SAVP), 
     122 
     123    /** RTP using A/V and RTCP feedback profile */ 
     124    PJMEDIA_TP_PROTO_RTP_AVPF       = (PJMEDIA_TP_PROTO_RTP_AVP | 
     125                                       PJMEDIA_TP_PROFILE_RTCP_FB), 
     126 
     127    /** Secure RTP using A/V and RTCP feedback profile */ 
     128    PJMEDIA_TP_PROTO_RTP_SAVPF      = (PJMEDIA_TP_PROTO_RTP_SAVP | 
     129                                       PJMEDIA_TP_PROFILE_RTCP_FB), 
     130 
     131    /** Secure RTP using A/V and RTCP feedback profile and DTLS-SRTP keying */ 
     132    PJMEDIA_TP_PROTO_DTLS_SRTPF     = (PJMEDIA_TP_PROTO_DTLS_SRTP | 
     133                                       PJMEDIA_TP_PROFILE_RTCP_FB), 
    90134 
    91135} pjmedia_tp_proto; 
    92136 
     137/** 
     138 * Macro helper for checking if a transport protocol contains specific 
     139 * transport and profile flags. 
     140 */ 
     141#define PJMEDIA_TP_PROTO_HAS_FLAG(TP_PROTO, FLAGS) \ 
     142                                    (((TP_PROTO) & (FLAGS)) == (FLAGS)) 
     143 
     144/** 
     145 * Macro helper for excluding specific flags in transport protocol. 
     146 */ 
     147#define PJMEDIA_TP_PROTO_TRIM_FLAG(TP_PROTO, FLAGS) ((TP_PROTO) &= ~(FLAGS)) 
    93148 
    94149/** 
Note: See TracChangeset for help on using the changeset viewer.