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

📄 shared.h

📁 自己在wince的环境下做的一移动数字电视驱动
💻 H
字号:

#ifndef _SHARED_H_
#define _SHARED_H_

#include "T5MP4.h"

/* All variables in this header are shared between A926 and A946 */
// DO NOT USE VALUE 0 
#define	LCD_HSIZE	480
#define	LCD_VSIZE	272

////////////////////////////////////////////////////////////////

#define TCC_CODEC_ERROR_MAILBOX_INIT   			-11
#define TCC_CODEC_ERROR_LOADTABLE_INIT   			-12
#define TCC_CODEC_ERROR_CODEC_LOAD   				-13
#define TCC_CODEC_ERROR_MEMORY_ALLOC 			-14
#define TCC_CODEC_ERROR_NOT_DECODABLE_TYPE  	-21
#define TCC_CODEC_ERROR_INPUT_SIZE  				-22
#define TCC_CODEC_ERROR_OUTPUT_BUFFER_SIZE  		-23
#define TCC_CODEC_ERROR_CODEC_INIT   				-24
#define TCC_CODEC_ERROR_DECODING  				-31

#define EC_USER_UNSUPPORTTED_VIDEO	EC_USER + 1001

////////////////////////////////////////////////////////////////

#define	_SHARED_SYNC_REG			0

#define	_SHARED_MSG_REG				3
#define	_SHARED_MSGVAL_DS			1
#define	_SHARED_MSGVAL_DSDONE		1			// from 966
#define	_SHARED_MSGVAL_VOL			2
#define	_SHARED_MSGVAL_VOLDONE		2			// from 966
#define	_SHARED_MSGVAL_VOP			3
#define	_SHARED_MSGVAL_VOPDONE		3			// from 966
#define	_SHARED_MSGVAL_END			9
#define	_SHARED_MSGVAL_SIZE			4

#define	_SHARED_MSGVAL_BSUPDATE		0xF
#define	_SHARED_MSGVAL_BSDONE		0xF			// from 946


#define	_SHARED_MSGVAL_ERROR_NOTDS		-1		// from 966
#define	_SHARED_MSGVAL_ERROR_NOTVOL		-2		// from 966
#define	_SHARED_MSGVAL_ERROR_VOPDEC		-3		// from 966
#define	_SHARED_MSGVAL_ERROR_BSUPDATE	-15		// from 966

#define _SHARED_MSG_IDLE			0			// from 946
#define _SHARED_MSG_SEND			1			// from 946
#define _SHARED_MSG_ENC_INIT		2			// from 946
#define _SHARED_MSG_ENC_MAIN		3			// from 946

#define _SHARED_MSG_ENC_BUSY		4
#define _SHARED_MSG_ENC_DONE		5
#define _SHARED_MSG_ENC_READY		6
#define _SHARED_MSG_ENC_IDLE		0

#define   _SHARED_MSGVAL_DISPLAYCUR 1
#define   _SHARED_MSGVAL_DISPLAYREF 0
#define   _SHARED_MSGVAL_IVOP       0
#define   _SHARED_MSGVAL_PVOP       1
#define   _SHARED_MSGVAL_BVOP       2
#define   _SHARED_MSGVAL_NVOP       3
#define   _SHARED_MSGVAL_NOTHING    4

#define T5MP4_PROFILE_S_L0    0x08 /* simple */
#define T5MP4_PROFILE_S_L1    0x01
#define T5MP4_PROFILE_S_L2    0x02
#define T5MP4_PROFILE_S_L3    0x03
#define T5MP4_PROFILE_ARTS_L1 0x91 /* advanced realtime simple */
#define T5MP4_PROFILE_ARTS_L2 0x92
#define T5MP4_PROFILE_ARTS_L3 0x93
#define T5MP4_PROFILE_ARTS_L4 0x94
#define T5MP4_PROFILE_AS_L0   0xf0 /* advanced simple */
#define T5MP4_PROFILE_AS_L1   0xf1
#define T5MP4_PROFILE_AS_L2   0xf2
#define T5MP4_PROFILE_AS_L3   0xf3
#define T5MP4_PROFILE_AS_L4   0xf4

#define ENC_INIT		11
#define ENC_MAIN		12

/* from A926 to A946 */
#define TCC_VCORE_SHARED_COMMAND_CODEC_INIT                 1
#define TCC_VCORE_SHARED_COMMAND_CODEC_CLOSE                2
#define TCC_VCORE_SHARED_COMMAND_CODEC_RESET                3
#define TCC_VCORE_SHARED_COMMAND_CODEC_ENC                  4
#define TCC_VCORE_SHARED_COMMAND_CODEC_DEC                  5

/* from A946 to A926 */
#define TCC_VCORE_SHARED_RESPONSE_CODEC_INIT                1
#define TCC_VCORE_SHARED_RESPONSE_CODEC_CLOSE               2
#define TCC_VCORE_SHARED_RESPONSE_CODEC_RESET               3
#define TCC_VCORE_SHARED_RESPONSE_CODEC_DEC                 4
#define TCC_VCORE_SHARED_RESPONSE_CODEC_ENC                 5

#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE1_DONE         1
#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE2_DONE         2
#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE3_DONE         3
#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE4_DONE         4

#define TCC_VCORE_SHARED_CODEC_STATUS_MORE_DATA_REQUIREMENT 5
#define TCC_VCORE_SHARED_CODEC_STATUS_ENDOFSEQUENCE         6 

#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE1_ERROR       -1
#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE2_ERROR       -2
#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE3_ERROR       -3
#define TCC_VCORE_SHARED_CODEC_STATUS_VOPTYPE4_ERROR       -4

#define TCC_VCORE_SHARED_CODEC_STATUS_ERROR1               -5
#define TCC_VCORE_SHARED_CODEC_STATUS_ERROR2               -6
#define TCC_VCORE_SHARED_CODEC_STATUS_ERROR3               -7
#define TCC_VCORE_SHARED_CODEC_STATUS_ERROR4               -8


#define TCC_VCORE_SHARED_CODEC_TYPE_MPEG1ENC                1
#define TCC_VCORE_SHARED_CODEC_TYPE_MPEG1DEC                2

#define TCC_VCORE_SHARED_CODEC_TYPE_MPEG2ENC                3
#define TCC_VCORE_SHARED_CODEC_TYPE_MPEG2DEC                4

#define TCC_VCORE_SHARED_CODEC_TYPE_MPEG4ENC                5
#define TCC_VCORE_SHARED_CODEC_TYPE_MPEG4DEC                6

#define TCC_VCORE_SHARED_CODEC_TYPE_DIVXENC                 7
#define TCC_VCORE_SHARED_CODEC_TYPE_DIVXDEC                 8

#define TCC_VCORE_SHARED_CODEC_TYPE_H263ENC                 9
#define TCC_VCORE_SHARED_CODEC_TYPE_H263DEC                10

#define TCC_VCORE_SHARED_CODEC_TYPE_H264ENC                11
#define TCC_VCORE_SHARED_CODEC_TYPE_H264DEC                12

#define TCC_VCORE_SHARED_CODEC_TYPE_WMV9ENC                13
#define TCC_VCORE_SHARED_CODEC_TYPE_WMV9DEC                14

/**************************************************************
 * TYPE
 *************************************************************/
typedef unsigned char	U8;
typedef unsigned short	U16;
typedef unsigned int	U32;
typedef char	S8;
typedef short	S16;
typedef int	S32;

typedef struct	{
	unsigned int	msg_from926[4];
	unsigned int	msg_from946[4];
} MsgBlk;

typedef struct	{
	unsigned int	addr;
	unsigned int	length;
	unsigned int	cur_offset;
	unsigned int	end;
	unsigned int	bssize;
	unsigned int	remained_bytes;
} hwBS;

typedef	union	{
	unsigned char 	cuTypeParam[400];
	signed 	 char 	csTypeParam[400];
	int		isTypeParam[100];
	unsigned int	iuTypeParam[100];
}TCC_SHARE_MEM;

typedef	struct	_IPCHeader {
	U32		sdram_addr;
	U32		heap;
	U32		internal_heap;
	
	U32		nFramenum;
	U16		nCodedWidthY;
	U16		nCodedHeightY;
	U16		nCodedWidthC;
	U16		nCodedHeightC;

	//2 for Frame Information
	U8 *		pFRefFrame;					// forward reference frame address
	U8 *		pBRefFrame;					// backward reference frame address
	U8 *		pCurFrame;						// current frame base address

	//2 for Bitstream Buffer Management
	U8 *		pBitStreamBase;					// bitstream base address
	U32		nBitStreamIdx;					// bitstream offset for slice_header code
	U32		nBitStreamSize;					// bitstream size
	U32		nBitStreamMask;					//

	//2 for Misc. Information
	U8		nSecondField;
	U8		nMpeg2Flag;
	U8		block_count;
}	IPCHeader;

typedef	struct	_IPCHeaderInfo {
	U8		f_code[2][2];
	U8		intra_dc_precision;
	U8		top_field_first;
	U8		chroma_format;
	U8		picture_structure;
	U8		picture_coding_type;
	U8		frame_pred_frame_dct;
	U8		forward_f_code;
	U8		full_pel_forward_vector;
	U8		concealment_motion_vectors;
	U8		intra_vlc_format;
	U8		full_pel_backward_vector;
	U8		backward_f_code;
	U8		q_scale_type;
	U8		alternate_scan;
	
	U8		intra_quantizer_matrix[64];
	U8		non_intra_quantizer_matrix[64];
	U8		chroma_intra_quantizer_matrix[64];
	U8		chroma_non_intra_quantizer_matrix[64];
}	IPCHeaderInfo;
typedef struct	{
	U32 		type;
	U32 		out_flag;
	U32 		used_bytes;
	U32 		numframes;
	/*
	union	{
		struct	{
			int time_base;
			int time_increment;
		} vop;
		struct	{
			int width;
			int height;
		} vol;
	} data;
	*/
	U32		general[8];
}	IPCSubStatus;

typedef struct	{
	IPCHeader			Header;
	IPCHeaderInfo		HeaderInfo;
	IPCSubStatus		SubStatus;
} TCC_MPEG2_SHARE_MEM;

#if defined(__TCC79XX_WINCE__) 
typedef struct	{
	t5mp4_dec_create_t		_shared_t5mp4_dec_create;		
	t5mp4_dec_out_t			_shared_t5mp4_dec_out;	
//	unsigned int *		_macroblock_info;
}TCC_MPEG4_SHARE_MEM;
#else
typedef struct	{
	t5mp4_dec_create_t		_shared_t5mp4_dec_create;		
	t5mp4_dec_out_t			_shared_t5mp4_dec_out;	
		unsigned int *		_macroblock_info;
}TCC_MPEG4_SHARE_MEM;
#endif

typedef union tagTCCSharedInstance {
		TCC_SHARE_MEM 		_shared_dec_mem;
		TCC_MPEG4_SHARE_MEM 	_shared_mp4_dec_mem;
		TCC_MPEG2_SHARE_MEM	_shared_mp2_dec_mem;
} uTCCSharedInstance;	


typedef struct	{
	// Order is never changed!!!
	hwBS gHwBS;
	MsgBlk gMsg;
	uTCCSharedInstance guTCCSharedInstance;
}sSHAREDMEM;


typedef struct {
	unsigned int	SRCBASEY;		
	unsigned int	SRCBASEU;		
	unsigned int	SRCBASEV;		
	unsigned int	SRCSIZE;		
	unsigned int	SRCOFF;		
	unsigned int	SRCCFG;		
	unsigned int	UNUSED1;
	unsigned int	UNUSED2;     
	unsigned int	DSTBASEY;		
	unsigned int	DSTBASEU;		
	unsigned int	DSTBASEV;		
	unsigned int 	DSTSIZE;		
	unsigned int	DSTOFF;		
	unsigned int	DSTCFG;		
	unsigned int	UNUSED3;
	unsigned int	UNUSED4;
	unsigned int	MSCINF;		
	unsigned int	MSCCTR;		
	unsigned int	MSCSTR;		
}MSC_REG;

#endif

⌨️ 快捷键说明

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