• 大小: 0.34M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-17
  • 语言: C/C++
  • 标签: 分析  海康  接口  ES  

资源简介

实现海康私有流分析为标准流

资源截图

代码片段和文件信息

// Demo.cpp : Defines the entry point for the console application.
//
#include “afx.h“
#include “stdafx.h“
#include “windows.h“
#include “stdio.h“
#include “HCNetSDK.h“
#include “AnalyzeDataInterface.h“

#pragma comment (lib “AnalyzeData.lib“)
#pragma comment (lib “HCNetSDK.lib“)

#define BUFFER_SIZE  32 * 1024
#define HEADER_SIZE  40

class CSource
{
public:
CSource();
virtual ~CSource();

BOOL OpenFile(char* strFileName);
BOOL OpenFileStream(char* strFileName);
BOOL OpenRealStream(char* strIP);
void Close();
BOOL AnalyzeFileStream();
BOOL AnalyzeRealStream(BYTE* pData DWORD dwDataLen DWORD dwType);
BOOL AnalyzeFile(char* strFileName);

private:
HANDLE m_hFile;
HANDLE m_hThread;
BOOL   m_bStop;
BYTE*  m_pBuffer;
LONG   m_lPort;
LONG   m_lUser;
LONG   m_lPlay;
};

CSource::CSource()
{
m_hFile   = INVALID_HANDLE_VALUE;
m_hThread = NULL;
m_bStop   = FALSE;
m_pBuffer = NULL;
m_lPort   = -1;
m_lUser   = -1;
m_lPlay   = -1;
}

CSource::~CSource()
{
Close();
}

void CSource::Close()
{
if (m_hThread)
{
m_bStop = TRUE;
WaitForSingleobject(m_hThread INFINITE);

CloseHandle(m_hThread);
m_hThread = NULL;
}

if (m_pBuffer)
{
delete[] m_pBuffer;
m_pBuffer = NULL;
}

if (m_hFile != INVALID_HANDLE_VALUE)
{
CloseHandle(m_hFile);
m_hFile = INVALID_HANDLE_VALUE;
}

if (m_lPlay != -1)
{
NET_DVR_StopRealPlay(m_lPlay);
m_lPlay = -1;
}

if (m_lUser != -1)
{
NET_DVR_Logout(m_lUser);
m_lUser = -1;
}

NET_DVR_Cleanup();

if (m_lPort != -1)
{
AnalyzeDataClose(m_lPort);
m_lPort = -1;
}
}

DWORD WINAPI ReadFileThread(LPVOID lpParam)
{
CSource* pcSource = (CSource*)lpParam;

pcSource->AnalyzeFileStream();

return 1;
}

BOOL CSource::AnalyzeFileStream()
{
DWORD dwBytes = 0;

ReadFile(m_hFile m_pBuffer HEADER_SIZE &dwBytes NULL);

if ( !AnalyzeDataOpenStreamEx(m_lPort m_pBuffer) )
{
printf(“Demo: open stream failed!\n“);
return FALSE;
}

while (TRUE)
{
if (m_bStop)
{
break;
}

    ReadFile(m_hFile m_pBuffer BUFFER_SIZE &dwBytes NULL);

    if (dwBytes == 0)
{
Sleep(10);
continue;
}

    if ( !AnalyzeDataInputData(m_lPort m_pBuffer dwBytes) )
{
printf(“Demo: buffer overflow lost stream data!\n“);
}

PACKET_INFO_EX stPacket;




while (AnalyzeDataGetPacketEx(m_lPort &stPacket) == 0)
{
if (stPacket.nPacketType == VIDEO_I_frame)
{
printf(“Video I frame framenum = %u timestamp = %u size = %dx%dglobaltime=%d-%d-%d-%d-%d-%d!\n“ 
stPacket.dwframeNum stPacket.dwTimeStamp stPacket.uWidth stPacket.uHeightstPacket.nYear
stPacket.nMonthstPacket.nDaystPacket.nHourstPacket.nMinutestPacket.nSecond);


}
else if (stPacket.nPacketType == VIDEO_P_frame)
{
printf(“Video P frame framenum = %u timestamp = %u size = %dx%dglobaltime=%d-%d-%d-%d-%

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2808  2009-08-17 10:09  AnalyzeDataNewInterface.h

     文件       2895  2009-04-20 08:06  Demo_Stream\AnalyzeDataInterface.h

     文件       9369  2009-08-18 12:26  Demo_Stream\Demo.cpp

     文件       4425  2009-07-27 13:44  Demo_Stream\Demo.dsp

     文件        533  2009-04-01 08:37  Demo_Stream\Demo.dsw

     文件     590848  2009-09-10 11:13  Demo_Stream\Demo.ncb

     文件      53760  2009-09-10 11:13  Demo_Stream\Demo.opt

     文件     405584  2009-07-06 11:14  Demo_Stream\HCNetSDK.dll

     文件     134922  2009-02-04 10:24  Demo_Stream\HCNetSDK.h

     文件      72128  2008-10-14 09:39  Demo_Stream\HCNetSDK.lib

     文件        291  2009-04-01 08:37  Demo_Stream\StdAfx.cpp

     文件        667  2009-04-01 08:37  Demo_Stream\StdAfx.h

     文件      76288  2009-09-10 13:48  AnalyzeData(3.0.0.01)使用说明.doc

     文件     127067  2009-09-01 14:45  AnalyzeData.dll

     文件       6478  2009-09-15 15:29  AnalyzeData.lib

     文件     173056  2009-09-15 15:29  AnalyzeData.pdb

     文件       2981  2009-08-18 09:06  AnalyzeDataInterface.h

     目录          0  2009-09-18 16:22  Demo_Stream\Debug

     目录          0  2019-06-27 11:10  Demo_Stream

----------- ---------  ---------- -----  ----

              1664100                    19


评论

共有 条评论