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

📄 rvsdpobjs.h

📁 h.248协议源码
💻 H
📖 第 1 页 / 共 3 页
字号:
	int				ttl,num_addr;
} RvSdpConnection;

RV_SDP_DECLSPEC RvSdpConnection* rvSdpConnectionConstructN(RvSdpConnection *connection,
										   RvSdpNetType nettype,
										   RvSdpAddrType addrtype,
										   const char* address,size_t len,RvAlloc* alloc);
#define rvSdpConnectionConstructA(c,n,at,a,al) rvSdpConnectionConstructN(c,n,at,a,strlen(a),al);
#define rvSdpConnectionConstruct(c,n,at,a) rvSdpConnectionConstructN(c,n,at,a,strlen(a),&rvDefaultAlloc);

RV_SDP_DECLSPEC RvSdpConnection* rvSdpConnectionCopy(RvSdpConnection *d,const RvSdpConnection* s);
RV_SDP_DECLSPEC RvSdpConnection* rvSdpConnectionConstructCopyA(RvSdpConnection *d,const RvSdpConnection* s,RvAlloc* alloc);
RV_SDP_DECLSPEC RvSdpConnection* rvSdpConnectionConstructCopy(RvSdpConnection *d,const RvSdpConnection* s);
RV_SDP_DECLSPEC void rvSdpConnectionDestruct(RvSdpConnection *connection);

/*void rvSdpConnectionSetNetType(RvSdpConnection *connection,RvSdpNetType type);*/
#define rvSdpConnectionSetNetType(c,t) ((c)->nettype=t)
/*RvSdpNetType	rvSdpConnectionGetNetType(const RvSdpConnection *connection);*/
#define rvSdpConnectionGetNetType(c) ((c)->nettype)

RV_SDP_DECLSPEC void rvSdpConnectionSetNetTypeStr(RvSdpConnection *connection,const char* type);
RV_SDP_DECLSPEC void rvSdpConnectionSetNetTypeStrN(RvSdpConnection *connection,const char* type,size_t n);
RV_SDP_DECLSPEC const char* rvSdpConnectionGetNetTypeStr(const RvSdpConnection *connection);

/*void rvSdpConnectionSetAddrType(RvSdpConnection *connection,RvSdpAddrType type);*/
#define rvSdpConnectionSetAddrType(c,t) ((c)->addrtype=t)
/*RvSdpAddrType	rvSdpConnectionGetAddrType(const RvSdpConnection *connection);*/
#define rvSdpConnectionGetAddrType(c) ((c)->addrtype)

RV_SDP_DECLSPEC void rvSdpConnectionSetAddrTypeStr(RvSdpConnection *c,const char* t);
RV_SDP_DECLSPEC void rvSdpConnectionSetAddrTypeStrN(RvSdpConnection *c,const char* t,size_t n);
RV_SDP_DECLSPEC const char* rvSdpConnectionGetAddrTypeStr(const RvSdpConnection* c);

/*void rvSdpConnectionSetAddress(RvSdpConnection *connection,const char* addr);*/
#define rvSdpConnectionSetAddress(c,a)  rvSdpStringAssign(&(c)->address,a)
/*const char* rvSdpConnectionGetAddress(const RvSdpConnection *connection);*/
#define rvSdpConnectionGetAddress(c)	rvSdpStringGetData(&(c)->address)

RV_SDP_DECLSPEC void rvSdpConnectionSetAddressTTL(RvSdpConnection *connection,int ttl);
/*#define rvSdpConnectionSetAddressTTL(c,ttl) ((c)->ttl=ttl)*/
/*int rvSdpConnectionGetAddressTTL(const RvSdpConnection *connection);*/
#define rvSdpConnectionGetAddressTTL(c)		((c)->ttl)

/*void rvSdpConnectionSetAddressNum(RvSdpConnection *connection,int num);*/
#define rvSdpConnectionSetAddressNum(c,n)	((c)->num_addr=n)
/*int rvSdpConnectionGetAddressNum(const RvSdpConnection *connection);*/
#define rvSdpConnectionGetAddressNum(c)		((c)->num_addr)

/******************* Key methods ********************************/
typedef struct RvSdpKey {
	/* Key fields */
	RvSdpEncrMethod	type;	/* prompt,clear,base64,uri */
#ifdef RV_SDPSYMB_USESTRING
	RvString		type_str;
#endif
	RvString		data;	/* including uri */
} RvSdpKey;

RV_SDP_DECLSPEC RvSdpKey* rvSdpKeyConstructN(RvSdpKey *key,RvSdpEncrMethod type,
							  const char* data,size_t len,RvAlloc* alloc);
#define rvSdpKeyConstructA(k,t,d,a) rvSdpKeyConstructN(k,t,d,strlen(d),a)
#define rvSdpKeyConstruct(k,t,d,a)	rvSdpKeyConstructA(k,t,d,&rvDefaultAlloc)

RV_SDP_DECLSPEC RvSdpKey* rvSdpKeyCopy(RvSdpKey *d,const RvSdpKey* s);
RV_SDP_DECLSPEC RvSdpKey* rvSdpKeyConstructCopyA(RvSdpKey *d,const RvSdpKey* s,RvAlloc* a);
RV_SDP_DECLSPEC RvSdpKey* rvSdpKeyConstructCopy(RvSdpKey *d,const RvSdpKey* s);
RV_SDP_DECLSPEC void rvSdpKeyDestruct(RvSdpKey *key);

/*void rvSdpKeySetType(RvSdpKey *key,RvSdpEncrMethod method);*/
#define rvSdpKeySetType(key,m) ((key)->type=m)
/*RvSdpEncrMethod rvSdpKeyGetType(const RvSdpKey *key);*/
#define rvSdpKeyGetType(key) ((key)->type)

RV_SDP_DECLSPEC void rvSdpKeySetTypeStr(RvSdpKey *key,const char* method);
RV_SDP_DECLSPEC void rvSdpKeySetTypeStrN(RvSdpKey *key,const char* method,size_t n);
RV_SDP_DECLSPEC const char* rvSdpKeyGetTypeStr(const RvSdpKey *key);

/*void rvSdpKeySetData(RvSdpKey *key,const char* data);*/
#define rvSdpKeySetData(key,data) rvSdpStringAssign(&(key)->data,data)
/*const char* rvSdpKeyGetData(const RvSdpKey *key);*/
#define rvSdpKeyGetData(key) rvSdpStringGetData(&(key)->data)

/******************* Attribute methods ********************************/
typedef int RvSdpAttrType;

typedef struct RvSdpAttribute_{
	RvString name;
	RvString value;
} RvSdpAttribute;

rvDeclareList(RvSdpAttribute)
typedef RvList(RvSdpAttribute) RvSdpAttributeList;
#define rvSdpAttributeListConstructA rvListConstruct(RvSdpAttribute)
#define rvSdpAttributeListConstructCopy rvListConstructCopy(RvSdpAttribute)
#define rvSdpAttributeListDestruct rvListDestruct(RvSdpAttribute)
#define rvSdpAttributeListCopy rvListCopy(RvSdpAttribute)
#define rvSdpAttributeListEqual rvListEqual(RvSdpAttribute)
#define rvSdpAttributeListAdd rvListPushBack(RvSdpAttribute)
#define rvSdpAttributeListClear rvListClear(RvSdpAttribute)
#define rvSdpAttributeListGetSize rvListSize
#define rvSdpAttributeListGetElem rvListAt(RvSdpAttribute)

#define RvSdpAttributeConstructCopy	rvSdpAttributeConstructCopyA
#define RvSdpAttributeDestruct	rvSdpAttributeDestruct
#define RvSdpAttributeCopy	rvSdpAttributeCopy
#define RvSdpAttributeEqual(d,s) rvSdpMemEqual(d,s,RvSdpAttribute)

RV_SDP_DECLSPEC RvSdpAttribute* rvSdpAttributeConstructN(RvSdpAttribute* x,const char* name,size_t nlen,const char* value,size_t vlen,RvAlloc* a) ;
#define rvSdpAttributeConstructA(x,n,v,a) rvSdpAttributeConstructN(x,n,strlen(n),v,strlen(v),a)
#define rvSdpAttributeConstruct(x,n,v) rvSdpAttributeConstructA(x,n,v,&rvDefaultAlloc)

RV_SDP_DECLSPEC RvSdpAttribute* rvSdpAttributeConstructCopyA(RvSdpAttribute* d,const RvSdpAttribute* s,RvAlloc* alloc);
RV_SDP_DECLSPEC RvSdpAttribute* rvSdpAttributeConstructCopy(RvSdpAttribute* d,const RvSdpAttribute* s);
RV_SDP_DECLSPEC void rvSdpAttributeDestruct(RvSdpAttribute* x);
RV_SDP_DECLSPEC RvSdpAttribute* rvSdpAttributeCopy(RvSdpAttribute* d,const RvSdpAttribute* s);

/*void rvSdpAttributeSetName(RvSdpAttribute*  a,const char* name);*/
#define	rvSdpAttributeSetName(a,new_name)  rvSdpStringAssign(&(a)->name,new_name)
/*const char*	rvSdpAttributeGetName(const RvSdpAttribute*  a);*/
#define	rvSdpAttributeGetName(a) rvSdpStringGetData(&(a)->name)

/*void rvSdpAttributeSetValue(RvSdpAttribute*  a,const char* value);*/
#define	rvSdpAttributeSetValue(a,new_value)   rvSdpStringAssign(&(a)->value,new_value)
/*const char*	rvSdpAttributeGetValue(const RvSdpAttribute*  a);*/
#define	rvSdpAttributeGetValue(a)  rvSdpStringGetData(&(a)->value)


/***************** Rtp map *****************************************/
/*
     a=rtpmap:<payload type> <encoding name>/<clock rate>[/<encoding
     parameters>]
*/

typedef struct RvSdpRtpMap_{
	int			payload;
	RvString	enc_name;
	RvUint32	clock_rate;
/*	int			channels; */
	RvString    enc_parameters;
} RvSdpRtpMap;

rvDeclareList(RvSdpRtpMap)
typedef RvList(RvSdpRtpMap) RvSdpRtpMapList;
#define rvSdpRtpMapListConstructA rvListConstruct(RvSdpRtpMap)
#define rvSdpRtpMapListConstructCopy rvListConstructCopy(RvSdpRtpMap)
#define rvSdpRtpMapListDestruct rvListDestruct(RvSdpRtpMap)
#define rvSdpRtpMapListCopy rvListCopy(RvSdpRtpMap)
#define rvSdpRtpMapListEqual rvListEqual(RvSdpRtpMap)
#define rvSdpRtpMapListAdd rvListPushBack(RvSdpRtpMap)
#define rvSdpRtpMapListClear rvListClear(RvSdpRtpMap)
#define rvSdpRtpMapListGetSize rvListSize
#define rvSdpRtpMapListGetElem rvListAt(RvSdpRtpMap)

#define RvSdpRtpMapConstructCopy	rvSdpRtpMapConstructCopyA
#define RvSdpRtpMapDestruct	rvSdpRtpMapDestruct
#define RvSdpRtpMapCopy	rvSdpRtpMapCopy
#define RvSdpRtpMapEqual(d,s) rvSdpMemEqual(d,s,RvSdpRtpMap)

RV_SDP_DECLSPEC RvSdpRtpMap* rvSdpRtpMapConstructN(RvSdpRtpMap* x,int payload,const char* encoding_name,size_t len,int rate,RvAlloc* a) ;
#define rvSdpRtpMapConstructA(x,p,e,r,a) rvSdpRtpMapConstructN(x,p,e,strlen(e),r,a)
#define rvSdpRtpMapConstruct(x,p,e,r) rvSdpRtpMapConstructA(x,p,e,r,&rvDefaultAlloc)

RV_SDP_DECLSPEC RvSdpRtpMap* rvSdpRtpMapConstructCopyA(RvSdpRtpMap* d,const RvSdpRtpMap* s,RvAlloc* alloc);
RV_SDP_DECLSPEC RvSdpRtpMap* rvSdpRtpMapConstructCopy(RvSdpRtpMap* d,const RvSdpRtpMap* s);
RV_SDP_DECLSPEC void rvSdpRtpMapDestruct(RvSdpRtpMap* x);
RV_SDP_DECLSPEC RvSdpRtpMap* rvSdpRtpMapCopy(RvSdpRtpMap* d,const RvSdpRtpMap* s);


/* Defaults number of channels is 1 for audio, NA for video */

/*void rvSdpRtpMapSetPayload(RvSdpRtpMap*  x,int payload);*/
#define	rvSdpRtpMapSetPayload(x,p)	((x)->payload=p) 
/*int rvSdpRtpMapGetPayload(const RvSdpRtpMap*  x);*/
#define	rvSdpRtpMapGetPayload(x)	((x)->payload) 

/*void rvSdpRtpMapSetEncodingName(RvSdpRtpMap*  x,const char* name); */
#define	rvSdpRtpMapSetEncodingName(x,n)	rvSdpStringAssign(&(x)->enc_name,n)
/*const char* rvSdpRtpMapGetEncodingName(const RvSdpRtpMap*  x);*/
#define	rvSdpRtpMapGetEncodingName(x)	rvSdpStringGetData(&(x)->enc_name)

/*void rvSdpRtpMapSetClockRate(RvSdpRtpMap*  x,int rate);*/
#define	rvSdpRtpMapSetClockRate(x,rate)	((x)->clock_rate=rate)
/*int rvSdpRtpMapGetClockRate(const RvSdpRtpMap*  x);*/
#define	rvSdpRtpMapGetClockRate(x)		((x)->clock_rate)

RV_SDP_DECLSPEC void rvSdpRtpMapSetEncodingParameters(RvSdpRtpMap*  x,const char* parameters);			
RV_SDP_DECLSPEC void rvSdpRtpMapSetEncodingParametersN(RvSdpRtpMap*  x,const char* parameters,int len);
/*const char* rvSdpRtpMapGetEncodingParameters(const RvSdpRtpMap*  x);*/
#define	rvSdpRtpMapGetEncodingParameters(x) rvStringGetData(&(x)->enc_parameters)

RV_SDP_DECLSPEC void rvSdpRtpMapSetChannels(RvSdpRtpMap*  x,int channels);
RV_SDP_DECLSPEC int rvSdpRtpMapGetChannels(const RvSdpRtpMap*  x);

/***************** Common fields *****************************************/

typedef struct {
	RvString			information;
	RvSdpBandwidth*		bandwidth;
	RvSdpConnection*	connection;

	RvSdpKey*			key;
	RvSdpConnectionMode	send_mode;

	/* List of attributes */
	RvSdpAttributeList	attr_list;
	/* List of rtp maps */
	RvSdpRtpMapList		rtp_map_list;

} RvSdpCommonFields;		/* Fields common to session level and and media description level */

RV_SDP_DECLSPEC void rvSdpCommonFieldsConstruct(RvSdpCommonFields* c,RvAlloc* a);
RV_SDP_DECLSPEC void rvSdpCommonFieldsDestruct(RvSdpCommonFields* c,RvAlloc* a);
RV_SDP_DECLSPEC void rvSdpCommonFieldsSetConnectionN(RvSdpCommonFields* fields,RvSdpNetType type,RvSdpAddrType addr_type,const char* addr,int addr_len,RvAlloc* alloc); 
RV_SDP_DECLSPEC void rvSdpCommonFieldsSetKeyN(RvSdpCommonFields* fields,RvSdpEncrMethod em,const char* key,int key_len,RvAlloc* alloc);		
RV_SDP_DECLSPEC void rvSdpCommonFieldsSetKeyCopy(RvSdpCommonFields* fields,RvSdpKey* s,RvAlloc* alloc);
RV_SDP_DECLSPEC RvSdpAttribute * rvSdpCommonFieldsAddAttrN(RvSdpCommonFields* fields, const char *name, size_t nlen, const char* value, size_t vlen,RvAlloc* alloc); 
RV_SDP_DECLSPEC RvSdpRtpMap* rvSdpCommonFieldsAddRtpMapN(RvSdpCommonFields* fields,int payload,const char* encoding_name,size_t len,int rate,RvAlloc* a);
RV_SDP_DECLSPEC void rvSdpCommonFieldsSetInformationN(RvSdpCommonFields* fields, const char *info, size_t len);
RV_SDP_DECLSPEC void rvSdpCommonFieldsSetBandwidthN(RvSdpCommonFields* fields, const char *bwtype, size_t len,int b,RvAlloc* alloc);

/*void rvSdpCommonFieldsSetConnectionMode(RvSdpCommonFields* fields,RvSdpConnectionMode mode);*/
#define rvSdpCommonFieldsSetConnectionMode(fields,mode) ((fields)->send_mode = mode)
/*RvSdpConnectionMode rvSdpCommonFieldsGetConnectionMode(RvSdpCommonFields* fields);*/
#define rvSdpCommonFieldsGetConnectionMode(fields) ((fields)->send_mode)

#if defined(__cplusplus)
}
#endif

#endif /* RV_SDPOBJS_H */

⌨️ 快捷键说明

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