Skip to content

Commit c83521c

Browse files
committed
修复EasyRTSPClient拉流播放有几率花屏的问题,更新key
1 parent 065d676 commit c83521c

30 files changed

+189
-165
lines changed

Bin/C#/Lib/libEasyRTSPClient.dll

2 KB
Binary file not shown.

Bin/C++/EasyPlayer-RTSP.exe

0 Bytes
Binary file not shown.

Bin/C++/EasyPlayer-RTSPWebActiveX.lib

0 Bytes
Binary file not shown.

Bin/C++/EasyPlayer-RTSPWebActiveX.ocx

0 Bytes
Binary file not shown.

Bin/C++/Main_config.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<Font name="微软雅黑" size="15" />
66

77
<String text="EasyPlayer RTSP播放器" font="1" color="#FFFFFF" pos="0,0,40,7,300,42" id="1"/>
8-
<String text="Version: 2.3.19.0106 Powered by EasyDarwin Team QQ交流群:544917793" font="2" color="#FFFFFF" pos="3,3,810,25,0,0" id="2"/>
8+
<String text="Version: 2.4.19.0414 Powered by EasyDarwin Team QQ交流群:544917793" font="2" color="#FFFFFF" pos="3,3,810,25,0,0" id="2"/>
99
<String text="Log" font="3" color="#000000" pos="3,3,40,125,5,105" id="3"/>
1010
<String text="" font="3" color="#000000" pos="2,2,5,25,205,0" id="4"/>
1111

Bin/C++/libEasyPlayer-RTSP.dll

-512 Bytes
Binary file not shown.

Bin/C++/libEasyPlayer-RTSP.lib

14 Bytes
Binary file not shown.

Bin/C++/libEasyRTSPClient.dll

2 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,56 @@
11
/*
2-
Copyright (c) 2013-2015 EasyDarwin.ORG. All rights reserved.
3-
Github: https://github.com/EasyDarwin
4-
WEChat: EasyDarwin
5-
Website: http://www.easydarwin.org
2+
Copyright (c) 2013-2015 EasyDarwin.ORG. All rights reserved.
3+
Github: https://github.com/EasyDarwin
4+
WEChat: EasyDarwin
5+
Website: http://www.easydarwin.org
66
*/
77
#ifndef _Easy_RTSPClient_API_H
88
#define _Easy_RTSPClient_API_H
99

1010
#include "EasyTypes.h"
1111

12-
#define RTSP_PROG_NAME "EasyRTSPClient v1.16.0721"
12+
#define RTSP_PROG_NAME "libEasyRTSPClient v3.0.19.0415"
1313

1414
/*
15-
_channelId: 通道号,暂时不用
16-
_channelPtr: 通道对应对象,暂时不用
17-
_frameType: EASY_SDK_VIDEO_FRAME_FLAG/EASY_SDK_AUDIO_FRAME_FLAG/EASY_SDK_EVENT_FRAME_FLAG/...
18-
_pBuf: 回调的数据部分,具体用法看Demo
19-
_frameInfo: 帧结构数据
15+
_channelId: 通道号,暂时不用
16+
_channelPtr: 通道对应对象,暂时不用
17+
_frameType: EASY_SDK_VIDEO_FRAME_FLAG/EASY_SDK_AUDIO_FRAME_FLAG/EASY_SDK_EVENT_FRAME_FLAG/...
18+
_pBuf: 回调的数据部分,具体用法看Demo
19+
_frameInfo: 帧结构数据
2020
*/
21-
typedef int (Easy_APICALL *RTSPSourceCallBack)(int _channelId, void *_channelPtr, int _frameType, char *pBuf, RTSP_FRAME_INFO* _frameInfo);
21+
typedef int (Easy_APICALL *RTSPSourceCallBack)( int _channelId, void *_channelPtr, int _frameType, char *pBuf, EASY_FRAME_INFO* _frameInfo);
2222

2323
#ifdef __cplusplus
2424
extern "C"
2525
{
2626
#endif
2727
/* 获取最后一次错误的错误码 */
28-
Easy_API int Easy_APICALL EasyRTSP_GetErrCode(Easy_RTSP_Handle handle);
28+
Easy_API int Easy_APICALL EasyRTSP_GetErrCode(Easy_Handle handle);
2929

3030
/* 激活 */
31+
#ifdef ANDROID
32+
Easy_API int Easy_APICALL EasyRTSP_Activate(char *license, char* userPtr);
33+
#else
3134
Easy_API int Easy_APICALL EasyRTSP_Activate(char *license);
35+
#endif
3236

3337
/* 创建RTSPClient句柄 返回0表示成功,返回非0表示失败 */
34-
Easy_API int Easy_APICALL EasyRTSP_Init(Easy_RTSP_Handle *handle);
38+
Easy_API int Easy_APICALL EasyRTSP_Init(Easy_Handle *handle);
3539

3640
/* 释放RTSPClient 参数为RTSPClient句柄 */
37-
Easy_API int Easy_APICALL EasyRTSP_Deinit(Easy_RTSP_Handle *handle);
41+
Easy_API int Easy_APICALL EasyRTSP_Deinit(Easy_Handle *handle);
3842

3943
/* 设置数据回调 */
40-
Easy_API int Easy_APICALL EasyRTSP_SetCallback(Easy_RTSP_Handle handle, RTSPSourceCallBack _callback);
44+
Easy_API int Easy_APICALL EasyRTSP_SetCallback(Easy_Handle handle, RTSPSourceCallBack _callback);
4145

4246
/* 打开网络流 */
43-
Easy_API int Easy_APICALL EasyRTSP_OpenStream(Easy_RTSP_Handle handle, int _channelid, char *_url, EASY_RTP_CONNECT_TYPE _connType, unsigned int _mediaType, char *_username, char *_password, void *userPtr, int _reconn/*1000表示长连接,即如果网络断开自动重连, 其它值为连接次数*/, int outRtpPacket/*默认为0,即回调输出完整的帧, 如果为1,则输出RTP包*/, int heartbeatType/*0x00:不发送心跳 0x01:OPTIONS 0x02:GET_PARAMETER*/, int _verbosity/*日志打印输出等级,0表示不输出*/);
44-
47+
Easy_API int Easy_APICALL EasyRTSP_OpenStream(Easy_Handle handle, int _channelid, char *_url, EASY_RTP_CONNECT_TYPE _connType, unsigned int _mediaType, char *_username, char *_password, void *userPtr, int _reconn/*1000表示长连接,即如果网络断开自动重连, 其它值为连接次数*/, int outRtpPacket/*默认为0,即回调输出完整的帧, 如果为1,则输出RTP包*/, int heartbeatType/*0x00:不发送心跳 0x01:OPTIONS 0x02:GET_PARAMETER*/, int _verbosity/*日志打印输出等级,0表示不输出*/);
48+
4549
/* 关闭网络流 */
46-
Easy_API int Easy_APICALL EasyRTSP_CloseStream(Easy_RTSP_Handle handle);
50+
Easy_API int Easy_APICALL EasyRTSP_CloseStream(Easy_Handle handle);
4751

4852
#ifdef __cplusplus
4953
}
5054
#endif
5155

52-
#endif
56+
#endif
+80-60
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/*
2-
Copyright (c) 2013-2015 EasyDarwin.ORG. All rights reserved.
3-
Github: https://github.com/EasyDarwin
4-
WEChat: EasyDarwin
5-
Website: http://www.easydarwin.org
2+
Copyright (c) 2013-2019 EasyDarwin.ORG. All rights reserved.
3+
Github: https://github.com/EasyDarwin
4+
WEChat: EasyDarwin
5+
Website: http://www.easydarwin.org
66
*/
77
#ifndef _Easy_Types_H
88
#define _Easy_Types_H
@@ -16,13 +16,10 @@ Website: http://www.easydarwin.org
1616
#define Easy_APICALL
1717
#endif
1818

19-
// Handle Type
20-
#define Easy_RTSP_Handle void*
21-
#define Easy_Pusher_Handle void*
22-
#define Easy_HLS_Handle void*
19+
// Handle
20+
#define Easy_Handle void*
2321

2422
typedef int Easy_I32;
25-
2623
typedef unsigned char Easy_U8;
2724
typedef unsigned char Easy_UChar;
2825
typedef unsigned short Easy_U16;
@@ -31,45 +28,45 @@ typedef unsigned char Easy_Bool;
3128

3229
enum
3330
{
34-
Easy_NoErr = 0,
35-
Easy_RequestFailed = -1,
36-
Easy_Unimplemented = -2,
37-
Easy_RequestArrived = -3,
38-
Easy_OutOfState = -4,
39-
Easy_NotAModule = -5,
40-
Easy_WrongVersion = -6,
41-
Easy_IllegalService = -7,
42-
Easy_BadIndex = -8,
43-
Easy_ValueNotFound = -9,
44-
Easy_BadArgument = -10,
45-
Easy_ReadOnly = -11,
46-
Easy_NotPreemptiveSafe = -12,
47-
Easy_NotEnoughSpace = -13,
48-
Easy_WouldBlock = -14,
49-
Easy_NotConnected = -15,
50-
Easy_FileNotFound = -16,
51-
Easy_NoMoreData = -17,
52-
Easy_AttrDoesntExist = -18,
53-
Easy_AttrNameExists = -19,
54-
Easy_InstanceAttrsNotAllowed = -20,
55-
Easy_InvalidSocket = -21,
56-
Easy_MallocError = -22,
57-
Easy_ConnectError = -23,
58-
Easy_SendError = -24
31+
Easy_NoErr = 0,
32+
Easy_RequestFailed = -1,
33+
Easy_Unimplemented = -2,
34+
Easy_RequestArrived = -3,
35+
Easy_OutOfState = -4,
36+
Easy_NotAModule = -5,
37+
Easy_WrongVersion = -6,
38+
Easy_IllegalService = -7,
39+
Easy_BadIndex = -8,
40+
Easy_ValueNotFound = -9,
41+
Easy_BadArgument = -10,
42+
Easy_ReadOnly = -11,
43+
Easy_NotPreemptiveSafe = -12,
44+
Easy_NotEnoughSpace = -13,
45+
Easy_WouldBlock = -14,
46+
Easy_NotConnected = -15,
47+
Easy_FileNotFound = -16,
48+
Easy_NoMoreData = -17,
49+
Easy_AttrDoesntExist = -18,
50+
Easy_AttrNameExists = -19,
51+
Easy_InstanceAttrsNotAllowed = -20,
52+
Easy_InvalidSocket = -21,
53+
Easy_MallocError = -22,
54+
Easy_ConnectError = -23,
55+
Easy_SendError = -24
5956
};
6057
typedef int Easy_Error;
6158

62-
59+
/* 授权激活,>0为激活可用天数(9999代表永久授权),<0为授权失败错误码 */
6360
typedef enum __EASY_ACTIVATE_ERR_CODE_ENUM
6461
{
65-
EASY_ACTIVATE_INVALID_KEY = -1, /* 无效Key */
66-
EASY_ACTIVATE_TIME_ERR = -2, /* 时间错误 */
67-
EASY_ACTIVATE_PROCESS_NAME_LEN_ERR = -3, /* 进程名称长度不匹配 */
68-
EASY_ACTIVATE_PROCESS_NAME_ERR = -4, /* 进程名称不匹配 */
69-
EASY_ACTIVATE_VALIDITY_PERIOD_ERR = -5, /* 有效期校验不一致 */
70-
EASY_ACTIVATE_PLATFORM_ERR = -6, /* 平台不匹配 */
71-
EASY_ACTIVATE_COMPANY_ID_LEN_ERR = -7, /* 授权使用商不匹配 */
72-
EASY_ACTIVATE_SUCCESS = 0, /* 激活成功 */
62+
EASY_ACTIVATE_INVALID_KEY = -1, /* 无效Key */
63+
EASY_ACTIVATE_TIME_ERR = -2, /* 时间错误 */
64+
EASY_ACTIVATE_PROCESS_NAME_LEN_ERR = -3, /* 进程名称长度不匹配 */
65+
EASY_ACTIVATE_PROCESS_NAME_ERR = -4, /* 进程名称不匹配 */
66+
EASY_ACTIVATE_VALIDITY_PERIOD_ERR= -5, /* 有效期校验不一致 */
67+
EASY_ACTIVATE_PLATFORM_ERR = -6, /* 平台不匹配 */
68+
EASY_ACTIVATE_COMPANY_ID_LEN_ERR= -7, /* 授权使用商不匹配 */
69+
EASY_ACTIVATE_SUCCESS = 9999, /* 永久授权 */
7370

7471
}EASY_ACTIVATE_ERR_CODE_ENUM;
7572

@@ -96,6 +93,8 @@ typedef enum __EASY_ACTIVATE_ERR_CODE_ENUM
9693
#define EASY_SDK_RTP_FRAME_FLAG 0x00000008 /* RTP帧标志 */
9794
#define EASY_SDK_SDP_FRAME_FLAG 0x00000010 /* SDP帧标志 */
9895
#define EASY_SDK_MEDIA_INFO_FLAG 0x00000020 /* 媒体类型标志*/
96+
#define EASY_SDK_DECODE_VIDEO_FLAG 0x00000040 /* 解码视频类型标志*/
97+
#define EASY_SDK_DECODE_AUDO_FLAG 0x00000080 /* 解码音频类型标志*/
9998

10099
/* 视频关键字标识 */
101100
#define EASY_SDK_VIDEO_FRAME_I 0x01 /* I帧 */
@@ -106,29 +105,33 @@ typedef enum __EASY_ACTIVATE_ERR_CODE_ENUM
106105
/* 连接类型 */
107106
typedef enum __EASY_RTP_CONNECT_TYPE
108107
{
109-
EASY_RTP_OVER_TCP = 0x01, /* RTP Over TCP */
108+
EASY_RTP_OVER_TCP = 0x01, /* RTP Over TCP */
110109
EASY_RTP_OVER_UDP /* RTP Over UDP */
111110
}EASY_RTP_CONNECT_TYPE;
112111

113112
/* 媒体信息 */
114113
typedef struct __EASY_MEDIA_INFO_T
115114
{
116-
Easy_U32 u32VideoCodec; /* 视频编码类型 */
117-
Easy_U32 u32VideoFps; /* 视频帧率 */
118-
119-
Easy_U32 u32AudioCodec; /* 音频编码类型 */
120-
Easy_U32 u32AudioSamplerate; /* 音频采样率 */
121-
Easy_U32 u32AudioChannel; /* 音频通道数 */
122-
Easy_U32 u32AudioBitsPerSample; /* 音频采样精度 */
123-
124-
Easy_U32 u32H264SpsLength; /* 视频sps帧长度 */
125-
Easy_U32 u32H264PpsLength; /* 视频pps帧长度 */
126-
Easy_U8 u8H264Sps[128]; /* 视频sps帧内容 */
127-
Easy_U8 u8H264Pps[36]; /* 视频sps帧内容 */
115+
Easy_U32 u32VideoCodec; /* video codec */
116+
Easy_U32 u32VideoFps; /* video framerate */
117+
118+
Easy_U32 u32AudioCodec; /* audio codec */
119+
Easy_U32 u32AudioSamplerate; /* audio samplerate */
120+
Easy_U32 u32AudioChannel; /* audio channel number */
121+
Easy_U32 u32AudioBitsPerSample; /* audio bit per sample */
122+
123+
Easy_U32 u32VpsLength; /* video vps length */
124+
Easy_U32 u32SpsLength; /* video sps length */
125+
Easy_U32 u32PpsLength; /* video pps length */
126+
Easy_U32 u32SeiLength; /* video sei length */
127+
Easy_U8 u8Vps[255]; /* video vps data */
128+
Easy_U8 u8Sps[255]; /* video sps data */
129+
Easy_U8 u8Pps[128]; /* video pps data */
130+
Easy_U8 u8Sei[128]; /* video sei data */
128131
}EASY_MEDIA_INFO_T;
129132

130133
/* 帧信息 */
131-
typedef struct
134+
typedef struct tagEASY_FRAME_INFO
132135
{
133136
unsigned int codec; /* 音视频格式 */
134137

@@ -147,9 +150,26 @@ typedef struct
147150
unsigned int length; /* 音视频帧大小 */
148151
unsigned int timestamp_usec; /* 时间戳,微妙 */
149152
unsigned int timestamp_sec; /* 时间戳 秒 */
150-
153+
151154
float bitrate; /* 比特率 */
152155
float losspacket; /* 丢包率 */
153-
}RTSP_FRAME_INFO;
156+
}EASY_FRAME_INFO;
154157

155-
#endif
158+
typedef struct tagMEDIA_INFO
159+
{
160+
unsigned int video_codec; /* 音视频格式 */
161+
unsigned char fps; /* 视频帧率 */
162+
unsigned short width; /* 视频宽 */
163+
unsigned short height; /* 视频高 */
164+
165+
unsigned int audio_codec; /* 音视频格式 */
166+
unsigned int sample_rate; /* 音频采样率 */
167+
unsigned int channels; /* 音频声道数 */
168+
unsigned int bits_per_sample; /* 音频采样精度 */
169+
170+
unsigned int reserved1; /* 保留参数1 */
171+
unsigned int reserved2; /* 保留参数2 */
172+
173+
}MEDIA_INFO;
174+
175+
#endif
Binary file not shown.

Src/C++/EasyPlayer/DlgVideo.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ void CDlgVideo::LogErr(CString strLog)
383383
}
384384
}
385385

386-
int CDlgVideo::EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, RTSP_FRAME_INFO* _frameInfo)
386+
int CDlgVideo::EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, EASY_FRAME_INFO* _frameInfo)
387387
{
388388
if (_frameType == EASY_SDK_EVENT_FRAME_FLAG)
389389
{

Src/C++/EasyPlayer/DlgVideo.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,5 @@ class CDlgVideo : public CDialogEx
6262
// afx_msg void OnBnClickedButtonSeek();
6363

6464
public:
65-
static int CALLBACK EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, RTSP_FRAME_INFO* _frameInfo);
65+
static int CALLBACK EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, EASY_FRAME_INFO* _frameInfo);
6666
};

Src/C++/EasyPlayer/EasyPlayerDlg.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#include "DlgVideo.h"
88
#include ".\EasySkinUI\skindialog.h"
9-
#define KEY "79393674363469576B5A754144474A636F35337A4A65784659584E3555477868655756794C564A55553141755A58686C567778576F502B6C3430566863336C4559584A33615735555A57467453584E55614756435A584E30514449774D54686C59584E35"
9+
#define KEY "6D75724D7A4969576B5A7541725370636F395652792B784659584E3555477868655756794C564A55553141755A58686C567778576F50394C2F69426C59584E35"
1010

1111

1212
#define _SURV_MAX_WINDOW_NUM 16

Src/C++/EasyPlayerWebActiveX/EasyPlayer-RTSPWebActiveXidl.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55

66
/* File created by MIDL compiler version 7.00.0555 */
7-
/* at Mon Feb 18 16:43:56 2019
7+
/* at Sun Apr 14 19:16:24 2019
88
*/
99
/* Compiler settings for EasyPlayerWebActiveX.idl:
1010
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555

Src/C++/EasyPlayerWebActiveX/EasyPlayerWebActiveXCtrl.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ void CEasyPlayerWebActiveXCtrl::OnDestroy()
270270

271271
}
272272

273-
int CEasyPlayerWebActiveXCtrl::EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, RTSP_FRAME_INFO* _frameInfo)
273+
int CEasyPlayerWebActiveXCtrl::EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, EASY_FRAME_INFO* _frameInfo)
274274
{
275275
if (_frameType == EASY_SDK_EVENT_FRAME_FLAG)
276276
{

Src/C++/EasyPlayerWebActiveX/EasyPlayerWebActiveXCtrl.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class CEasyPlayerWebActiveXCtrl : public COleControl
6868
void Config(LPCTSTR sFrameCache, LPCTSTR sPlaySound, LPCTSTR sShowToScale, LPCTSTR sShowStatisticInfo);
6969
void SetOSD(LPCTSTR show, LPCTSTR alpha, LPCTSTR red, LPCTSTR green, LPCTSTR blue, LPCTSTR left, LPCTSTR top, LPCTSTR right, LPCTSTR bottom, LPCTSTR strOSD);
7070
void Close(void);
71-
static int CALLBACK EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, RTSP_FRAME_INFO* _frameInfo);
71+
static int CALLBACK EasyPlayerCallBack( int _channelId, int *_channelPtr, int _frameType, char *pBuf, EASY_FRAME_INFO* _frameInfo);
7272

7373
private:
7474
EasyPlayerManager m_player;

0 commit comments

Comments
 (0)