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

📄 avi_header.h

📁 凌阳SPCE3200多媒体开发板自带源程序。共安排了32个子目录
💻 H
字号:
// SUNPLUS  S+core IDE generated include file.#ifndef AVICSI_AVI_HEADER_H_18467_41__INCLUDED_#define AVICSI_AVI_HEADER_H_18467_41__INCLUDED_//ADD by ww#include ".\Function\VideoCodec\HW\mp4_DecodeEncodeAPI.h"//#define H263_SUB_QCIF#define H263_QCIF//#define H263_CIF//#define H263_4QCIF#ifdef H263_SUB_QCIF#define H263_FORMAT 0x2#define H263_WIDTH  128#define H263_HEIGHT 96#endif#ifdef H263_QCIF#define H263_FORMAT 0x4#define H263_WIDTH  176#define H263_HEIGHT 144#endif#ifdef H263_CIF#define H263_FORMAT 0x6#define H263_WIDTH  352#define H263_HEIGHT 288#endif#ifdef H263_4CIF#define H263_FORMAT 0x8#define H263_WIDTH  704#define H263_HEIGHT 576#endif#define MP4_WIDTH  320#define MP4_HEIGHT 240#define DECODER_WORK#define ENCODER_WORK//#define ENCODER_COUNT   (P_FRAME_NUMBER+1)//#define DECODER_COUNT   (P_FRAME_NUMBER+1)#define ENCODER_COUNT   (1)#define DECODER_COUNT   (1)#define AVI_TOTAL_FRAME 10                  //original 500 for one buffer#define AVI_TOTAL_FRAME_FOR_DECODER       #define AVI_FILE_BUFFER_START_ADDRESS   0x80600000#define AVI_FILE_BUFFER_START_ADDRESS_B 0x80800000#define AVI_FILE_BUFFER_START_ADDRESS_C 0x80a00000  //a#define AVI_FILE_BUFFER_START_ADDRESS_D 0x80b00000  //c#define AVI_FILE_BUFFER_LIMIT		        0x00200000  //original 2Mb#define AVI_FILE_BUFFER_LIMIT_FOR_DECODER   0x00200000  //original 2Mb#define I_WANT_TO_DISPALY_FILM#define DECODER_BUFFER_SIZES  0xA0000#define DECODER_BUFFER_ONE    0x10000#define KEY_WORD_NUM 7#define FCC_TYPE_00DB   0#define FCC_TYPE_00DC   1#define FCC_TYPE_01WB   2   #define FCC_TYPE_JUNK   3  #define FCC_TYPE_IDX1   4#define FCC_TYPE_AVIH   5 #define FCC_TYPE_01b5   6 #define A_BUFFER 0#define B_BUFFER 1#define C_BUFFER 2#define D_BUFFER 3#define CHANGE_OK 0#define CHANGE_FAIL 1#define TOTAL_FRAME_FOR_ONE_FILE  57600  #define TOTAL_FRAME_FOR_ONE_DECODE 57600       #define REVERSE(j)   (((j<<24) & 0xFF000000) | ((j<<8) & 0x00FF0000) | ((j>>8) & 0x0000FF00) | ((j>>24) & 0x000000FF))#define SWITCH_ERROR_BUFFER 0x1000//End#ifdef HERE_NEED_AVI_HEADER_DEFINE#define AVIHEADLEN1  			0xd4  //it is must be multiple of 4#define MP4_HEADER_LENGTH       44  //bytes #define AVIHEADLEN2  			MP4_HEADER_LENGTH+20  //it is must be multiple of 4#define TOTAL_FRAME1_OFFSET     0x30#define TOTAL_FRAME2_OFFSET     0x8c#define IMAGE_WIDTH1_OFFSET	  	0x40#define IMAGE_HEIGHT1_OFFSET   	0x44#define IMAGE_WIDTH2_OFFSET	  	0xb0#define IMAGE_HEIGHT2_OFFSET   	0xb4#define IMAGE_RIGHT_OFFSET      0xa0#define IMAGE_BOTTOM_OFFSET     0xa2#ifdef H263_CODECunsigned char AVIHEAD1[AVIHEADLEN1]={/*         'R'  'I'  'F'  'F'   length    4Bytes   'A'  'V'  'I'  ' '  'L'  'I'  'S'  'T' *//*    0 */0x52,0x49,0x46,0x46,0x00,0x00,0x00,0x00,0x41,0x56,0x49,0x20,0x4c,0x49,0x53,0x54,/*          length  192 bytes  'h'  'd'  'r'  'l'  'a'  'v'  'i'  'h'   length 56 bytes *//*   10 */0xc0,0x00,0x00,0x00,0x68,0x64,0x72,0x6c,0x61,0x76,0x69,0x68,0x38,0x00,0x00,0x00,/*		  dwMicroSecPerFrame ,dwMaxBtyesPerSec   ,dwPaddingGranularity, dwFlags*//*   20 */0x6a,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,/*		   dwTotalFrames     , 	dwInitialFrames  ,	 dwStreams       , dwSuggestedBufferSize*//*   30 */0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*			dwWidth=320      , 	dwHeight=240     ,	dwScale          , 	dwRate *//*   40 */0x40,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*			dwStart          , dwLength          , 'L'  'I'  'S'  'T'  length 116 bytes *//*   50 */0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x49,0x53,0x54,0x74,0x00,0x00,0x00,/* 		   's'  't'  'r'  'l'  's'  't'  'r'  'h'  length 56bytes    , 'v'  'i'  'd'  's' *//*   60 */0x73,0x74,0x72,0x6c,0x73,0x74,0x72,0x68,0x38,0x00,0x00,0x00,0x76,0x69,0x64,0x73,/*		   'd'  'i'  'v'  'x'  dwFlags           ,wPriority,wLanguage,dwInitialFrames *//*   70 */0x73,0x32,0x36,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*		    dwScale          ,dwRate             ,dwStart            ,dwLength*//*   80 */0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,/*      dwSuggestedBufferSize,  dwQuality        ,dwSampleSize       ,left     , top*//*   90 */0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*        right    ,bottom   , 's'  't'  'r'  'f', length 40 bytes   ,dwSize *//*   a0 */0x40,0x01,0xf0,0x00,0x73,0x74,0x72,0x66,0x28,0x00,0x00,0x00,0x28,0x00,0x00,0x00,/*        dwWdith            ,dwHeight           ,wPlanes  ,wBitCount, 'D'  'I'  'V'  'X' *//*   b0 */0x40,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x73,0x32,0x36,0x33,/*        SizeImage          ,xPelsPerMeter      ,YPelsPerMeter      ,ColorUsed*//*   c0 */0x00,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*		  ColorsImportant     *//*   d0 */0x00,0x00,0x00,0x00};#elseunsigned char AVIHEAD1[AVIHEADLEN1]={/*         'R'  'I'  'F'  'F'   length    4Bytes   'A'  'V'  'I'  ' '  'L'  'I'  'S'  'T' *//*    0 */0x52,0x49,0x46,0x46,0x00,0x00,0x00,0x00,0x41,0x56,0x49,0x20,0x4c,0x49,0x53,0x54,/*          length  192 bytes  'h'  'd'  'r'  'l'  'a'  'v'  'i'  'h'   length 56 bytes *//*   10 */0xc0,0x00,0x00,0x00,0x68,0x64,0x72,0x6c,0x61,0x76,0x69,0x68,0x38,0x00,0x00,0x00,/*		  dwMicroSecPerFrame ,dwMaxBtyesPerSec   ,dwPaddingGranularity, dwFlags*//*   20 */0x6a,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,/*		   dwTotalFrames     , 	dwInitialFrames  ,	 dwStreams       , dwSuggestedBufferSize*//*   30 */0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*			dwWidth=320      , 	dwHeight=240     ,	dwScale          , 	dwRate *//*   40 */0x40,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*			dwStart          , dwLength          , 'L'  'I'  'S'  'T'  length 116 bytes *//*   50 */0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x49,0x53,0x54,0x74,0x00,0x00,0x00,/* 		   's'  't'  'r'  'l'  's'  't'  'r'  'h'  length 56bytes    , 'v'  'i'  'd'  's' *//*   60 */0x73,0x74,0x72,0x6c,0x73,0x74,0x72,0x68,0x38,0x00,0x00,0x00,0x76,0x69,0x64,0x73,/*		   'd'  'i'  'v'  'x'  dwFlags           ,wPriority,wLanguage,dwInitialFrames *//*   70 */0x64,0x69,0x76,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*		    dwScale          ,dwRate             ,dwStart            ,dwLength*//*   80 */0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,/*      dwSuggestedBufferSize,  dwQuality        ,dwSampleSize       ,left     , top*//*   90 */0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*        right    ,bottom   , 's'  't'  'r'  'f', length 40 bytes   ,dwSize *//*   a0 */0x40,0x01,0xf0,0x00,0x73,0x74,0x72,0x66,0x28,0x00,0x00,0x00,0x28,0x00,0x00,0x00,/*        dwWdith            ,dwHeight           ,wPlanes  ,wBitCount, 'D'  'I'  'V'  'X' *//*   b0 */0x40,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x44,0x49,0x56,0x58,/*        SizeImage          ,xPelsPerMeter      ,YPelsPerMeter      ,ColorUsed*//*   c0 */0x00,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*		  ColorsImportant     *//*   d0 */0x00,0x00,0x00,0x00};#endif //#ifdef H263_CODEC#define MP4_HEAD_IMAGE_WIDTH_HEIGHT_OFFSET 0x2a  //original 0x28unsigned char AVIHEAD2[AVIHEADLEN2]={/*         'L'  'I'  'S'  'T'  length 4 Byte     , 'm'  'o'  'v'  'i'  '0'  '0'  'd'  'b'*//*    0 */0x4c,0x49,0x53,0x54,0x00,0x00,0x00,0x00,0x6d,0x6f,0x76,0x69,0x30,0x30,0x64,0x62,/*		   length 4 Bytes    ,visual_object_sequence,profile, visual_object*//*   10 */0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xb0,0x01,0x00,0x00,0x01,0xb5,0x09,0x00,0x00,/*    video_object ,video_object_layer ,*//*   20 */0x01,0x00,0x00,0x00,0x01,0x20,0x00,0x84,0x5d,0x4c,0x28,0x50,0x20,0xf0,0xa2,0x1f,/*             user data	 , 'S'  'u'  'n'  'p'  'l'  'u'  's'  ' '  'R'  '0'  '1'  '2'*//*   30 */0x00,0x00,0x01,0xb2,0x53,0x75,0x6e,0x70,0x6c,0x75,0x73,0x20,0x52,0x30,0x31,0x32};#define SECTOR_BYTES 1024//#define SECTOR_BYTES 2048 //for CD-ROM a sector = 2048 bytes#endif	unsigned int fill_avi_header(unsigned int address_ptr,unsigned int width,unsigned int height,unsigned int *MOVI_Sizes_Addr);unsigned int add_chunk_00db(unsigned int address_ptr,unsigned int vop_address_index);void fill_chunk_size(unsigned int start_ptr,unsigned int offset,unsigned int size);unsigned int fill_avi_junk(unsigned int address_ptr,unsigned int base_ptr,unsigned int offset,int fill_0_flag);unsigned int fill_avi_idx1(unsigned int address_ptr,unsigned int *vop_address_array,unsigned int *vop_length_array,unsigned int vop_address_index);	void fill_FCC(unsigned int start_address,char a,char b,char c,char d);void fill_4byte_number(unsigned int start_address,unsigned int number);void fill_2byte_number(unsigned int start_address,unsigned int number);unsigned int get_MP4_HEADER_LENGTH(void);void fill_avi_frame_num(unsigned int start_address,unsigned int framenum);void fill_movi_size(unsigned int first_frame_address,unsigned int movi_size);void fill_avi_file_size(unsigned int start_address,unsigned int file_size);unsigned int avi_frame_encode(unsigned int address_ptr,unsigned int base_ptr,unsigned int *vop_address_array,unsigned int *vop_length_array,unsigned int vop_address_index,unsigned int BufferAB);//add by wwunsigned int fill_avi_idx1_to_file(int fp,unsigned int address_ptr,unsigned int *vop_address_array,unsigned int *vop_length_array,unsigned int vop_address_index);	//end//add by wwextern unsigned int vop_address_array[AVI_TOTAL_FRAME];extern unsigned int vop_length_array[AVI_TOTAL_FRAME];extern unsigned int vop_address_index;extern unsigned int avi_file_buffer_safe_flag;extern unsigned int a;extern unsigned int address_ptr;extern unsigned int avi_file_end_ptr;extern volatile unsigned int MP4_Ddecode_Flag;extern unsigned int uiABuffer;extern unsigned int uiChangeBufferOK;extern unsigned int vop_address_array_b[AVI_TOTAL_FRAME];extern unsigned int vop_length_array_b[AVI_TOTAL_FRAME];extern unsigned int vop_address_index_b;extern unsigned int avi_file_buffer_safe_flag_b;extern unsigned int b;extern unsigned int address_ptr_b;extern unsigned int avi_file_end_ptr_b;extern unsigned int ABufferReady,BBufferReady;extern unsigned int MP4_EOF;extern unsigned int MOVI_Sizes_Addr;extern unsigned int TotalFrameNum;extern unsigned int StartAVI;extern unsigned int vop_address_array_for_file[TOTAL_FRAME_FOR_ONE_FILE];extern unsigned int vop_length_array_for_file[TOTAL_FRAME_FOR_ONE_FILE];extern unsigned int address_ptr_for_file;extern unsigned int address_ptr_A,address_ptr_B;extern unsigned int CurrentFilePtr;extern unsigned int EvWidth,EvHigh;extern unsigned int DvWidth,DvHigh;//end#ifdef DECODER_WORKextern unsigned int vop_address_array_c[AVI_TOTAL_FRAME];extern unsigned int vop_length_array_c[AVI_TOTAL_FRAME];extern unsigned int vop_address_index_c;extern unsigned int avi_file_buffer_safe_flag_c;extern unsigned int c;extern unsigned int address_ptr_c;extern unsigned int avi_file_end_ptr_c;extern unsigned int uiCDuffer;extern unsigned int uiChangeBufferOK_CD;extern unsigned int vop_address_array_d[AVI_TOTAL_FRAME];extern unsigned int vop_length_array_d[AVI_TOTAL_FRAME];extern unsigned int vop_address_index_d;extern unsigned int avi_file_buffer_safe_flag_d;extern unsigned int d;extern unsigned int address_ptr_d;extern unsigned int avi_file_end_ptr_d;extern unsigned int CBufferReady,DBufferReady;extern unsigned int address_ptr_temp;extern unsigned int vop_address_array_for_decode_video[TOTAL_FRAME_FOR_ONE_DECODE];extern unsigned int vop_length_array_for_decode_video[TOTAL_FRAME_FOR_ONE_DECODE];extern unsigned int TotalDecodeFrames;extern unsigned int dvFrameNum;extern unsigned int DecodeEnd;extern unsigned char Key_Word[KEY_WORD_NUM][5];#endif#endif //AVICSI_AVI_HEADER_H_18467_41__INCLUDED_

⌨️ 快捷键说明

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