parser.c File Reference

Parsing module implementation. More...

#include "parserpriv.h"

Go to the source code of this file.

Defines

#define NEXT_LINE(c)

Functions

fsdp_error_t fsdp_parse (const char *text_description, fsdp_description_t *dsc)
static fsdp_error_t fsdp_parse_c (const char **p, fsdp_network_type_t *ntype, fsdp_address_type_t *atype, fsdp_connection_address_t *address)
static fsdp_error_t fsdp_parse_b (const char **p, fsdp_bw_modifier_t **bw_modifiers, unsigned int *bw_modifiers_count)
static fsdp_error_t fsdp_parse_k (const char **p, fsdp_encryption_method_t *method, char **content)
static fsdp_error_t fsdp_parse_rtpmap (fsdp_rtpmap_t ***rtpmap, unsigned int *counter, const char *value)
static fsdp_error_t fsdp_repeat_time_to_uint (const char *time, unsigned long int *seconds)
const char * fsdp_get_wrong_string (const fsdp_description_t *dsc)
unsigned int fsdp_get_version (const fsdp_description_t *dsc)
const char * fsdp_get_owner_username (const fsdp_description_t *dsc)
const char * fsdp_get_session_id (const fsdp_description_t *dsc)
const char * fsdp_get_announcement_version (const fsdp_description_t *dsc)
fsdp_network_type_t fsdp_get_owner_network_type (const fsdp_description_t *dsc)
fsdp_address_type_t fsdp_get_owner_address_type (const fsdp_description_t *dsc)
const char * fsdp_get_owner_address (const fsdp_description_t *dsc)
const char * fsdp_get_name (const fsdp_description_t *dsc)
const char * fsdp_get_information (const fsdp_description_t *dsc)
const char * fsdp_get_uri (const fsdp_description_t *dsc)
unsigned int fsdp_get_emails_count (const fsdp_description_t *dsc)
const char * fsdp_get_email (const fsdp_description_t *dsc, unsigned int index)
unsigned int fsdp_get_phones_count (const fsdp_description_t *dsc)
const char * fsdp_get_phone (const fsdp_description_t *dsc, unsigned int index)
fsdp_network_type_t fsdp_get_global_conn_network_type (const fsdp_description_t *dsc)
fsdp_address_type_t fsdp_get_global_conn_address_type (const fsdp_description_t *dsc)
const char * fsdp_get_global_conn_address (const fsdp_description_t *dsc)
unsigned int fsdp_get_global_conn_address_ttl (const fsdp_description_t *dsc)
unsigned int fsdp_get_global_conn_addresses_count (const fsdp_description_t *dsc)
unsigned int fsdp_get_bw_modifiers_count (const fsdp_description_t *dsc)
fsdp_bw_modifier_type_t fsdp_get_bw_modifier_type (const fsdp_description_t *dsc, unsigned int index)
const char * fsdp_get_bw_modifier_type_unknown (const fsdp_description_t *dsc, unsigned int index)
unsigned long int fsdp_get_bw_value (const fsdp_description_t *dsc, unsigned int index)
unsigned long int fsdp_get_periods_count (const fsdp_description_t *dsc)
time_t fsdp_get_period_start (const fsdp_description_t *dsc, unsigned int index)
time_t fsdp_get_period_stop (const fsdp_description_t *dsc, unsigned int index)
unsigned int fsdp_get_period_repeats_count (const fsdp_description_t *dsc, unsigned int index)
unsigned long int fsdp_get_period_repeat_interval (const fsdp_description_t *dsc, unsigned int index, unsigned int rindex)
unsigned long int fsdp_get_period_repeat_duration (const fsdp_description_t *dsc, unsigned int index, unsigned int rindex)
unsigned long int fsdp_get_period_repeat_offsets_count (const fsdp_description_t *dsc, unsigned int index, unsigned int rindex)
unsigned long int fsdp_get_period_repeat_offsets (const fsdp_description_t *dsc, unsigned int index, unsigned int rindex, unsigned int oindex)
const char * fsdp_get_timezone_adj (const fsdp_description_t *dsc)
unsigned int fsdp_get_unidentified_attributes_count (const fsdp_description_t *dsc)
const char * fsdp_get_unidentified_attribute (const fsdp_description_t *dsc, unsigned int index)
fsdp_encryption_method_t fsdp_get_encryption_method (const fsdp_description_t *dsc)
const char * fsdp_get_encryption_content (const fsdp_description_t *dsc)
unsigned int fsdp_get_rtpmap_count (const fsdp_description_t *dsc)
const char * fsdp_get_rtpmap_payload_type (const fsdp_description_t *dsc, unsigned int index)
const char * fsdp_get_rtpmap_encoding_name (const fsdp_description_t *dsc, unsigned int index)
unsigned int fsdp_get_rtpmap_clock_rate (const fsdp_description_t *dsc, unsigned int index)
const char * fsdp_get_rtpmap_encoding_parameters (const fsdp_description_t *dsc, unsigned int index)
const char * fsdp_get_str_att (const fsdp_description_t *dsc, fsdp_session_str_att_t att)
unsigned int fsdp_get_sdplang_count (const fsdp_description_t *dsc)
const char * fsdp_get_sdplang (const fsdp_description_t *dsc, unsigned int index)
unsigned int fsdp_get_lang_count (const fsdp_description_t *dsc)
const char * fsdp_get_lang (const fsdp_description_t *dsc, unsigned int index)
fsdp_sendrecv_mode_t fsdp_get_sendrecv_mode (const fsdp_description_t *dsc)
fsdp_session_type_t fsdp_get_session_type (const fsdp_description_t *dsc)
unsigned int fsdp_get_media_count (const fsdp_description_t *dsc)
const fsdp_media_description_tfsdp_get_media (const fsdp_description_t *dsc, unsigned int index)
fsdp_media_t fsdp_get_media_type (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_port (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_ports_count (const fsdp_media_description_t *dsc)
fsdp_transport_protocol_t fsdp_get_media_transport_protocol (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_formats_count (const fsdp_media_description_t *dsc)
const char * fsdp_get_media_format (const fsdp_media_description_t *dsc, unsigned int index)
const char * fsdp_get_media_title (const fsdp_media_description_t *dsc)
fsdp_network_type_t fsdp_get_media_network_type (const fsdp_media_description_t *dsc)
fsdp_address_type_t fsdp_get_media_address_type (const fsdp_media_description_t *dsc)
const char * fsdp_get_media_address (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_address_ttl (const fsdp_media_description_t *mdsc)
unsigned int fsdp_get_media_addresses_count (const fsdp_media_description_t *mdsc)
fsdp_bw_modifier_type_t fsdp_get_media_bw_modifier_type (const fsdp_media_description_t *dsc, unsigned int index)
const char * fsdp_get_media_bw_modifier_type_unknown (const fsdp_media_description_t *dsc, unsigned int index)
unsigned long int fsdp_get_media_bw_value (const fsdp_media_description_t *dsc, unsigned int index)
fsdp_encryption_method_t fsdp_get_media_encryption_method (const fsdp_media_description_t *dsc)
const char * fsdp_get_media_encryption_content (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_ptime (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_maxptime (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_rtpmap_count (const fsdp_media_description_t *mdsc)
const char * fsdp_get_media_rtpmap_payload_type (const fsdp_media_description_t *mdsc, unsigned int index)
const char * fsdp_get_media_rtpmap_encoding_name (const fsdp_media_description_t *mdsc, unsigned int index)
unsigned int fsdp_get_media_rtpmap_clock_rate (const fsdp_media_description_t *mdsc, unsigned int index)
const char * fsdp_get_media_rtpmap_encoding_parameters (const fsdp_description_t *mdsc, unsigned int index)
unsigned int fsdp_get_media_sdplang_count (const fsdp_media_description_t *mdsc)
const char * fsdp_get_media_sdplang (const fsdp_media_description_t *mdsc, unsigned int index)
unsigned int fsdp_get_media_lang_count (const fsdp_media_description_t *mdsc)
const char * fsdp_get_media_lang (const fsdp_media_description_t *mdsc, unsigned int index)
unsigned int fsdp_get_media_fmtp_count (const fsdp_media_description_t *mdsc)
const char * fsdp_get_media_fmtp (const fsdp_media_description_t *mdsc, unsigned int index)
fsdp_orient_t fsdp_get_media_orient (const fsdp_media_description_t *dsc)
fsdp_sendrecv_mode_t fsdp_get_media_sendrecv (const fsdp_media_description_t *dsc)
float fsdp_get_media_framerate (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_quality (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_rtcp_port (const fsdp_media_description_t *dsc)
fsdp_network_type_t fsdp_get_media_rtcp_network_type (const fsdp_media_description_t *dsc)
fsdp_address_type_t fsdp_get_media_rtcp_address_type (const fsdp_media_description_t *dsc)
const char * fsdp_get_media_rtcp_address (const fsdp_media_description_t *dsc)
unsigned int fsdp_get_media_unidentified_attributes_count (const fsdp_media_description_t *mdsc)
const char * fsdp_get_media_unidentified_attribute (const fsdp_media_description_t *mdsc, unsigned int index)


Detailed Description

Parsing module implementation.

This file implements the parsing routine fsdp_parse and the fsdp_get_xxxx routines that allow to get the session properties from a session description object build through the application of fsdp_parse to a textual SDP session description.

Definition in file parser.c.


Define Documentation

#define NEXT_LINE  ) 
 

Value:

({                                                                  \
 while ((*(c) != '\0') && (*(c) != '\r') && (*(c) != '\n')) {       \
    (c)++;                                                          \
 }                                                                  \
 if (*(c) == '\n') {                                                \
    (c)++;                                                          \
 } else if (*(c) == '\r') {                                         \
    (c)++;                                                          \
    if (*(c) == '\n') {                                             \
       (c)++;                                                       \
    } else {                                                        \
       return FSDPE_ILLEGAL_CHARACTER;                              \
   }                                                                \
 }                                                                  \
})
Moves the c pointer up to the beginning of the next line.

Parameters:
c char pointer to pointer
Return values:
FSDPE_ILLEGAL_CHARACTER,when an illegal '' character (not followed by a '
') is found, returns

Definition at line 42 of file parser.c.

Referenced by fsdp_parse(), fsdp_parse_b(), fsdp_parse_c(), and fsdp_parse_k().


Function Documentation

const char* fsdp_get_lang const fsdp_description_t dsc,
unsigned int  index
 

Definition at line 1312 of file parser.c.

References fsdp_description_t_s::a_langs, and fsdp_description_t_s::a_langs_count.

unsigned int fsdp_get_lang_count const fsdp_description_t dsc  ) 
 

Definition at line 1304 of file parser.c.

References fsdp_description_t_s::a_langs_count.

const char* fsdp_get_media_format const fsdp_media_description_t dsc,
unsigned int  index
 

Definition at line 1392 of file parser.c.

References fsdp_media_description_t_s::formats.

unsigned int fsdp_get_media_formats_count const fsdp_media_description_t dsc  ) 
 

Definition at line 1384 of file parser.c.

References fsdp_media_description_t_s::formats_count.

unsigned int fsdp_get_rtpmap_clock_rate const fsdp_description_t dsc,
unsigned int  index
 

Definition at line 1258 of file parser.c.

References fsdp_description_t_s::a_rtpmaps, fsdp_description_t_s::a_rtpmaps_count, and fsdp_rtpmap_t::clock_rate.

unsigned int fsdp_get_rtpmap_count const fsdp_description_t dsc  ) 
 

Definition at line 1233 of file parser.c.

References fsdp_description_t_s::a_rtpmaps_count.

const char* fsdp_get_rtpmap_encoding_name const fsdp_description_t dsc,
unsigned int  index
 

Definition at line 1249 of file parser.c.

References fsdp_description_t_s::a_rtpmaps, fsdp_description_t_s::a_rtpmaps_count, and fsdp_rtpmap_t::encoding_name.

const char* fsdp_get_rtpmap_encoding_parameters const fsdp_description_t dsc,
unsigned int  index
 

Definition at line 1266 of file parser.c.

References fsdp_description_t_s::a_rtpmaps, fsdp_description_t_s::a_rtpmaps_count, and fsdp_rtpmap_t::parameters.

const char* fsdp_get_rtpmap_payload_type const fsdp_description_t dsc,
unsigned int  index
 

Definition at line 1241 of file parser.c.

References fsdp_description_t_s::a_rtpmaps, fsdp_description_t_s::a_rtpmaps_count, and fsdp_rtpmap_t::pt.

static fsdp_error_t fsdp_parse_b const char **  p,
fsdp_bw_modifier_t **  bw_modifiers,
unsigned int *  bw_modifiers_count
[static]
 

Definition at line 770 of file parser.c.

References fsdp_description_t_s::bw_modifiers, FSDP_BW_MOD_TYPE_APPLICATION_SPECIFIC, FSDP_BW_MOD_TYPE_CONFERENCE_TOTAL, FSDP_BW_MOD_TYPE_RTCP_RECEIVERS, FSDP_BW_MOD_TYPE_RTCP_SENDERS, FSDP_BW_MOD_TYPE_UNKNOWN, FSDPE_INVALID_BANDWIDTH, FSDPE_OK, MAXSHORTFIELDLEN, MSFLENS, and NEXT_LINE.

static fsdp_error_t fsdp_parse_c const char **  p,
fsdp_network_type_t ntype,
fsdp_address_type_t atype,
fsdp_connection_address_t address
[static]
 

Definition at line 718 of file parser.c.

References fsdp_connection_address_t_s::address, fsdp_connection_address_t_s::address_count, fsdp_connection_address_t_s::address_ttl, FSDP_ADDRESS_TYPE_IPV4, FSDP_ADDRESS_TYPE_IPV6, FSDP_NETWORK_TYPE_INET, FSDPE_INVALID_CONNECTION, FSDPE_INVALID_CONNECTION_ADDRTYPE, FSDPE_INVALID_CONNECTION_NETTYPE, FSDPE_OK, MAXSHORTFIELDLEN, MSFLENS, and NEXT_LINE.

static fsdp_error_t fsdp_parse_k const char **  p,
fsdp_encryption_method_t method,
char **  content
[static]
 

Definition at line 813 of file parser.c.

References FSDP_ENCRYPTION_METHOD_BASE64, FSDP_ENCRYPTION_METHOD_CLEAR, FSDP_ENCRYPTION_METHOD_PROMPT, FSDP_ENCRYPTION_METHOD_URI, FSDPE_INVALID_ENCRYPTION_METHOD, FSDPE_OK, MAXLONGFIELDLEN, MAXSHORTFIELDLEN, MLFLENS, and NEXT_LINE.

static fsdp_error_t fsdp_parse_rtpmap fsdp_rtpmap_t ***  rtpmap,
unsigned int *  counter,
const char *  value
[static]
 

Definition at line 842 of file parser.c.

References fsdp_rtpmap_t::clock_rate, fsdp_rtpmap_t::encoding_name, FSDPE_INVALID_ATTRIBUTE_RTPMAP, FSDPE_OK, MAXLONGFIELDLEN, MAXSHORTFIELDLEN, MEDIA_RTPMAPS_MAX_COUNT, fsdp_rtpmap_t::parameters, and fsdp_rtpmap_t::pt.

static fsdp_error_t fsdp_repeat_time_to_uint const char *  time,
unsigned long int *  seconds
[static]
 

Definition at line 887 of file parser.c.

References FSDPE_INVALID_REPEAT, and FSDPE_OK.


Generated on Wed May 3 13:49:06 2006 for FreeSDP by  doxygen 1.4.6