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

📄 pixfileformat.h

📁 MP4编码源码
💻 H
字号:

#ifndef _PIXFILEFORMAT_H_2003_12_12
#define _PIXFILEFORMAT_H_2003_12_12

typedef struct _PIXFILEHEADER 
{
	unsigned char	FileType[4];				// 颇老狼 屈侥 		? “PIX“
	unsigned int Version;					// 颇老器杆狼 滚傈 	? 1
	struct _VIDEO{
		unsigned char VideoType[4];		// 胶飘覆 屈侥		? “MP4 “
		unsigned int Width;				// 承捞			? 176
		unsigned int Height;				// 臭捞			? 144
		unsigned int Framerate;			// 橇饭烙啦		? 15
		unsigned int TotalFrame;			// 醚橇饭烙荐		? XXX
		unsigned int uiVideoDataStartPos;
		unsigned int uiVideoDataLength;
		unsigned int VideoHeader_Length;	// 庆歹狼 辨捞		? XXX
		unsigned int VideoHeader_Offset;	// 庆歹狼 矫累困摹	? XXX		
		unsigned int IndexTable_Length;	// 牢郸胶狼 醚辨捞	? XXX
		unsigned int IndexTable_Offset;	// 牢郸胶狼 矫累困摹	? XXX
	}VIDEO;
	struct _AUDIO{
		unsigned char AudioType[4];		// 胶飘烙 屈侥		? “MP3”
		unsigned int BitsPerSample;		// 檬寸 厚飘		? 16
		unsigned int SamplesPerSec;		// 檬寸 基敲傅		? 44100
		unsigned int Channels;				// 盲澄			? 2
		unsigned int TotalFrame;			// 醚橇饭烙荐		? XXX		
		unsigned int uiAudioDataStartPos;
		unsigned int uiAudioDataLength;
		unsigned int IndexTable_Length;	// 牢郸胶狼 醚辨捞	? XXX
		unsigned int IndexTable_Offset;	// 牢郸胶狼 矫累困摹	? XXX
	}AUDIO;
} PIXFILEHEADER, *PPIXFILEHEADER;

typedef struct _ELEMENTSTREAM
{
	unsigned int uiTotalDataLength;
	unsigned int uiAdvancedDataLength;
	unsigned int uiTotalFrame;
	unsigned int uiOrgPos;
	unsigned int uiStartPosInBuf;
	unsigned int uiEndPosInBuf;	
	unsigned int uiMaxBufSize;
	unsigned int uiActualBufSize;	
	unsigned int* pBuf;
}ELEMENTSTREAM, *PELEMENTSTREAM;


typedef struct _AVIDX
{
	unsigned int uiPos;
	unsigned int uiSize;
}AVIDX, *PAVIDX, **PPAVIDX;


typedef struct _VIDEOFRAMEINFO
{
	int iPts;
	unsigned char ucHeaderType;
	unsigned char ucReserved[3];
}VIDEOFRAMEINFO, *PVIDEOFRAMEINFO;

typedef struct _DPBFRAMEINFO
{
	int iFrame;
	int iPts;
}DPBFRAMEINFO, *PDPBFRAMEINFO;

typedef struct _AUDIOFRAMEINFO
{
	int iPts;
	unsigned char BitsPerSample;
	unsigned char Channels;	
	unsigned short SamplesPerSec;
}AUDIOFRAMEINFO, *PAUDIOFRAMEINFO;

#define VIDEO_FRAME_TYPE_VOL				(0)
#define VIDEO_FRAME_TYPE_DATA				(1)

#define PIX_FILE_VERSION					(3)
#define PIX_FILE_TYPE_STRING				("PIX ")
#define VIDOE_TYPE_STRING					("MP4V")
#define AUDIO_TYPE_STRING					("MP3 ")

#define MAX_SIZE_OF_VIDEO_INDEX_TABLE	(64*1024)
#define MAX_SIZE_OF_AUDIO_INDEX_TABLE	(64*1024)
#define MAX_SIZE_OF_VIDEO_STREAM_BUF		(64*1024)
#define MAX_SIZE_OF_AIDEO_STREAM_BUF		(64*1024)
#define MAX_SIZE_OF_VIDEO_FRAME			(32*1024)
#define MAX_SIZE_OF_AUDIO_FRAME			(576)//(2*1024) MP3 32kHz
#define MAX_NUM_OF_VFB_ELEMENT			(16)
#define MAX_SIZE_OF_VFB_ELEMENT			(MAX_SIZE_OF_VIDEO_FRAME)
#define MAX_NUM_OF_AFB_ELEMENT			(64)
#define MAX_SIZE_OF_AFB_ELEMENT			(MAX_SIZE_OF_AUDIO_FRAME)

#ifndef EXTERN
#ifdef __cplusplus
#define EXTERN extern "C"
#else
#define EXTERN extern
#endif
#endif

EXTERN void* g_hVFB;
EXTERN void* g_hAFB;

//EXTERN int InitDeMuxPixFileForamt();

#ifdef WIN32
//EXTERN int DeMuxPixFileFormat(void* hNotify);
#else
//EXTERN int DeMuxPixFileFormat();
extern int DeMuxPixFileFormat(char* pFileName);
#endif

#endif

⌨️ 快捷键说明

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