Ignore:
Timestamp:
Sep 6, 2017 3:44:35 AM (7 years ago)
Author:
riza
Message:

Close #2040: Implement CodecParam? class as a wrapper for pjmedia_codec_param.

File:
1 edited

Legend:

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

    r5581 r5645  
    19551955 
    19561956/** 
    1957  * Codec parameters, corresponds to pjmedia_codec_param. 
    1958  */ 
    1959 typedef void *CodecParam; 
    1960  
    1961 /** 
    19621957 * Structure of codec specific parameters which contains name=value pairs. 
    19631958 * The codec specific parameters are to be used with SDP according to 
     
    19741969 
    19751970/** 
    1976  * Detailed codec attributes used in configuring a codec and in querying 
    1977  * the capability of codec factories.  
     1971 * Audio codec parameters info. 
     1972 */ 
     1973struct CodecParamInfo 
     1974{ 
     1975    unsigned    clockRate;              /**< Sampling rate in Hz            */ 
     1976    unsigned    channelCnt;             /**< Channel count.                 */ 
     1977    unsigned    avgBps;                 /**< Average bandwidth in bits/sec  */ 
     1978    unsigned    maxBps;                 /**< Maximum bandwidth in bits/sec  */ 
     1979    unsigned    maxRxFrameSize;         /**< Maximum frame size             */ 
     1980    unsigned    frameLen;               /**< Decoder frame ptime in msec.   */ 
     1981    unsigned    pcmBitsPerSample;       /**< Bits/sample in the PCM side    */ 
     1982    unsigned    pt;                     /**< Payload type.                  */ 
     1983    pjmedia_format_id fmtId;            /**< Source format, it's format of 
     1984                                             encoder input and decoder 
     1985                                             output.                        */ 
     1986}; 
     1987 
     1988/** 
     1989 * Audio codec parameters setting. 
     1990 */ 
     1991struct CodecParamSetting 
     1992{ 
     1993    unsigned    frmPerPkt;          /**< Number of frames per packet.   */ 
     1994    bool        vad;                /**< Voice Activity Detector.       */ 
     1995    bool        cng;                /**< Comfort Noise Generator.       */ 
     1996    bool        penh;               /**< Perceptual Enhancement         */ 
     1997    bool        plc;                /**< Packet loss concealment        */ 
     1998    bool        reserved;           /**< Reserved, must be zero.        */ 
     1999    CodecFmtpVector encFmtp;        /**< Encoder's fmtp params.         */ 
     2000    CodecFmtpVector decFmtp;        /**< Decoder's fmtp params.         */ 
     2001}; 
     2002 
     2003/** 
     2004 * Detailed codec attributes used in configuring an audio codec and in querying 
     2005 * the capability of audio codec factories. 
     2006 * 
     2007 * Please note that codec parameter also contains SDP specific setting, 
     2008 * #setting::decFmtp and #setting::encFmtp, which may need to be set  
     2009 * appropriately based on the effective setting.  
     2010 * See each codec documentation for more detail. 
     2011 */ 
     2012struct CodecParam 
     2013{ 
     2014    struct CodecParamInfo info; 
     2015    struct CodecParamSetting setting; 
     2016 
     2017    void fromPj(const pjmedia_codec_param &param); 
     2018 
     2019    pjmedia_codec_param toPj() const; 
     2020}; 
     2021 
     2022/** 
     2023 * Detailed codec attributes used in configuring a video codec and in querying 
     2024 * the capability of video codec factories.  
    19782025 * 
    19792026 * Please note that codec parameter also contains SDP specific setting, 
     
    20032050 
    20042051    pjmedia_vid_codec_param toPj() const; 
    2005  
    2006 private: 
    2007     void setCodecFmtp(const pjmedia_codec_fmtp &in_fmtp,  
    2008                       CodecFmtpVector &out_fmtp); 
    2009  
    2010     void getCodecFmtp(const CodecFmtpVector &in_fmtp, 
    2011                       pjmedia_codec_fmtp &out_fmtp) const; 
    2012  
    20132052}; 
    20142053 
Note: See TracChangeset for help on using the changeset viewer.