зеркало из https://github.com/mozilla/gecko-dev.git
213 строки
5.0 KiB
C
213 строки
5.0 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/. */
|
|
|
|
#ifndef __CCSDP_H__
|
|
#define __CCSDP_H__
|
|
|
|
#include "cpr_types.h"
|
|
#include "ccsdp_rtcp_fb.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_TELEPHONE_EVENT = 101,
|
|
RTP_L16 = 102,
|
|
RTP_H263 = 103,
|
|
RTP_ILBC = 116, /* used only to make an offer */
|
|
RTP_OPUS = 109,
|
|
RTP_VP8 = 120,
|
|
RTP_VP9 = 121,
|
|
RTP_RED = 122,
|
|
RTP_ULPFEC = 123,
|
|
RTP_I420 = 124,
|
|
RTP_ISAC = 124,
|
|
RTP_RTX = 125
|
|
} 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_EMPTY_TOKEN,
|
|
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_SCTPMAP,
|
|
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_ICE_LITE,
|
|
SDP_ATTR_RTCP_MUX,
|
|
SDP_ATTR_DTLS_FINGERPRINT,
|
|
SDP_ATTR_MAXPTIME,
|
|
SDP_ATTR_RTCP_FB, /* RFC 4585 */
|
|
SDP_ATTR_SETUP,
|
|
SDP_ATTR_CONNECTION,
|
|
SDP_ATTR_EXTMAP, /* RFC 5285 */
|
|
SDP_ATTR_IDENTITY,
|
|
SDP_ATTR_MSID,
|
|
SDP_ATTR_MSID_SEMANTIC,
|
|
SDP_ATTR_BUNDLE_ONLY,
|
|
SDP_ATTR_END_OF_CANDIDATES,
|
|
SDP_ATTR_ICE_OPTIONS,
|
|
SDP_ATTR_SSRC,
|
|
SDP_ATTR_IMAGEATTR,
|
|
SDP_ATTR_SIMULCAST,
|
|
SDP_ATTR_RID,
|
|
SDP_ATTR_DTLS_MESSAGE,
|
|
SDP_ATTR_SCTPPORT,
|
|
SDP_ATTR_MAXMESSAGESIZE,
|
|
SDP_ATTR_SSRC_GROUP,
|
|
SDP_ATTR_RTCP_RSIZE,
|
|
SDP_MAX_ATTR_TYPES,
|
|
SDP_ATTR_INVALID
|
|
} sdp_attr_e;
|
|
|
|
typedef enum {
|
|
SDP_SETUP_NOT_FOUND = -1,
|
|
SDP_SETUP_ACTIVE = 0,
|
|
SDP_SETUP_PASSIVE,
|
|
SDP_SETUP_ACTPASS,
|
|
SDP_SETUP_HOLDCONN,
|
|
SDP_MAX_SETUP,
|
|
SDP_SETUP_UNKNOWN
|
|
} sdp_setup_type_e;
|
|
|
|
#endif
|