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

📄 codec_api.h

📁 修改配置文件的经典程序
💻 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 + -