📄 codec_api.h
字号:
#ifndef _CODEC_API_H_#define _CODEC_API_H_#include <stdio.h>#define CODEC_API(retType) retType#define DEV_IDX long#define Param_IN #define Param_OUT *#define Ptr_STR char*//宏定义#define MAX_IP_LEN 20#define MAX_UCAST_LIST 5#define MAX_FUCN_NAME_LEN 30#define MAX_FILE_NAME_LEN 30#define MAX_DEV_NUM 20#define MAX_COM_SEND_DATA_BUF 255#define MAX_RECV_DATA_BUF 255//设备类型: ENCODER/DECODERtypedef enum { DEV_UNKNOWN =0, //未知设备类型 DEV_CODEC =1, //编解码器 DEV_ENCODER =2, //编码器 DEV_DECODER =3 //解码器} DEVICE_TYPE;//媒体类型: VES/PS/TStypedef enum { MEDIA_UNKNOWN = 0, MEDIA_VES = 1, MEDIA_PS = 2, MEDIA_TS = 3} _MEDIA_TYPE_;//传输协议: UDP/RTPtypedef enum { PROTO_UNKNOWN = 0, PROTO_UDP = 1, PROTO_RTP = 2} TRANS_PROTO;//网络地址IP:Porttypedef struct { char sIP[MAX_IP_LEN]; int nPort;} Net_Addr;//视频制式: PAL/NTSC//warning: encoder 1-PAL,2-NTSC, decoder 1-NTSC,2-PALtypedef enum { VIDFMT_UNKNOWN = 0, VIDFMT_PAL = 1, VIDFMT_NTSC = 2} VIDEO_FMT;//视频MPEG格式: MPEG1/2/4typedef enum { VIDMPG_UNKNOWN =0, VIDMPG_1 = 1, VIDMPG_2 = 2, VIDMPG_4 = 4} VIDEO_MPEG;//设备参数typedef struct { //identifier DEVICE_TYPE DevType; //ENCODER/DECODER int DevID; //device identifier _MEDIA_TYPE_ MediaType; //VES/PS/TS //network param TRANS_PROTO TransProto; //UDP/RTP char local_network_ipaddr[MAX_IP_LEN]; //e.g. 192.168.0.2 char local_network_mask[MAX_IP_LEN]; //e.g. 255.255.255.0 char local_network_gateway[MAX_IP_LEN];//e.g. 192.168.0.1 int my_port; Net_Addr server_address; //e.g. 192.168.0.3:5050 char control_ipaddr[MAX_IP_LEN]; //e.g. 192.168.1.21 bool doMulticast; //TRUE or FALSE Net_Addr multicast_address; //e.g. 2224.0.0.1:8100 bool doNetSend; int iSendNum; Net_Addr send_target_list[MAX_UCAST_LIST]; bool doFileWrite; //write data to file flag,TURE or FALSE //serial port param long com1_baud_rate; char com1_parity_type; long com1_data_bit; long com1_stop_bit; long com2_baud_rate; char com2_parity_type; long com2_data_bit; long com2_stop_bit; long local_alarm_com; Net_Addr com_remote_address; //just for encoder only //video param long HResolu; long VResolu; long VidBitRate; long VBVSize; long VidFmt; long VidMpeg; //audio param long AudSamRate; long AudBitRate; long AudChnMode; //just for decoder only //net receive param bool doNetRecv; Net_Addr recv_addr; bool doMulticastRecv; Net_Addr recv_multicast_addr; //file read, read data from file bool doFileRead; char file_read_name[MAX_FILE_NAME_LEN]; //decode param long video_format; long mpeg_coding_standard;} DevParamStruct;//参数类型typedef enum { PARAM_UNKNOWN =0, //未知参数类型 //基本参数 PARAM_DEVTYPE =1, //设备类型,DEVICE_TYPE,DEV_ENCODER-编码器 DEV_DECODER-解码器 PARAM_DEVID =2, //设备ID,long PARAM_STREAM =3, //流类型,_MEDIA_TYPE_,PS/TS //网络参数 PARAM_TRANSPROTO=10, //收发协议,TRANS_PTOTO 0-UDP 1-RTP PARAM_IPADDR =11, //IP地址,bstr PARAM_MASK =12, //子网掩码,bstr PARAM_GATEWAY =13, //默认网关,bstr PARAM_MYPORT =14, //设备端口,int PARAM_SERVADDR =15, //服务器IP:Port, Net_Addr PARAM_CTRLADDR =16, //控制机IP,bstr //发送参数 PARAM_DOMCAS =17, //组播标志,bool PARAM_MCASTADDR =18, //组播IP:Port,Net_Addr PARAM_DOUCAST =19, //单播标志,bool PARAM_ULISTADDR =20, //单播列表IP:Port,Net_Addr PARAM_FILEW =21, //本地录像标志,bool //serial port param //com1 PARAM_COM1BAUD =22, //baud rate, long PARAM_COM1PARITY =23, //parity check type, char N, O, E, S PARAM_COM1DATABIT =24, //data bit len, long 5, 6, 7, 8 PARAM_COM1STOPBIT =25, //stop bit len, long 1, 2 //com2 PARAM_COM2BAUD =26, PARAM_COM2PARITY =27, PARAM_COM2DATABIT =28, PARAM_COM2STOPBIT =29, PARAM_ALARMCOM =30, //local alarm com, long 0-noe, 1-com1, 2-com2 PARAM_REMOTEADDR =31, //remote IP:Port, Net_Addr //just for encoder only //视频参数 PARAM_HRESOLU =40, //水平分辨率,long PARAM_VRESOLU =41, //垂直分辩率,long PARAM_VBITRATE =42, //视频比特率,long PARAM_VBV =43, //VBV缓冲大小,long PARAM_VFORMAT =44, //视频制式,VIDEO_FMT,1-PAL, 2-NTSC PARAM_VMPEG =45, //压缩标准,VIDEO_MPG,MPEG1/MPEG2/MPEG4 //音频参数 PARAM_ASAMRATE =46, //音频采样率,long PARAM_ABITRATE =47, //音频比特率,long PARAM_CHNMODE =48, //声道模式,long //just for decoder only //net recv param PARAM_DOURECV =50, //unicast recv flag,bool PARAM_URADDR =51, //unicast recv addr,Net_Addr PARAM_DOMRECV =52, //multicast recv flag,bool PARAM_MRADDR =53, //multicast recv addr,Net_Addr //file read PARAM_DOFILERD =54, //file read flag,bool PARAM_FILERDNAME=55, //file name,bstr //decode param PARAM_VIDEOFMT =56, //video_format,1-NTSC, 2-PAL PARAM_MPEGCDSTD =57 //mpeg_coding_standard, MPEG1/2/4} PARAM_TYPE;//错误信息常量定义typedef enum { RESULT_SUCCESS = 0, //执行成功 RESULT_UNKNOWN = 2000, //未知错误 RESULT_OFFLINE = 2001, //设备离线 RESULT_NOTEXIST = 2002, //设备不存在 RESULT_PARAMERR = 2003, //传入参数不正确 RESULT_NETERR = 2004, //网络错误 RESULT_PKTERR = 2005, //返回包格式错误 RESULT_SENDERR = 2006, //发送数据错误 RESULT_NOECHO = 2007 //设备无返回} RESULT_TYPE;//状态查询,无须发送查询指令typedef enum { STATUS_NULL =0, STATUS_PROG =1, //主程序状态 STATUS_NSEND =2, //网络发送状态 STATUS_FILEW =3, //文件写状态 STATUS_COM1 =4, //COM1状态 STATUS_COM2 =5, //COM2状态 //just for encoder STATUS_ENC =6, //编码状态 //just for decoder STATUS_DEC =7, //decode status STATUS_NRECV =8, //net recv status STATUS_FILER =9 //file read status} STATUS_TYPE;//状态信息参数typedef struct { STATUS_TYPE StatusType; //status type bool bRun; //run flag} StatusInfoStruct;//设备基本信息typedef struct { DEVICE_TYPE DevType; long DevID; char DevIP[MAX_IP_LEN]; int DevPort; //API server port bool bDevON; //if connect success, bDevON=true} DevInfoStruct;//设备身份识别信息typedef struct { DEVICE_TYPE DevType; long DevID; char DevIP[MAX_IP_LEN]; int DevPort; //API server port} DevSignStruct;//网络发送串口数据结构体typedef struct { int com_idx; //1-com1, 2-com2 char DataBuf[MAX_COM_SEND_DATA_BUF]; //send data buffer int DataLen;} SendComInfoStruct;//传送包格式typedef struct { char sFuncName[MAX_FUCN_NAME_LEN]; //函数名 union { StatusInfoStruct StatusInfo; //状态信息 DevParamStruct DevParam; //参数信息 SendComInfoStruct SdComInfo; //send serial data }; RESULT_TYPE Result; //返回结果} TransPktStruct;//设备动态库typedef struct { DevInfoStruct DevInfo; //基本信息 DevParamStruct DevParam; //参数信息} DeviceDynamicLib;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -