⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 videoiomgr.h

📁 基于SAA7113的MPEG-4程序
💻 H
字号:
// VideoIOMgr.h: interface for the CVideoIOMgr class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_VIDEOIOMGR_H__7115876F_0FDF_4638_BC93_AB96F0662C1A__INCLUDED_)
#define AFX_VIDEOIOMGR_H__7115876F_0FDF_4638_BC93_AB96F0662C1A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "MonClientDlg.h"

//通信端口定义
#define PORT_SOCKET_CLIENT 6801
#define PORT_SOCKET_SERVER 6800

#define SIZE_VIDEO_PACKED 1500
#define SIZE_VIDEO_BUFFER (SIZE_VIDEO_PACKED*300)  //300KB
#define SIZE_BUFFER_NUM  2   //2


//pack flag
#define FLAG_AUDIO		0x3131
#define FLAG_VIDEO		0x3132
#define FLAG_CMD		0x3133
#define FLAG_AUDIOACK	0x3134
#define FLAG_VIDEOACK	0x3135

//视频数据包(含视频数据)
typedef struct
{
	short flag; //报类别
	BYTE id;	//该图像帧的序号 (1-255) (0表示空帧)
	BYTE subid;  //该报在图像帧中的序号(0-255)
	unsigned int data_size_total;	//分报前图像大小
	unsigned short data_size;	//该报数据大小
	unsigned short align;
	BYTE data[SIZE_VIDEO_PACKED]; //分报后图像数据
}AVIO_VIDEO;

//本地视频缓冲区
typedef struct
{
	BYTE id;	//该图像帧的序号 (1-255) (0表示空帧)
	unsigned int data_size_total;	//图像帧大小
	unsigned short data_size;	//当前接收到的图像大小
	BYTE data[SIZE_VIDEO_BUFFER]; //分报后图像数据
}AVIO_VIDEO_BUFFER;

//确认报
typedef struct
{
	short flag;
	BYTE id;
}AVIO_ACK;

class CVideoIOMgr  
{

public:
	static CVideoIOMgr* getInstance();
	static void releaseInstance();
	virtual ~CVideoIOMgr();

	void SetShowDlg(CMonClientDlg* pDlg);

	//接受数据
	void InputVideoPack(AVIO_VIDEO* pVPack);

protected:
	static CVideoIOMgr* m_pInstance;
	CVideoIOMgr();


private:
	
	//根据接受到的报ID得到当前的可用帧缓冲区ID
	int GetReadyBuf(BYTE rcvid);

	//利用双缓存技术对付当前的数据帧丢失现象
	AVIO_VIDEO_BUFFER m_VBuff[SIZE_BUFFER_NUM];

	CMonClientDlg* m_pDlg;

//网络通信部分

private:
	CSocket* m_pSocket;
	BYTE m_IPArr[4];
	USHORT m_iport;

public:
	void Test();
	void InitSocket(BYTE* IPArr,USHORT iport);

	void RcvSocketData();
	
};

#endif // !defined(AFX_VIDEOIOMGR_H__7115876F_0FDF_4638_BC93_AB96F0662C1A__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -