660 lines
27 KiB
C
660 lines
27 KiB
C
/* 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.
|
|
* <pre>
|
|
* 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.
|
|
* </pre>
|
|
*/
|
|
|
|
#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.
|
|
* <pre>
|
|
* 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
|
|
* </pre>
|
|
* @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
|