92 lines
2.4 KiB
C
Raw Normal View History

// <20><><EFBFBD><EFBFBD> ifdef <20><><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD>ʹ<EFBFBD><CAB9> DLL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򵥵<EFBFBD>
// <20><><EFBFBD>ı<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DLL <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD> HYVSTREAM_EXPORTS
// <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1><EFBFBD>ʹ<EFBFBD>ô<EFBFBD> DLL <20><>
// <20>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ϲ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7>š<EFBFBD><C5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD><C4BC>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
// HYVSTREAM_API <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>Ǵ<EFBFBD> DLL <20><><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD> DLL <20><><EFBFBD><EFBFBD><EFBFBD>ô˺궨<CBBA><EAB6A8><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>
#pragma once
#include "HyvSdk.h"
//#include "HSAVCode.h"
//#include "HVRtspClient.h"
#define MAX_CNT_NUM 500
enum MSG_TYPE
{
MSG_INIT = 0,
MSG_PLAY,
MSG_DEC,
};
enum TRANS_TYPE
{
TRANS_TCP = 0,
TRANS_UDP,
};
typedef void (*MsgCallBack)(OUT int iMsgType, OUT bool bSuccess, INOUT void* pContext);
typedef void (*OtherCallBack)(OUT char* pData, OUT int iSize, INOUT void* pContext);
// <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> HyvStream.dll <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class HYVSTREAM_API CHyvStream {
public:
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>
static void InitSdk(); //<2F><>ʼ<EFBFBD><CABC>SDK, <20><><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>һ<EFBFBD><D2BB>
static void UnInitSdk();
static CHyvStream *Create(std::string const& username, std::string const& password);
void Release();
void SetVideoCallBack(VideoCallBack pVideoCallBack, void *pContext);
void SetOtherCallBack(OtherCallBack pOtherCallBack, void *pContext);
void SetMsgCallBack(MsgCallBack pMsgCallBack, void *pContext);
void SetTransType(int iTransType);//<2F><><EFBFBD>ô<EFBFBD><C3B4>ʽ<E4B7BD><CABD>TCP<43><50>UDP
void SetDecvType(int iDecvType); //<2F><><EFBFBD><EFBFBD>Decv<63><76><EFBFBD><EFBFBD>
bool Start(char *strUrl); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ʼrtsp<73><70><EFBFBD><EFBFBD><EFBFBD>ûص<C3BB>
void Stop(); //ֹͣ<CDA3><D6B9>Ƶ,<2C>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>Rtsp
void GetVideoSize(int &iWidth, int &iHeight); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
void RunThreadDecodeSws();//<2F>̹߳<DFB3><CCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD>
#ifdef WIN32
static unsigned int WINAPI ThreadDecodeSws(LPVOID lpParam);//<2F>̺߳<DFB3><CCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ10ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>RunThreadDecodeSws
#else
static void * ThreadDecodeSws(LPVOID lpParam);
#endif
private:
CHyvStream(void);
virtual ~CHyvStream(void);
public:
void Init(int codecID, int iWidt, int iHeight);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC>Ҫ<EFBFBD><D2AA>rtsp<73><70>handleframe<6D><65><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ı<C4B1><E4BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
void ReturnMessage(int iMsgType, bool bSuccess);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
protected:
private:
MsgCallBack m_pMsgCallBack;
OtherCallBack m_pOtherCallBack;
void* m_pMsgContext;
void* m_pOtherContext;
int m_iOtherSize;
int m_iTransType;
bool m_bStartPlay;
bool m_bVideoShow;
bool m_bIsStopRunThreadDecodeSws;
char m_pUrl[200];
int m_iCnt;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#ifdef WIN32
HANDLE m_hDecodeSwsThread;
#else
pthread_t m_hDecodeSwsThread;
#endif
};
//extern HYVSTREAM_API int nHyvStream;
//HYVSTREAM_API int fnHyvStream(void);