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

Close #2126: Initial implementation of RTCP Feedback.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsua2/account.hpp

    r5801 r5820  
    738738typedef std::vector<SrtpCrypto> SrtpCryptoVector; 
    739739 
     740/** 
     741 * SRTP settings. 
     742 */ 
    740743struct SrtpOpt : public PersistentObject 
    741744{ 
     
    772775     */ 
    773776    pjsua_srtp_opt toPj() const; 
     777 
     778public: 
     779    /** 
     780     * Read this object from a container node. 
     781     * 
     782     * @param node              Container to read values from. 
     783     */ 
     784    virtual void readObject(const ContainerNode &node) throw(Error); 
     785 
     786    /** 
     787     * Write this object to a container node. 
     788     * 
     789     * @param node              Container to write values to. 
     790     */ 
     791    virtual void writeObject(ContainerNode &node) const throw(Error); 
     792}; 
     793 
     794/** 
     795 * RTCP Feedback capability. 
     796 */ 
     797struct RtcpFbCap 
     798{ 
     799    /** 
     800     * Specify the codecs to which the capability is applicable. Codec ID is 
     801     * using the same format as in pjmedia_codec_mgr_find_codecs_by_id() and 
     802     * pjmedia_vid_codec_mgr_find_codecs_by_id(), e.g: "L16/8000/1", "PCMU", 
     803     * "H264". This can also be an asterisk ("*") to represent all codecs. 
     804     */ 
     805    string                  codecId; 
     806 
     807    /** 
     808     * Specify the RTCP Feedback type. 
     809     */ 
     810    pjmedia_rtcp_fb_type    type; 
     811 
     812    /** 
     813     * Specify the type name if RTCP Feedback type is PJMEDIA_RTCP_FB_OTHER. 
     814     */ 
     815    string                  typeName; 
     816 
     817    /** 
     818     * Specify the RTCP Feedback parameters. 
     819     */ 
     820    string                  param; 
     821 
     822public: 
     823    /** 
     824     * Constructor. 
     825     */ 
     826    RtcpFbCap() : type(PJMEDIA_RTCP_FB_OTHER) 
     827    {} 
     828 
     829    /** 
     830     * Convert from pjsip 
     831     */ 
     832    void fromPj(const pjmedia_rtcp_fb_cap &prm); 
     833 
     834    /** 
     835     * Convert to pjsip 
     836     */ 
     837    pjmedia_rtcp_fb_cap toPj() const; 
     838}; 
     839 
     840/* Array of RTCP Feedback capabilities. */ 
     841typedef std::vector<RtcpFbCap> RtcpFbCapVector; 
     842 
     843 
     844/** 
     845 * RTCP Feedback settings. 
     846 */ 
     847struct RtcpFbConfig : public PersistentObject 
     848{ 
     849    /** 
     850     * Specify whether transport protocol in SDP media description uses 
     851     * RTP/AVP instead of RTP/AVPF. Note that the standard mandates to signal 
     852     * AVPF profile, but it may cause SDP negotiation failure when negotiating 
     853     * with endpoints that does not support RTCP Feedback (including older 
     854     * version of PJSIP). 
     855     * 
     856     * Default: false. 
     857     */ 
     858    bool                    dontUseAvpf; 
     859 
     860    /** 
     861     * RTCP Feedback capabilities. 
     862     */ 
     863    RtcpFbCapVector         caps; 
     864 
     865public: 
     866    /** 
     867     * Constructor. 
     868     */ 
     869    RtcpFbConfig(); 
     870 
     871    /** 
     872     * Convert from pjsip 
     873     */ 
     874    void fromPj(const pjmedia_rtcp_fb_setting &prm); 
     875 
     876    /** 
     877     * Convert to pjsip 
     878     */ 
     879    pjmedia_rtcp_fb_setting toPj() const; 
    774880 
    775881public: 
     
    854960     */ 
    855961    bool                rtcpMuxEnabled; 
     962 
     963    /** 
     964     * RTCP Feedback settings. 
     965     */ 
     966    RtcpFbConfig        rtcpFbConfig; 
    856967 
    857968public: 
Note: See TracChangeset for help on using the changeset viewer.