200 lines
6.1 KiB
C
200 lines
6.1 KiB
C
#ifndef _AV_SENDBACK_H
|
||
#define _AV_SENDBACK_H
|
||
|
||
/*魔数*/
|
||
#define AV_MAGIC_VALUE 0x8739
|
||
|
||
/*消息类型*/
|
||
#define AV_TYPE_META 0x01
|
||
#define AV_TYPE_DATA 0x02
|
||
#define AV_TYPE_RESULT 0x11
|
||
|
||
/*协议类型*/
|
||
#define PROTOCOL_DEFAULT 0x00
|
||
#define PROTOCOL_HTTP 0x01
|
||
#define PROTOCOL_SMTP 0x02
|
||
#define PROTOCOL_POP3 0x03
|
||
#define PROTOCOL_IMAP 0x04
|
||
#define PROTOCOL_FTP 0x05
|
||
#define PROTOCOL_HTTP_PIC 0x06
|
||
#define PROTOCOL_RTSP_RDT 0x07
|
||
#define PROTOCOL_RTSP_RTP 0x08
|
||
#define PROTOCOL_MMS 0x09
|
||
#define PROTOCOL_RTMP 0x0A
|
||
#define PROTOCOL_SIP 0x0B
|
||
|
||
/*媒体类型*/
|
||
#define MEDIA_TYPE_UNKNOWN 0x00
|
||
/*媒体类型:视频支持的媒体类型*/
|
||
#define MEDIA_TYPE_VIDEO 0x01
|
||
#define MEDIA_TYPE_WMV 0x02
|
||
#define MEDIA_TYPE_MPG 0x03
|
||
#define MEDIA_TYPE_FLV 0x04
|
||
#define MEDIA_TYPE_RMFF 0x05
|
||
#define MEDIA_TYPE_AVI 0x06
|
||
#define MEDIA_TYPE_SWF 0x07
|
||
#define MEDIA_TYPE_MPG4 0x08
|
||
#define MEDIA_TYPE_AIFF 0x09
|
||
#define MEDIA_TYPE_OGG 0x0A
|
||
#define MEDIA_TYPE_DRC 0x0B
|
||
#define MEDIA_TYPE_DIRECTSHOW 0x0C
|
||
#define MEDIA_TYPE_FLIC 0x0E
|
||
#define MEDIA_TYPE_INDEO 0x0F
|
||
#define MEDIA_TYPE_MKV 0x10
|
||
/*媒体类型:音频支持的媒体类型*/
|
||
#define MEDIA_TYPE_AUDIO 0x20
|
||
#define MEDIA_TYPE_MP3 0x21
|
||
/*媒体类型:图片支持的媒体类型*/
|
||
#define MEDIA_TYPE_IMAGE 0x30
|
||
#define MEDIA_TYPE_JPG 0x31
|
||
#define MEDIA_TYPE_BMP 0x32
|
||
#define MEDIA_TYPE_GIF 0x33
|
||
/*媒体类型:实时流媒体支持的媒体类型*/
|
||
#define MEDIA_TYPE_MMS 0x40
|
||
#define MEDIA_TYPE_RTSP_RDT 0x41
|
||
#define MEDIA_TYPE_RTSP_RTP 0x42
|
||
/*媒体类型:碎片化音视频支持的媒体类型*/
|
||
#define MEDIA_TYPE_OSMF 0x50
|
||
#define MEDIA_TYPE_HLS 0x51
|
||
/*媒体类型:VOIP支持的媒体类型,亦即编码类型*/
|
||
#define MEDIA_TYPE_AUDIO_UNKNOWN 0x60
|
||
#define MEDIA_TYPE_AUDIO_G711_ULAW 0x61
|
||
#define MEDIA_TYPE_AUDIO_G711_ALAW 0x62
|
||
#define MEDIA_TYPE_AUDIO_G722 0x63
|
||
#define MEDIA_TYPE_AUDIO_G723 0x64
|
||
#define MEDIA_TYPE_AUDIO_G726_40 0x65
|
||
#define MEDIA_TYPE_AUDIO_G726_32 0x66
|
||
#define MEDIA_TYPE_AUDIO_G726_24 0x67
|
||
#define MEDIA_TYPE_AUDIO_G726_16 0x68
|
||
#define MEDIA_TYPE_AUDIO_AAL2_G726_40 0x69
|
||
#define MEDIA_TYPE_AUDIO_AAL2_G726_32 0x6A
|
||
#define MEDIA_TYPE_AUDIO_AAL2_G726_24 0x6B
|
||
#define MEDIA_TYPE_AUDIO_AAL2_G726_16 0x6C
|
||
#define MEDIA_TYPE_AUDIO_G728 0x6D
|
||
#define MEDIA_TYPE_AUDIO_G729D 0x6E
|
||
#define MEDIA_TYPE_AUDIO_G729E 0x6F
|
||
#define MEDIA_TYPE_AUDIO_GSM 0x70
|
||
#define MEDIA_TYPE_AUDIO_GSM_EFR 0x71
|
||
#define MEDIA_TYPE_AUDIO_ILBC 0x72
|
||
#define MEDIA_TYPE_AUDIO_AMR 0x73
|
||
#define MEDIA_TYPE_AUDIO_AMR_WB 0x74
|
||
#define MEDIA_TYPE_AUDIO_SILK 0x75
|
||
#define MEDIA_TYPE_AUDIO_LPC 0x76
|
||
#define MEDIA_TYPE_AUDIO_LPC1016 0x77
|
||
#define MEDIA_TYPE_AUDIO_LPC1015 0x78
|
||
#define MEDIA_TYPE_AUDIO_L16 0x79
|
||
#define MEDIA_TYPE_AUDIO_SPEEX 0x7A
|
||
#define MEDIA_TYPE_AUDIO_L8 0x7B
|
||
#define MEDIA_TYPE_AUDIO_MPA 0x7C
|
||
#define MEDIA_TYPE_AUDIO_DVI4 0x7D
|
||
#define MEDIA_TYPE_AUDIO_VDVI 0x7E
|
||
#define MEDIA_TYPE_AUDIO_CN 0x7F
|
||
#define MEDIA_TYPE_AUDIO_RED 0x80
|
||
#define MEDIA_TYPE_AUDIO_QCELP 0x81
|
||
#define MEDIA_TYPE_AUDIO_EVRC0 0x82
|
||
#define MEDIA_TYPE_AUDIO_EVRCB0 0x83
|
||
#define MEDIA_TYPE_AUDIO_G729 0x84
|
||
#define MEDIA_TYPE_AUDIO_VIVOX 0x85
|
||
|
||
|
||
/*指导消息体选项类型*/
|
||
/*指导消息体选项类型-VOIP选项类型*/
|
||
#define OPT_SIP_SEND_RATE_INFO 0x71 /*VOIP编码参数信息*/
|
||
|
||
/*==================================消息头部==============================================*/
|
||
typedef struct msg_head_s
|
||
{
|
||
uint16_t magic;
|
||
uint16_t m_type;
|
||
uint32_t c_len; //消息体长度(不包括消息头部)
|
||
}msg_head_t;
|
||
|
||
/*==================================指导消息体==============================================*/
|
||
typedef struct msg_meta_s
|
||
{
|
||
char pid[8]; //ID,由数据获取节点生成
|
||
uint64_t proglen; //流文件的总字节长度,为0表示长度未知
|
||
uint32_t capip; // 获取节点的IP
|
||
uint8_t protocol; // 承载协议类型
|
||
uint8_t mediatype; // 可能的媒体类型
|
||
uint8_t data_flag; // 数据标志
|
||
uint8_t opt_num; // 选项个数
|
||
}msg_meta_t;
|
||
|
||
/*已经在其他文件里面定义过
|
||
struct opt_unit_t
|
||
{
|
||
uint32_t opt_len; //包括opt_len、opt_type、opt_value
|
||
uint8_t opt_type;
|
||
char* opt_value;
|
||
};
|
||
*/
|
||
|
||
/*==================================流数据消息体==============================================*/
|
||
typedef struct av_data_s
|
||
{
|
||
char pid[8]; // 流文件的ID,由数据获取节点生成
|
||
uint16_t frag_seq; // 音视频碎片:片段序号 VOIP:主被叫
|
||
int64_t offset:48; // 本次数据在整个流文件中的偏移位置
|
||
//char* avs; // 多媒体流数据
|
||
}av_data_t;
|
||
|
||
/*VOIP多媒体流数据格式*/
|
||
struct voip_header_t
|
||
{
|
||
uint32_t time_stamp; // 语音帧的时间戳, 网络序。
|
||
uint32_t sequence;
|
||
//char* data; //VOIP的语音数据
|
||
};
|
||
|
||
/*RTSP/RTMP多媒体流数据格式*/
|
||
struct sdp_data_packet
|
||
{
|
||
char sdp[8]; // 恒为"RTSP_SDP"
|
||
uint32_t sdp_len; // 为sdp的数据长度
|
||
//char * data; // sdp数据内容
|
||
};
|
||
|
||
/*RTSP sdp数据内容格式*/
|
||
struct rtsp_data_packet
|
||
{
|
||
uint32_t flag; // RTSP数据头开头标志 0x46464646 "FFFF"
|
||
uint8_t type; // 数据类型,1 for RDT,2 for RTP
|
||
uint8_t channel; // 数据的通道号
|
||
uint16_t len; // 数据长度
|
||
//char * data; // 数据内容
|
||
};
|
||
|
||
/*RTMP sdp数据内容格式*/
|
||
struct rtmp_data_packet
|
||
{
|
||
uint32_t flag; // RTMP数据头开头标志 0x52544D50"RTMP"
|
||
uint32_t av_type:8; // 音视频类型,8 for Audio, 9 for Video
|
||
uint32_t cs_id:24; // Chunk Stream ID
|
||
uint32_t timestamp; // 时间戳
|
||
uint32_t len; // 总数据长度(包括本头部字段长度,20字节)
|
||
uint32_t stream_id; // 流ID
|
||
//char * data; // 数据内容
|
||
};
|
||
|
||
/*MMS多媒体流数据格式*/
|
||
struct mms_data_packet
|
||
{
|
||
uint32_t frame_flag; // 恒为0x46464646 "FFFF"
|
||
uint32_t data_len; // 为数据长度
|
||
//char * data; // 数据内容H包数据内容或者D包数据内容
|
||
};
|
||
|
||
/*==================================结果消息体==================================================*/
|
||
typedef struct msg_result_s
|
||
{
|
||
char pid[8]; // 本流文件的ID,由数据获取节点生成
|
||
int servicetype; // 业务类型
|
||
uint32_t cfgid; // 命中的配置ID,值为0表示命中未知配置
|
||
int8_t level; // 检测结果置信度, [0, 100]
|
||
uint8_t pad[7]; // 预留,必须填0值
|
||
//char* logindex; // 访问现场数据文件的存储路径URL,以"/0"结束
|
||
}msg_result_t;
|
||
|
||
#endif
|