123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /*
- Copyright (c) 2012-2019 TSINGSEE.COM. All rights reserved.
- Github: https://github.com/tsingsee
- WEChat: tsingsee
- Website: http://www.tsingsee.com
- */
- #ifndef _Easy_Types_H
- #define _Easy_Types_H
- #ifdef _WIN32
- #define Easy_API __declspec(dllexport)
- #define Easy_APICALL __stdcall
- #define WIN32_LEAN_AND_MEAN
- #else
- #define Easy_API __attribute__ ((visibility("default")))
- #define Easy_APICALL __attribute__ ((visibility("default")))
- #endif
- #define Easy_Handle void*
- typedef int Easy_I32;
- typedef unsigned char Easy_U8;
- typedef unsigned char Easy_UChar;
- typedef unsigned short Easy_U16;
- typedef unsigned int Easy_U32;
- typedef unsigned char Easy_Bool;
- enum
- {
- Easy_NoErr = 0,
- Easy_RequestFailed = -1,
- Easy_Unimplemented = -2,
- Easy_RequestArrived = -3,
- Easy_OutOfState = -4,
- Easy_NotAModule = -5,
- Easy_WrongVersion = -6,
- Easy_IllegalService = -7,
- Easy_BadIndex = -8,
- Easy_ValueNotFound = -9,
- Easy_BadArgument = -10,
- Easy_ReadOnly = -11,
- Easy_NotPreemptiveSafe = -12,
- Easy_NotEnoughSpace = -13,
- Easy_WouldBlock = -14,
- Easy_NotConnected = -15,
- Easy_FileNotFound = -16,
- Easy_NoMoreData = -17,
- Easy_AttrDoesntExist = -18,
- Easy_AttrNameExists = -19,
- Easy_InstanceAttrsNotAllowed = -20,
- Easy_InvalidSocket = -21,
- Easy_MallocError = -22,
- Easy_ConnectError = -23,
- Easy_SendError = -24
- };
- typedef int Easy_Error;
- typedef enum __EASY_ACTIVATE_ERR_CODE_ENUM
- {
- EASY_ACTIVATE_INVALID_KEY = -1, /* 无效Key */
- EASY_ACTIVATE_TIME_ERR = -2, /* 时间错误 */
- EASY_ACTIVATE_PROCESS_NAME_LEN_ERR = -3, /* 进程名称长度不匹配 */
- EASY_ACTIVATE_PROCESS_NAME_ERR = -4, /* 进程名称不匹配 */
- EASY_ACTIVATE_VALIDITY_PERIOD_ERR= -5, /* 有效期校验不一致 */
- EASY_ACTIVATE_PLATFORM_ERR = -6, /* 平台不匹配 */
- EASY_ACTIVATE_COMPANY_ID_LEN_ERR= -7, /* 授权使用商不匹配 */
- EASY_ACTIVATE_SUCCESS = 9999, /* 激活成功 */
- }EASY_ACTIVATE_ERR_CODE_ENUM;
- /* 视频编码 */
- #define EASY_SDK_VIDEO_CODEC_H264 0x1C /* H264 */
- #define EASY_SDK_VIDEO_CODEC_H265 0xAE /* H265 */
- #define EASY_SDK_VIDEO_CODEC_MJPEG 0x08 /* MJPEG */
- #define EASY_SDK_VIDEO_CODEC_MPEG4 0x0D /* MPEG4 */
- /* 音频编码 */
- #define EASY_SDK_AUDIO_CODEC_AAC 0x15002 /* AAC */
- #define EASY_SDK_AUDIO_CODEC_G711U 0x10006 /* G711 ulaw*/
- #define EASY_SDK_AUDIO_CODEC_G711A 0x10007 /* G711 alaw*/
- #define EASY_SDK_AUDIO_CODEC_G726 0x1100B /* G726 */
- #define EASY_SDK_EVENT_CODEC_ERROR 0x63657272 /* ERROR */
- #define EASY_SDK_EVENT_CODEC_EXIT 0x65786974 /* EXIT */
- /* 音视频帧标识 */
- #define EASY_SDK_VIDEO_FRAME_FLAG 0x00000001 /* 视频帧标志 */
- #define EASY_SDK_AUDIO_FRAME_FLAG 0x00000002 /* 音频帧标志 */
- #define EASY_SDK_EVENT_FRAME_FLAG 0x00000004 /* 事件帧标志 */
- #define EASY_SDK_RTP_FRAME_FLAG 0x00000008 /* RTP帧标志 */
- #define EASY_SDK_SDP_FRAME_FLAG 0x00000010 /* SDP帧标志 */
- #define EASY_SDK_MEDIA_INFO_FLAG 0x00000020 /* 媒体类型标志*/
- #define EASY_SDK_SNAP_FRAME_FLAG 0x00000040 /* 图片标志*/
- /* 视频关键字标识 */
- #define EASY_SDK_VIDEO_FRAME_I 0x01 /* I帧 */
- #define EASY_SDK_VIDEO_FRAME_P 0x02 /* P帧 */
- #define EASY_SDK_VIDEO_FRAME_B 0x03 /* B帧 */
- #define EASY_SDK_VIDEO_FRAME_J 0x04 /* JPEG */
- /* 连接类型 */
- typedef enum __EASY_RTP_CONNECT_TYPE
- {
- EASY_RTP_OVER_TCP = 0x01, /* RTP Over TCP */
- EASY_RTP_OVER_UDP, /* RTP Over UDP */
- EASY_RTP_OVER_MULTICAST /* RTP Over MULTICAST */
- }EASY_RTP_CONNECT_TYPE;
- typedef struct __EASY_AV_Frame
- {
- Easy_U32 u32AVFrameFlag; /* 帧标志 视频 or 音频 */
- Easy_U32 u32AVFrameLen; /* 帧的长度 */
- Easy_U32 u32VFrameType; /* 视频的类型,I帧或P帧 */
- Easy_U8 *pBuffer; /* 数据 */
- Easy_U32 u32TimestampSec; /* 时间戳(秒)*/
- Easy_U32 u32TimestampUsec; /* 时间戳(微秒) */
- Easy_U32 u32PTS;
- } EASY_AV_Frame;
- /* 媒体信息 */
- typedef struct __EASY_MEDIA_INFO_T
- {
- Easy_U32 u32VideoCodec; /* 视频编码类型 */
- Easy_U32 u32VideoFps; /* 视频帧率 */
- Easy_U32 u32AudioCodec; /* 音频编码类型 */
- Easy_U32 u32AudioSamplerate; /* 音频采样率 */
- Easy_U32 u32AudioChannel; /* 音频通道数 */
- Easy_U32 u32AudioBitsPerSample; /* 音频采样精度 */
- Easy_U32 u32VpsLength;
- Easy_U32 u32SpsLength;
- Easy_U32 u32PpsLength;
- Easy_U32 u32SeiLength;
- Easy_U8 u8Vps[256];
- Easy_U8 u8Sps[256];
- Easy_U8 u8Pps[128];
- Easy_U8 u8Sei[128];
- }EASY_MEDIA_INFO_T;
- /* 帧信息 */
- typedef struct
- {
- unsigned int codec; /* 音视频格式 */
- unsigned int type; /* 视频帧类型 */
- unsigned char fps; /* 视频帧率 */
- unsigned short width; /* 视频宽 */
- unsigned short height; /* 视频高 */
- unsigned int reserved1; /* 保留参数1 */
- unsigned int reserved2; /* 保留参数2 */
- unsigned int reserved3; /* 保留参数3 */
- unsigned int sample_rate; /* 音频采样率 */
- unsigned int channels; /* 音频声道数 */
- unsigned int bits_per_sample; /* 音频采样精度 */
- unsigned int length; /* 音视频帧大小 */
- unsigned int timestamp_usec; /* 时间戳,微妙 */
- unsigned int timestamp_sec; /* 时间戳 秒 */
- unsigned int pts;
-
- float bitrate; /* 比特率 */
- float losspacket; /* 丢包率 */
- }EASY_FRAME_INFO;
- #endif
|