diff options
Diffstat (limited to 'stream/freesdp/priv.h')
-rw-r--r-- | stream/freesdp/priv.h | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/stream/freesdp/priv.h b/stream/freesdp/priv.h deleted file mode 100644 index 07d6e3dfb3..0000000000 --- a/stream/freesdp/priv.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - 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 5 - -END_C_DECLS -#endif /* FSDP_PRIV_H */ |