⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 priv.h.svn-base

📁 SDP文件解析代码
💻 SVN-BASE
字号:
/*  This file is part of FreeSDP  Copyright (C) 2001,2002,2003 Federico Montesino Pouzols <fedemp@altern.org>  FreeSDP is free software; you can redistribute it and/or modify it  under the terms of the GNU General Public License as published by  the Free Software Foundation; either version 2 of the License, or  (at your option) any later version.  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.  You should have received a copy of the GNU General Public License  along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  Benjamin Zores, (C) 2006    added support in parser for the a=control: lines.    added support in parser for the a=range: lines.*//** * @file priv.h * * @short Common private header for both formatting and parsing modules. **/#ifndef FSDP_PRIV_H#define FSDP_PRIV_H#include <stdio.h>#include <stdlib.h>#include <string.h>#include "common.h"#define NTP_EPOCH_OFFSET 2208988800UL#define FSDP_MAX_LENGTH 2000/* Tags for doxygen documentation *//** * @mainpage FreeSDP Library Reference Manual * @section overview Overview (README) * @verbinclude ../../README * **//** * @example formatdemo.c *  * A basic SDP descriptions formatter based on FreeSDP. **//** * @example parsedemo.c *  * A basic SDP descriptions parser based on FreeSDP. **//* Private routines declarations */BEGIN_C_DECLS/** * @short bandwidth modifier * * Holds type of modifier and value. Also holds the literal bandwidth * modifier if unknown. **/  typedef struct{  fsdp_bw_modifier_type_t b_mod_type;  unsigned long int b_value;  char *b_unknown_bw_modt;} fsdp_bw_modifier_t;/** * @short a=rtpmap: attribute * * Holds payload type, enconding name, RTP clock rate, and encofing * parameters. **/typedef struct{  char *pt;  char *encoding_name;  unsigned int clock_rate;  char *parameters;} fsdp_rtpmap_t;/** * @short Connection address specification * * Holds address (unicast or multicast) as well as TTL and number of * ports, when it is an IP4 multicast address. **/typedef struct fsdp_connection_address_t_s{  char *address;  unsigned int address_ttl;  unsigned int address_count;} fsdp_connection_address_t;/** * @short Struct for each media in a session description. **/struct fsdp_media_description_t_s{  /* from `m=<media>  <port>  <transport> <fmt list>' line */  fsdp_media_t media_type;  unsigned int port;  unsigned int port_count;  fsdp_transport_protocol_t transport;  char **formats;  unsigned int formats_count;  /* from i=<media title> */  char *i_title;  /* from `c=<network type> <address type> <connection address>' line     (optional) */  fsdp_network_type_t c_network_type;  fsdp_address_type_t c_address_type;  fsdp_connection_address_t c_address;  /* from `b=<modifier>:<bandwidth-value>' lines (optional) */  fsdp_bw_modifier_t *bw_modifiers;  unsigned int bw_modifiers_count;  /* from `k=<method>' or `k=<method>:<encryption key>' line     (optional) */  fsdp_encryption_method_t k_encryption_method;  char *k_encryption_content;  /* from `a=<attribute>' or `a=<attribute>:<value>' lines (opt) */  unsigned long int a_ptime;  unsigned long int a_maxptime;  /* rtpmap */  fsdp_rtpmap_t **a_rtpmaps;  unsigned int a_rtpmaps_count;  fsdp_orient_t a_orient;  fsdp_sendrecv_mode_t a_sendrecv_mode;  char **a_sdplangs;  unsigned int a_sdplangs_count;  char **a_langs;  unsigned int a_langs_count;  char **a_controls;  unsigned int a_controls_count;  char *a_range;  float a_framerate;  unsigned int a_quality;  char **a_fmtps;  unsigned int a_fmtps_count;  /* rtcp attribute */  unsigned int a_rtcp_port;  fsdp_network_type_t a_rtcp_network_type;  fsdp_address_type_t a_rtcp_address_type;  char *a_rtcp_address;  /* media attributes that are not directly supported */  char **unidentified_attributes;  unsigned int unidentified_attributes_count;};typedef struct fsdp_media_description_t_s fsdp_media_announcement_t;/** * @short Information for a repeat (struct for r= lines) **/typedef struct{  /* times in seconds */  unsigned long int interval;  unsigned long int duration;  unsigned long int *offsets;  unsigned int offsets_count;} fsdp_repeat_t;/** * @short Information about a time period * * The start and stop times as well as the information from the r= * lines for a t= line are stored in this structures. **/typedef struct{  time_t start;  time_t stop;  fsdp_repeat_t **repeats;  unsigned int repeats_count;} fsdp_time_period_t;/** * @short Struct for session descriptions. **/struct fsdp_description_t_s{  /* from v=... line */  unsigned int version;  /* from o=... line */  char *o_username;  char *o_session_id;  char *o_announcement_version;  fsdp_network_type_t o_network_type;  fsdp_address_type_t o_address_type;  char *o_address;  /* from s=... line */  char *s_name;  /* from i=... line (opt) */  char *i_information;  /* from u=... line (opt) */  char *u_uri;  /* from e=... lines (0 or more) */  const char **emails;  unsigned int emails_count;  /* from p=... lines (0 or more) */  const char **phones;  unsigned int phones_count;  /* from `c=<network type> <address type> <connection address>' line */  fsdp_network_type_t c_network_type;  fsdp_address_type_t c_address_type;  fsdp_connection_address_t c_address;  /* from `b=<modifier>:<bandwidth-value>' lines (optional) */  fsdp_bw_modifier_t *bw_modifiers;  unsigned int bw_modifiers_count;  /* from `t=<start time>  <stop time>' lines (1 or more) */  /* from `r=<repeat interval> <active duration> <list of offsets from     start-time>' */  fsdp_time_period_t **time_periods;  unsigned int time_periods_count;  /* from `z=<adjustment time> <offset> <adjustment time> <offset>     ....' lines */  char *timezone_adj;  /* from `k=<method>' or `k=<method>:<encryption key>' line (opt) */  fsdp_encryption_method_t k_encryption_method;  char *k_encryption_content;  /* from `a=<attribute>' or `a=<attribute>:<value>' lines (opt) */  char *a_category;  char *a_keywords;  char *a_tool;  char *a_range;  /* rtpmap */  fsdp_rtpmap_t **a_rtpmaps;  unsigned int a_rtpmaps_count;  fsdp_sendrecv_mode_t a_sendrecv_mode;  fsdp_session_type_t a_type;  char *a_charset;  char **a_sdplangs;  unsigned int a_sdplangs_count;  char **a_langs;  unsigned int a_langs_count;  char **a_controls;  unsigned int a_controls_count;  /* from `m=<media> <port>/<number of ports> <transport> <fmt list>'     lines [one or more] */  fsdp_media_announcement_t **media_announcements;  unsigned int media_announcements_count;  /* session attributes that are not directly supported */  char **unidentified_attributes;  unsigned int unidentified_attributes_count;};#define MEDIA_RTPMAPS_MAX_COUNT 5#define SDPLANGS_MAX_COUNT 5#define SDPCONTROLS_MAX_COUNT 10#define UNIDENTIFIED_ATTRIBUTES_MAX_COUNT 5END_C_DECLS#endif /* FSDP_PRIV_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -