📄 rvsdpprsaux.h
字号:
/******************************************************************************
Filename :rvsdpprsaux.h
Description :SDP parser auxiliary (reduction) functions
******************************************************************************
Copyright (c) 1999 RADVision Inc.
************************************************************************
NOTICE:
This document contains information that is proprietary to RADVision LTD.
No part of this publication may be reproduced in any form whatsoever
without written prior approval by RADVision LTD..
RADVision LTD. reserves the right to revise this publication and make
changes without obligation to notify any person of such revisions or
changes.
******************************************************************************
$Revision:1.0$
$Date:7/18/99$
$Author:Dan Elbert$
******************************************************************************/
#ifndef RV_SDP_PRSAUX_H
#define RV_SDP_PRSAUX_H
#include "rvsdpmsg.h"
#include "rvstr.h"
#if defined(__cplusplus)
extern "C" {
#endif
#if !defined(RV_SDP_DECLSPEC)
#define RV_SDP_DECLSPEC
#endif
typedef enum {
RV_SDPPARSER_STOP_ERROR = 0,
RV_SDPPARSER_STOP_ZERO,
RV_SDPPARSER_STOP_BLANKLINE,
RV_SDPPARSER_STOP_DOTLINE,
RV_SDPPARSER_STOP_CLOSEBRACE,
RV_SDPPARSER_PARSING
} RvSdpParseStatus;
typedef struct {
RvSdpParseStatus stat;
char * cur_token;
char * cur_line;
RvpStrPtrN cur_nettype;
RvpStrPtrN cur_addrtype;
RvpStrPtrN cur_addr;
RvSdpMsg * cur_sdp;
RvSdpMediaDescr * cur_media_descr;
RvSdpCommonFields * cur_sdp_fields;
RvSdpSessionTime * cur_session_time;
RvSdpTypedTime cur_typed_time;
RvSdpRepeatInterval * cur_repeat;
int ttl,num_addr;
int vcid_type[4];
int vcid_len[4];
RvStringList vcid_value;
} RvSdpParserState_;
RV_SDP_DECLSPEC void rvSdpParseAuxAddSessionTime(RvSdpParserState_ * state,RvUint32 start,RvUint32 stop);
RV_SDP_DECLSPEC void rvSdpParseAuxAddSessionRepeatField(RvSdpParserState_ * state,RvSdpTypedTime time);
RV_SDP_DECLSPEC void rvSdpParseAuxSetRepeatActiveDuration(RvSdpParserState_ * state,RvSdpTypedTime time);
RV_SDP_DECLSPEC void rvSdpParseAuxAddRepeatOffset(RvSdpParserState_ * state,RvSdpTypedTime time);
RV_SDP_DECLSPEC void rvSdpParseAuxAddZoneAdjustment(RvSdpParserState_ * state,RvUint32 time,RvInt32 offset_time,RvSdpTimeUnit offset_units);
RV_SDP_DECLSPEC void rvSdpParseAuxAddSdpMedia(RvSdpParserState_ * state,RvpStrPtrN media,int port,int subport,RvpStrPtrN proto_);
RV_SDP_DECLSPEC void rvSdpParseAuxAddSdpMediaNAS(RvSdpParserState_ * state,int port,int subport,char * access_method,size_t len);
RV_SDP_DECLSPEC void rvSdpParserAuxSetDescrCtrlMethodN(RvSdpParserState_ * state,const char* cm,size_t);
RV_SDP_DECLSPEC void rvSdpParseAuxAddMediaDescrFormatN(RvSdpParserState_ * state,const char* fmt,size_t len);
RV_SDP_DECLSPEC void rvSdpParserAuxSaveAddr(RvSdpParserState_ * state,const char * nettype,size_t nlen,
const char * addrtype,size_t alen,const char * connaddr,size_t calen);
RV_SDP_DECLSPEC void rvSdpParserAuxSetConnectionN(RvSdpParserState_ * state);
RV_SDP_DECLSPEC void rvSdpParserAuxSetOriginN(RvSdpParserState_ * state,RvSdpMsg * sdp,const char * username,size_t ulen,
const char * sess_id,size_t slen,const char * version,size_t vlen);
RV_SDP_DECLSPEC void rvSdpParserAuxSetKeyN(RvSdpParserState_ * state,RvpStrPtrN key_type,const char * data,int data_len);
/* Parsing functions */
RV_SDP_DECLSPEC RvSdpMsg * rvSdpMsgConstructParseA(RvSdpMsg * sdp,char * msg,int * len,RvSdpParseStatus * stat,RvAlloc * a);
RV_SDP_DECLSPEC RvSdpMsg * rvSdpMsgConstructParse(RvSdpMsg * sdp,char * msg,int * len,RvSdpParseStatus * stat);
/* Error functions used by the parser */
RV_SDP_DECLSPEC void rvSdpParseSetSyntaxErr(void * pcb_);
RV_SDP_DECLSPEC void rvSdpParseSetSemErr(void * pcb_,const char * msg);
RV_SDP_DECLSPEC void rvSdpParserAuxValidateFieldLength(void * pcb_,int length,int max);
/* VcId and Transport */
void rvSdpParserAuxSetVcIdN(RvSdpParserState_ * state);
void rvSdpParserAuxSaveVcId(RvSdpParserState_ * state,int type, const char *value, int len);
#if defined(__cplusplus)
}
#endif
#endif /* RV_SDP_PRSAUX_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -