|
| 1 | +/* |
| 2 | + Copyright (c) 2012-2019 TSINGSEE.COM. All rights reserved. |
| 3 | + Github: https://github.com/tsingsee |
| 4 | + WEChat: tsingsee |
| 5 | + Website: http://www.tsingsee.com |
| 6 | +*/ |
| 7 | +#ifndef _Easy_Types_H |
| 8 | +#define _Easy_Types_H |
| 9 | + |
| 10 | +#ifdef _WIN32 |
| 11 | +#define Easy_API __declspec(dllexport) |
| 12 | +#define Easy_APICALL __stdcall |
| 13 | +#define WIN32_LEAN_AND_MEAN |
| 14 | +#else |
| 15 | +#define Easy_API __attribute__ ((visibility("default"))) |
| 16 | +#define Easy_APICALL __attribute__ ((visibility("default"))) |
| 17 | +#endif |
| 18 | + |
| 19 | +#define Easy_Handle void* |
| 20 | + |
| 21 | +typedef int Easy_I32; |
| 22 | +typedef unsigned char Easy_U8; |
| 23 | +typedef unsigned char Easy_UChar; |
| 24 | +typedef unsigned short Easy_U16; |
| 25 | +typedef unsigned int Easy_U32; |
| 26 | +typedef unsigned char Easy_Bool; |
| 27 | + |
| 28 | +enum |
| 29 | +{ |
| 30 | + Easy_NoErr = 0, |
| 31 | + Easy_RequestFailed = -1, |
| 32 | + Easy_Unimplemented = -2, |
| 33 | + Easy_RequestArrived = -3, |
| 34 | + Easy_OutOfState = -4, |
| 35 | + Easy_NotAModule = -5, |
| 36 | + Easy_WrongVersion = -6, |
| 37 | + Easy_IllegalService = -7, |
| 38 | + Easy_BadIndex = -8, |
| 39 | + Easy_ValueNotFound = -9, |
| 40 | + Easy_BadArgument = -10, |
| 41 | + Easy_ReadOnly = -11, |
| 42 | + Easy_NotPreemptiveSafe = -12, |
| 43 | + Easy_NotEnoughSpace = -13, |
| 44 | + Easy_WouldBlock = -14, |
| 45 | + Easy_NotConnected = -15, |
| 46 | + Easy_FileNotFound = -16, |
| 47 | + Easy_NoMoreData = -17, |
| 48 | + Easy_AttrDoesntExist = -18, |
| 49 | + Easy_AttrNameExists = -19, |
| 50 | + Easy_InstanceAttrsNotAllowed = -20, |
| 51 | + Easy_InvalidSocket = -21, |
| 52 | + Easy_MallocError = -22, |
| 53 | + Easy_ConnectError = -23, |
| 54 | + Easy_SendError = -24 |
| 55 | +}; |
| 56 | +typedef int Easy_Error; |
| 57 | + |
| 58 | +typedef enum __EASY_ACTIVATE_ERR_CODE_ENUM |
| 59 | +{ |
| 60 | + EASY_ACTIVATE_INVALID_KEY = -1, /* 无效Key */ |
| 61 | + EASY_ACTIVATE_TIME_ERR = -2, /* 时间错误 */ |
| 62 | + EASY_ACTIVATE_PROCESS_NAME_LEN_ERR = -3, /* 进程名称长度不匹配 */ |
| 63 | + EASY_ACTIVATE_PROCESS_NAME_ERR = -4, /* 进程名称不匹配 */ |
| 64 | + EASY_ACTIVATE_VALIDITY_PERIOD_ERR= -5, /* 有效期校验不一致 */ |
| 65 | + EASY_ACTIVATE_PLATFORM_ERR = -6, /* 平台不匹配 */ |
| 66 | + EASY_ACTIVATE_COMPANY_ID_LEN_ERR= -7, /* 授权使用商不匹配 */ |
| 67 | + EASY_ACTIVATE_SUCCESS = 9999, /* 激活成功 */ |
| 68 | + |
| 69 | +}EASY_ACTIVATE_ERR_CODE_ENUM; |
| 70 | + |
| 71 | +/* 视频编码 */ |
| 72 | +#define EASY_SDK_VIDEO_CODEC_H264 0x1C /* H264 */ |
| 73 | +#define EASY_SDK_VIDEO_CODEC_H265 0xAE /* H265 */ |
| 74 | +#define EASY_SDK_VIDEO_CODEC_MJPEG 0x08 /* MJPEG */ |
| 75 | +#define EASY_SDK_VIDEO_CODEC_MPEG4 0x0D /* MPEG4 */ |
| 76 | + |
| 77 | +/* 音频编码 */ |
| 78 | +#define EASY_SDK_AUDIO_CODEC_AAC 0x15002 /* AAC */ |
| 79 | +#define EASY_SDK_AUDIO_CODEC_G711U 0x10006 /* G711 ulaw*/ |
| 80 | +#define EASY_SDK_AUDIO_CODEC_G711A 0x10007 /* G711 alaw*/ |
| 81 | +#define EASY_SDK_AUDIO_CODEC_G726 0x1100B /* G726 */ |
| 82 | + |
| 83 | +#define EASY_SDK_EVENT_CODEC_ERROR 0x63657272 /* ERROR */ |
| 84 | +#define EASY_SDK_EVENT_CODEC_EXIT 0x65786974 /* EXIT */ |
| 85 | + |
| 86 | +/* 音视频帧标识 */ |
| 87 | +#define EASY_SDK_VIDEO_FRAME_FLAG 0x00000001 /* 视频帧标志 */ |
| 88 | +#define EASY_SDK_AUDIO_FRAME_FLAG 0x00000002 /* 音频帧标志 */ |
| 89 | +#define EASY_SDK_EVENT_FRAME_FLAG 0x00000004 /* 事件帧标志 */ |
| 90 | +#define EASY_SDK_RTP_FRAME_FLAG 0x00000008 /* RTP帧标志 */ |
| 91 | +#define EASY_SDK_SDP_FRAME_FLAG 0x00000010 /* SDP帧标志 */ |
| 92 | +#define EASY_SDK_MEDIA_INFO_FLAG 0x00000020 /* 媒体类型标志*/ |
| 93 | +#define EASY_SDK_SNAP_FRAME_FLAG 0x00000040 /* 图片标志*/ |
| 94 | + |
| 95 | +/* 视频关键字标识 */ |
| 96 | +#define EASY_SDK_VIDEO_FRAME_I 0x01 /* I帧 */ |
| 97 | +#define EASY_SDK_VIDEO_FRAME_P 0x02 /* P帧 */ |
| 98 | +#define EASY_SDK_VIDEO_FRAME_B 0x03 /* B帧 */ |
| 99 | +#define EASY_SDK_VIDEO_FRAME_J 0x04 /* JPEG */ |
| 100 | + |
| 101 | +/* 连接类型 */ |
| 102 | +typedef enum __EASY_RTP_CONNECT_TYPE |
| 103 | +{ |
| 104 | + EASY_RTP_OVER_TCP = 0x01, /* RTP Over TCP */ |
| 105 | + EASY_RTP_OVER_UDP, /* RTP Over UDP */ |
| 106 | + EASY_RTP_OVER_MULTICAST /* RTP Over MULTICAST */ |
| 107 | +}EASY_RTP_CONNECT_TYPE; |
| 108 | + |
| 109 | +typedef struct __EASY_AV_Frame |
| 110 | +{ |
| 111 | + Easy_U32 u32AVFrameFlag; /* 帧标志 视频 or 音频 */ |
| 112 | + Easy_U32 u32AVFrameLen; /* 帧的长度 */ |
| 113 | + Easy_U32 u32VFrameType; /* 视频的类型,I帧或P帧 */ |
| 114 | + Easy_U8 *pBuffer; /* 数据 */ |
| 115 | + Easy_U32 u32TimestampSec; /* 时间戳(秒)*/ |
| 116 | + Easy_U32 u32TimestampUsec; /* 时间戳(微秒) */ |
| 117 | + Easy_U32 u32PTS; |
| 118 | +} EASY_AV_Frame; |
| 119 | + |
| 120 | +/* 媒体信息 */ |
| 121 | +typedef struct __EASY_MEDIA_INFO_T |
| 122 | +{ |
| 123 | + Easy_U32 u32VideoCodec; /* 视频编码类型 */ |
| 124 | + Easy_U32 u32VideoFps; /* 视频帧率 */ |
| 125 | + |
| 126 | + Easy_U32 u32AudioCodec; /* 音频编码类型 */ |
| 127 | + Easy_U32 u32AudioSamplerate; /* 音频采样率 */ |
| 128 | + Easy_U32 u32AudioChannel; /* 音频通道数 */ |
| 129 | + Easy_U32 u32AudioBitsPerSample; /* 音频采样精度 */ |
| 130 | + |
| 131 | + Easy_U32 u32VpsLength; |
| 132 | + Easy_U32 u32SpsLength; |
| 133 | + Easy_U32 u32PpsLength; |
| 134 | + Easy_U32 u32SeiLength; |
| 135 | + Easy_U8 u8Vps[256]; |
| 136 | + Easy_U8 u8Sps[256]; |
| 137 | + Easy_U8 u8Pps[128]; |
| 138 | + Easy_U8 u8Sei[128]; |
| 139 | +}EASY_MEDIA_INFO_T; |
| 140 | + |
| 141 | +/* 帧信息 */ |
| 142 | +typedef struct |
| 143 | +{ |
| 144 | + unsigned int codec; /* 音视频格式 */ |
| 145 | + |
| 146 | + unsigned int type; /* 视频帧类型 */ |
| 147 | + unsigned char fps; /* 视频帧率 */ |
| 148 | + unsigned short width; /* 视频宽 */ |
| 149 | + unsigned short height; /* 视频高 */ |
| 150 | + |
| 151 | + unsigned int reserved1; /* 保留参数1 */ |
| 152 | + unsigned int reserved2; /* 保留参数2 */ |
| 153 | + unsigned int reserved3; /* 保留参数3 */ |
| 154 | + |
| 155 | + unsigned int sample_rate; /* 音频采样率 */ |
| 156 | + unsigned int channels; /* 音频声道数 */ |
| 157 | + unsigned int bits_per_sample; /* 音频采样精度 */ |
| 158 | + |
| 159 | + unsigned int length; /* 音视频帧大小 */ |
| 160 | + unsigned int timestamp_usec; /* 时间戳,微妙 */ |
| 161 | + unsigned int timestamp_sec; /* 时间戳 秒 */ |
| 162 | + unsigned int pts; |
| 163 | + |
| 164 | + float bitrate; /* 比特率 */ |
| 165 | + float losspacket; /* 丢包率 */ |
| 166 | +}EASY_FRAME_INFO; |
| 167 | + |
| 168 | +#endif |
0 commit comments