/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /** * Skip this file if not doing video on the device. * * The ccsdp_xxx api's provide a means to query and populate the SDP attributes * for video m lines. These Api are not needed if we are not supporting video on * the platform. For audio the stack will populate the appropriate attributes * * * These API's can be invoked from the vcmCheckAttrs() and vcmPopulateAttrs() * methods to populate or extract the value of specific attributes in the video SDP. * These api require an handle to the SDP that is passed in the above methods. *
* sdp_handle The SDP handle * level The level the attribute is defined. Can be either * SDP_SESSION_LEVEL or 0-n specifying a media line level. * inst_num The instance number of the attribute. Multiple instances * of a particular attribute may exist at each level and so * the inst_num determines the particular attribute at that * level that should be accessed. Note that this is the * instance number of the specified type of attribute, not the * overall attribute number at the level. Also note that the * instance number is 1-based. For example: * v=0 * o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 * s=SDP Seminar * c=IN IP4 10.1.0.2 * t=0 0 * m=audio 1234 RTP/AVP 0 101 102 * a=foo 1 * a=foo 2 * a=bar 1 # This is instance 1 of attribute bar. * a=foo 3 # This is instance 3 of attribute foo. * cap_num Almost all of the attributes may be defined as X-cpar * parameters (with the exception of X-sqn, X-cap, and X-cpar). * If the cap_num is set to zero, then the attribute is not * an X-cpar parameter attribute. If the cap_num is any other * value, it specifies the capability number that the X-cpar * attribute is specified for. **/ #ifndef __CCSDP_H__ #define __CCSDP_H__ #include "cpr_types.h" #define SIPSDP_ILBC_MODE20 20 /** * Return codes for sdp helper APIs */ typedef enum rtp_ptype_ { RTP_NONE = -1, RTP_PCMU = 0, RTP_CELP = 1, RTP_G726 = 2, RTP_GSM = 3, RTP_G723 = 4, RTP_DVI4 = 5, RTP_DVI4_II = 6, RTP_LPC = 7, RTP_PCMA = 8, RTP_G722 = 9, RTP_G728 = 15, RTP_G729 = 18, RTP_JPEG = 26, RTP_NV = 28, RTP_H261 = 31, RTP_H264_P0 = 97, RTP_H264_P1 = 126, RTP_AVT = 101, RTP_L16 = 102, RTP_H263 = 103, RTP_ILBC = 116, /* used only to make an offer */ RTP_OPUS = 109, RTP_VP8 = 120, RTP_I420 = 124, RTP_ISAC = 124 } rtp_ptype; /** * IANA-registered static payload types for the RTP/AVP profile. * See http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xml */ typedef enum static_rtp_ptype_ { STATIC_RTP_AVP_PCMU_8000_1 = 0, STATIC_RTP_AVP_GSM_8000_1 = 3, STATIC_RTP_AVP_G723_8000_1 = 4, STATIC_RTP_AVP_DVI4_8000_1 = 5, STATIC_RTP_AVP_DVI4_16000_1 = 6, STATIC_RTP_AVP_LPC_8000_1 = 7, STATIC_RTP_AVP_PCMA_8000_1 = 8, STATIC_RTP_AVP_G722_8000_1 = 9, STATIC_RTP_AVP_L16_44100_2 = 10, STATIC_RTP_AVP_L16_44100_1 = 11, STATIC_RTP_AVP_QCELP_8000_1 = 12, STATIC_RTP_AVP_CN_8000_1 = 13, STATIC_RTP_AVP_MPA_90000_1 = 14, STATIC_RTP_AVP_G728_8000_1 = 15, STATIC_RTP_AVP_DVI4_11025_1 = 16, STATIC_RTP_AVP_DVI4_22050_1 = 17, STATIC_RTP_AVP_G729_8000_1 = 18, STATIC_RTP_AVP_CELB_90000_1 = 25, STATIC_RTP_AVP_JPEG_90000_1 = 26, STATIC_RTP_AVP_NV_90000_1 = 28, STATIC_RTP_AVP_H261_90000_1 = 31, STATIC_RTP_AVP_MPV_90000_1 = 32, STATIC_RTP_AVP_MP2T_90000_1 = 33, STATIC_RTP_AVP_H263_90000_1 = 34 } static_rtp_ptype; typedef struct { const char *name; int value; } ccsdp_key_table_entry_t; typedef enum max_coded_audio_bandwidth_ { opus_nb = 0, /* Narrowband */ opus_mb = 1, /* Mediumband */ opus_wb = 2, /* Wideband */ opus_swb = 3, /* Super-wideband */ opus_fb = 4 /* Fullband */ } max_coded_audio_bandwidth; static const ccsdp_key_table_entry_t max_coded_audio_bandwidth_table[] = { {"nb", opus_nb}, {"mb", opus_mb}, {"wb", opus_wb}, {"swb", opus_swb}, {"fb", opus_fb} }; typedef enum { SDP_SUCCESS, /**< Success */ SDP_FAILURE, SDP_INVALID_SDP_PTR, SDP_NOT_SDP_DESCRIPTION, SDP_INVALID_TOKEN_ORDERING, SDP_INVALID_PARAMETER, SDP_INVALID_MEDIA_LEVEL, SDP_INVALID_CAPABILITY, SDP_NO_RESOURCE, SDP_UNRECOGNIZED_TOKEN, SDP_NULL_BUF_PTR, SDP_POTENTIAL_SDP_OVERFLOW, SDP_MAX_RC } sdp_result_e; /** * Indicates invalid bandwidth value */ #define SDP_INVALID_VALUE (-2) /** * Bandwidth modifier type for b= SDP line */ typedef enum { SDP_BW_MODIFIER_INVALID = -1, SDP_BW_MODIFIER_AS, /** < b=AS: */ SDP_BW_MODIFIER_CT, /** < b=CT: */ SDP_BW_MODIFIER_TIAS, /** < b=TIAS: */ SDP_MAX_BW_MODIFIER_VAL, SDP_BW_MODIFIER_UNSUPPORTED } sdp_bw_modifier_e; /** * SDP attribute types */ /* Attribute Types */ typedef enum { SDP_ATTR_BEARER = 0, SDP_ATTR_CALLED, SDP_ATTR_CONN_TYPE, SDP_ATTR_DIALED, SDP_ATTR_DIALING, SDP_ATTR_DIRECTION, SDP_ATTR_EECID, SDP_ATTR_FMTP, SDP_ATTR_FRAMING, SDP_ATTR_INACTIVE, SDP_ATTR_PTIME, SDP_ATTR_QOS, SDP_ATTR_CURR, SDP_ATTR_DES, SDP_ATTR_CONF, SDP_ATTR_RECVONLY, SDP_ATTR_RTPMAP, SDP_ATTR_SECURE, SDP_ATTR_SENDONLY, SDP_ATTR_SENDRECV, SDP_ATTR_SUBNET, SDP_ATTR_T38_VERSION, SDP_ATTR_T38_MAXBITRATE, SDP_ATTR_T38_FILLBITREMOVAL, SDP_ATTR_T38_TRANSCODINGMMR, SDP_ATTR_T38_TRANSCODINGJBIG, SDP_ATTR_T38_RATEMGMT, SDP_ATTR_T38_MAXBUFFER, SDP_ATTR_T38_MAXDGRAM, SDP_ATTR_T38_UDPEC, SDP_ATTR_X_CAP, SDP_ATTR_X_CPAR, SDP_ATTR_X_PC_CODEC, SDP_ATTR_X_PC_QOS, SDP_ATTR_X_QOS, SDP_ATTR_X_SQN, SDP_ATTR_TMRGWXID, SDP_ATTR_TC1_PAYLOAD_BYTES, SDP_ATTR_TC1_WINDOW_SIZE, SDP_ATTR_TC2_PAYLOAD_BYTES, SDP_ATTR_TC2_WINDOW_SIZE, SDP_ATTR_RTCP, SDP_ATTR_RTR, SDP_ATTR_SILENCESUPP, SDP_ATTR_SRTP_CONTEXT, /* version 2 sdescriptions */ SDP_ATTR_MPTIME, SDP_ATTR_X_SIDIN, SDP_ATTR_X_SIDOUT, SDP_ATTR_X_CONFID, SDP_ATTR_GROUP, SDP_ATTR_MID, SDP_ATTR_SOURCE_FILTER, SDP_ATTR_RTCP_UNICAST, SDP_ATTR_MAXPRATE, SDP_ATTR_SQN, SDP_ATTR_CDSC, SDP_ATTR_CPAR, SDP_ATTR_SPRTMAP, SDP_ATTR_SDESCRIPTIONS, /* version 9 sdescriptions */ SDP_ATTR_LABEL, SDP_ATTR_FRAMERATE, SDP_ATTR_ICE_CANDIDATE, SDP_ATTR_ICE_UFRAG, SDP_ATTR_ICE_PWD, SDP_ATTR_RTCP_MUX, SDP_ATTR_DTLS_FINGERPRINT, SDP_ATTR_MAXPTIME, SDP_MAX_ATTR_TYPES, SDP_ATTR_INVALID } sdp_attr_e; /** * Gets the value of the fmtp attribute- parameter-sets parameter for H.264 codec * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * * @return parameter-sets value. */ const char* ccsdpAttrGetFmtpParamSets(void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num); /** * Gets the value of the fmtp attribute- packetization-mode parameter for H.264 codec * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[out] *val packetization-mode value in the range 0 - 2. * * @return sdp_result_e SDP_SUCCESS = SUCCESS */ sdp_result_e ccsdpAttrGetFmtpPackMode(void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint16_t *val); /** * Gets the value of the fmtp attribute- level asymmetry allowed parameter for H.264 codec * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[out] *val level-asymmetry-allowed param value in the range 0 - 1. * * @return sdp_result_e SDP_SUCCESS = SUCCESS */ sdp_result_e ccsdpAttrGetFmtpLevelAsymmetryAllowed(void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint16_t *val); /** * Gets the value of the fmtp attribute- profile-level-id parameter for H.264 codec * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * * @return char * profile-level-id value. */ const char* ccsdpAttrGetFmtpProfileLevelId (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num); /** * Gets the value of the fmtp attribute- max-mbps parameter for H.264 codec * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the * attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[out] *val max-mbps value. * * @return sdp_result_e SDP_SUCCESS */ sdp_result_e ccsdpAttrGetFmtpMaxMbps (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t *val); /** * Gets the value of the fmtp attribute- max-fs parameter for H.264 codec * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the * attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[out] *val max-fs value. * * @return sdp_result_e SDP_SUCCESS */ sdp_result_e ccsdpAttrGetFmtpMaxFs (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t *val); /** * Gets the value of the fmtp attribute- max-cpb parameter for H.264 codec * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param [out] *val max-cpb value. * * @return sdp_result_e SDP_SUCCESS */ sdp_result_e ccsdpAttrGetFmtpMaxCpb (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t *val); /** * Gets the value of the fmtp attribute- max-br parameter for H.264 codec * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param [out] *val max-br value. * * @return sdp_result_e SDP_SUCCESS */ sdp_result_e ccsdpAttrGetFmtpMaxBr (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t* val); /** * Returns the bandwidth value parameter from the b= line. * * @param[in] sdp_handle The SDP handle * @param[in] level The level from which to get the bw value. * @param[in] inst_num instance number of bw line at the level. The first * instance has a inst_num of 1 and so on. * * @return A valid numerical bw value or SDP_INVALID_VALUE(-2). */ int ccsdpGetBandwidthValue (void *sdp_handle, uint16_t level, uint16_t inst_num); /** * Add a new attribute of the specified type at the given level and capability * level or base attribute if cap_num is zero. * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] attr_type The type of attribute to add. * @param[in] inst_num Pointer to a uint16_t in which to return the instance number of the newly added attribute. * * @return sdp_result_e * SDP_SUCCESS Attribute was added successfully. * SDP_NO_RESOURCE No memory avail for new attribute. * SDP_INVALID_PARAMETER Specified media line is not defined. */ sdp_result_e ccsdpAddNewAttr (void *sdp_handle, uint16_t level, uint8_t cap_num, sdp_attr_e attr_type, uint16_t *inst_num); /** * Gets the value of the fmtp attribute- max-dpb parameter for H.264 codec * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[out] *val max-dpb value. * * @return sdp_result_e * SDP_SUCCESS Attribute was added successfully. */ sdp_result_e ccsdpAttrGetFmtpMaxDpb (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t *val); /** * Sets the value of the fmtp attribute payload type parameter for the given attribute. * * @param[in] sdp_handle The SDP handle * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] payload_num New payload type value. * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpPayloadType (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint16_t payload_num); /** * Sets the value of the packetization mode attribute parameter for the given attribute. * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] pack_mode Packetization mode value * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpPackMode (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint16_t pack_mode); /** * Sets the value of the level-asymmetry-allowed attribute parameter for the given attribute. * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] level_asymmetry_allowed level asymmetry allowed value (0 or 1). * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpLevelAsymmetryAllowed (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint16_t level_asymmetry_allowed); /** * Sets the value of the profile-level-id parameter for the given attribute. * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] profile_level_id profile_level_id to be set * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpProfileLevelId (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, const char *profile_level_id); /** * Sets the value of the profile-level-id parameter for the given attribute. * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] parameter_sets parameter_sets to be set * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpParameterSets (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, const char *parameter_sets); /** * Sets the value of the max-br parameter for the given attribute. * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] max_br max_br value to be set * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpMaxBr (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t max_br); /** * Sets the value of the fmtp attribute- max-mbps parameter for H.264 codec * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] max_mbps value of max_mbps to be set * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpMaxMbps (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t max_mbps); /** * Sets the value of the fmtp attribute- max-fs parameter for H.264 codec * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] max_fs max_fs value to be set * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpMaxFs (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t max_fs); /** * Sets the value of the fmtp attribute- max-cbp parameter for H.264 codec * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] max_cpb max_cbp value to be set * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpMaxCpb (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t max_cpb); /** * Sets the value of the fmtp attribute- max-dbp parameter for H.264 codec * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] max_dpb max_dbp value to be set * * @return SDP_SUCCESS Attribute was added successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpMaxDbp (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint32_t max_dpb); /** * Sets the value of the fmtp attribute qcif parameter for the given attribute. * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] qcif Sets the QCIF value for a video codec * * @return SDP_SUCCESS Attribute param was set successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpQcif (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint16_t qcif); /** * Sets the value of the fmtp attribute sqcif parameter for the given attribute. * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to check for the attribute. * @param[in] cap_num The capability number associated with the attribute if any. If none, should be zero. * @param[in] inst_num The attribute instance number to check. * @param[in] sqcif Sets the SQCIF value for a video codec * * @return SDP_SUCCESS Attribute param was set successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAttrSetFmtpSqcif (void *sdp_handle, uint16_t level, uint8_t cap_num, uint16_t inst_num, uint16_t sqcif); /** * * To specify bandwidth parameters at any level, a bw line must first be * added at that level using this function. This function returns the instance * number of an existing bw_line that matches bw_modifier type, or of a newly * created bw_line of type bw_modifier. After this addition, you can set the * properties of the added bw line by using sdp_set_bw(). * * Note carefully though, that since there can be multiple instances of bw * lines at any level, you must specify the instance number when setting * or getting the properties of a bw line at any level. * * This function returns the inst_num variable, the instance number * of the created bw_line at that level. The instance number is 1 based. *
* For example: * v=0 :Session Level * o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 * s=SDP Seminar * c=IN IP4 10.1.0.2 * t=0 0 * b=AS:60 : instance number 1 * b=TIAS:50780 : instance number 2 * m=audio 1234 RTP/AVP 0 101 102 : 1st Media level * b=AS:12 : instance number 1 * b=TIAS:8480 : instance number 2 * m=audio 1234 RTP/AVP 0 101 102 : 2nd Media level * b=AS:20 : instance number 1 ** @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to create the bw line. * @param[in] bw_modifier The Type of bandwidth, CT, AS or TIAS. * @param[out] inst_num This memory is set with the instance number of the newly created bw line instance. * * @return SDP_SUCCESS Attribute param was set successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpAddNewBandwidthLine (void *sdp_handle, uint16_t level, sdp_bw_modifier_e bw_modifier, uint16_t *inst_num); /** * Once a bandwidth line is added under a level, this function can be used to * set the properties of that bandwidth line. * * @param[in] sdp_handle The SDP handle returned by sdp_init_description. * @param[in] level The level to at which the bw line resides. * @param[in] inst_num The instance number of the bw line that is to be set. * @param[in] bw_modifier The Type of bandwidth, CT, AS or TIAS. * @param[in] bw_val Numerical bandwidth value. * * @note Before calling this function to set the bw line, the bw line must * be added using sdp_add_new_bw_line at the required level. * * @return SDP_SUCCESS Attribute param was set successfully. * SDP_INVALID_PARAMETER Specified attribute is not defined. */ sdp_result_e ccsdpSetBandwidth (void *sdp_handle, uint16_t level, uint16_t inst_num, sdp_bw_modifier_e bw_modifier, uint32_t bw_val); /** * Returns a string representation of a codec's name. * * @param[in] rtp_ptype The value taken from the rtp_ptype enumeration * * @return A string representing the name of the codec */ const char * ccsdpCodecName(rtp_ptype ptype); #endif