亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ftmcp100.h

?? 基于Linux的ffmepg decoder
?? H
?? 第 1 頁 / 共 2 頁
字號:
/**
 *  @file ftmcp100.h
 *  @brief This file consists of various kind of definitions for ftmcp100 media 
 *         coprocessor architecture.
 *
 */
#ifndef FTMCP100_H
#define FTMCP100_H

//---------------------------------------------------------------------------
/*****************************************************************************
 *  Platform Options and Settings
 ****************************************************************************/
/**
 * Since there are different kind of hardware versions, so we define following flag 
 * here to distinguish between various kind of hardware core.
 *
 *  We put these flags in project setting instead inside the program body. Well,just
 *  write these flags here for the purpose of reminder and explanation.
 *  Don't define these flags inside program. Define them in project settings.
 *
 *  #define CORE_VERSION_1
 *  #define CORE_VERSION_2
 *  #define FIE8120
 *
 *  Well, basically the 'FIE8120_TARGET' target belongs to CORE_VERSION_2 with some differences
 *  listed below :
 *    - For FIE8120_TARGET, just like CORE_VERSION_1 , the field 
 *     'Local Memory Base Address' in DMA's 'Local Memory Base Address Register' 
 *      register is still one word address instead of 2 words addresses. Hence,we 
 *      don't have to use TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS() macro.
 *    - For FIE8120_TARGET, since there is no embedded CPU like CORE_VERSION_2, so we
 *      we must make base address offset similar to CORE_VERSION_1.
 *
 */
#if (!defined(CORE_VERSION_1) && !defined(CORE_VERSION_2))
  #error "Please define the hardware core version (either CORE_VERSION_1 or CORE_VERSION_2)"
#endif

//---------------------------------------------------------------------------
/**
 *  Our MPEG4 encoder will run on both RTL platform and FPGA platform. For 
 *  the purpose of one unified single MPEG4 firmware code, we integrate the 
 *  codes on both platforms together and define two flags to decide the platform.
 *  But these two flags will be defined in project setting instead within code 
 *  body. We just write these flags here for the purpose of reminder.
 *  Don't define these two flags in program. Define them in project settings.
 *  #define FPGA_PLATFROM
 *  #define RTL_PLATFORM
 */
#if defined(FPGA_PLATFORM)
    //#define DUMP_RECONSTRUCTED_RESULT /**< To instrcut the MPEG4 encoder to dump 
    //                                   *   the result of reconstructed image.
    //                                   */
                             
    //#define DUMP_ME_RESULT  /**< This flag was used for debug purpose -- mainly
    //                         *   used for dumping the ME result to file under
    //                         *   FPGA platform
    //                         */
                             
    //#define DUMP_PMV_RESULT /**< This flag was used for debug purpose -- mainly
    //                         *   used for dumping the PMV to file under
    //                         *   FPGA platform
    //                         */  
    
    //#define DUMP_WITH_RADDR  /**< to dump the raddr setting together while 
    //                          *   DUMP_PMV_RESULT flag is enabled
    //                          */  
    
#elif defined(RTL_PLATFORM)

#else
  #error "Please define the platfrom flags in project setting (either FPGA_PLATFORM or RTL_PLATFORM)"
#endif
//---------------------------------------------------------------------------
#ifdef CORE_VERSION_1
  #define ME_COMMAND_QUEUE_ADDR     0x200
  #define DMA_COMMAND_LOCAL_ADDR    0x480
  #define INTRA_QUANT_TABLE_ADDR    0x7C00
  #define INTER_QUANT_TABLE_ADDR    0x7D00
#elif defined(CORE_VERSION_2)
  #ifdef FIE8120
    #define ME_COMMAND_QUEUE_ADDR     0x200
    #define DMA_COMMAND_LOCAL_ADDR    0x480
    #define INTRA_QUANT_TABLE_ADDR    0x7C00
    #define INTER_QUANT_TABLE_ADDR    0x7D00  
  #else
    #define ME_COMMAND_QUEUE_ADDR     0x10200
    #define DMA_COMMAND_LOCAL_ADDR    0x10480
    #define INTRA_QUANT_TABLE_ADDR    0x17C00
    #define INTER_QUANT_TABLE_ADDR    0x17D00
  #endif
#else
  #error "Please define the hardware core version (either CORE_VERSION_1 or CORE_VERSION_2)"
#endif

#ifdef FIE8120
  #define TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(v) ((uint32_t)v)
#else
  #define TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(v) ( (((((uint32_t)v)|0x10000)>>1)&0x0fffffffc) | (((uint32_t)v)&0x03) )
#endif
#define DZQAR					    0x8000800
#define stride_MB				    384
#define DMA_COMMAND_QUEUE_STRIDE    48
//---------------------------------------------------------------------------
/*****************************************************************************
 *  DMA move things
 ****************************************************************************/
#if defined(CORE_VERSION_1)
  // For hardware code version 1, the DMA chain commands must move from
  // local memory to system memory and start the DMA mechanism directly
  // from system memory.
  #define DMA_MOVE(v1, v2) \
	pmdma->Status = 0; \
	pmdma->SMaddr = pCodec->DMA_COMMAND_system_phy; \
	pmdma->LMaddr = (DMA_COMMAND_LOCAL_ADDR+(v1<<2)); \
	pmdma->BlkWidth = 0; \
	pmdma->CCA = (uint32_t) pCodec->DMA_COMMAND_system_phy; \
	pmdma->Control = v2;
	
#elif defined(CORE_VERSION_2)
  // For hardware code version 2, hardware code has improved and allows DMA 
  // chain commands to start the DMA mechansim directly from local memory 
  // without moving to system memory like hardware code version 1. So we
  // modify the code and allow it to start the DMA procedure directly from
  // local memory.
  // make the transfer length to 0 , and specify command source as local memory

//  #define DMA_MOVE(v1, v2)\
//    pmdma->Status = 0;\
//    pmdma->CCA = (uint32_t)(DMA_COMMAND_LOCAL_ADDR+(v1<<2))| 0x02;\
//    pmdma->Control =(uint32_t) 0x04A00000;
  #define DMA_MOVE(v1, v2) pmdma->Status = 0;  pmdma->CCA = (uint32_t)(DMA_COMMAND_LOCAL_ADDR+(v1<<2))| 0x02;  pmdma->Control =(uint32_t) 0x04A00000;
  
#else
  #error "Please define the hardware core version (either CORE_VERSION_1 or CORE_VERSION_2)"
#endif
//---------------------------------------------------------------------------

  typedef struct MP4Tag {
    uint32_t MECTL;
    uint32_t MEPMV;
    uint32_t MECR;
    uint32_t MIN_SADMV;
    uint32_t CMDADDR;
    uint32_t MECADDR;
    uint32_t HOFFSET;
    uint32_t MCCTL;
    uint32_t MCCADDR;
    uint32_t MEIADDR;
    uint32_t CPSTS;
    uint32_t QCR_0;
    uint32_t QCR_1;
    uint32_t QCR_2;
    uint32_t QAR;
    uint32_t CKR;
    uint32_t ACDCPAR;
    uint32_t VOADR;
    uint32_t CURDEV;
    uint32_t BADR;
    uint32_t BALR;
    uint32_t MVXYD;
    uint32_t MCIADDR;
    uint32_t VLDCTL;
    uint32_t VOP0;
    uint32_t VOP1;
    uint32_t SCODE;
    uint32_t RSMRK;
    uint32_t TOADR;
    uint32_t VLDSTS;
    uint32_t ASADR;
    uint32_t INTEN;
    uint32_t VOPSIZE;
    uint32_t PMVBUF;
  } MP4_t;
  
  #define DECLARE_MP4_PTR volatile MP4_t *ptMP4 = (MP4_t *)(pCodec->pCoreBaseAddr + MP4_OFFSET);
  
  #ifdef CORE_VERSION_1
    #define MP4_OFFSET  0x10000
	#define MDMA1 ((volatile MDMA *)( 0x10400 + pCodec->pCoreBaseAddr))
  #elif defined(CORE_VERSION_2)
    #ifdef FIE8120
      #define MP4_OFFSET  0x10000
	  #define MDMA1 ((volatile MDMA *)( 0x10400 + pCodec->pCoreBaseAddr))
    #else
      #define MP4_OFFSET  0x20000
      #define MDMA1 ((volatile MDMA *)( 0x20400 + pCodec->pCoreBaseAddr))
    #endif
  #else  
    #error "Please define the hardware core version (either CORE_VERSION_1 or CORE_VERSION_2)"    
  #endif
  
    #define READ_CPSTS(v) 		v=ptMP4->CPSTS;		// coprocessor status register
	#define READ_VOADR(v)		v=ptMP4->VOADR;
	#define READ_MIN_SADMV(v) 	v=ptMP4->MIN_SADMV;
	#define READ_CURDEV(v) 		v=ptMP4->CURDEV;
	#define READ_BALR(v) 		v=ptMP4->BALR;
	#define READ_VOP0(v)        v=ptMP4->VOP0;
	#define READ_VLDSTS(v) 		v=ptMP4->VLDSTS;
	#define READ_ASADR(v) 		v=ptMP4->ASADR;
	
	#define SET_BADR(v)		    ptMP4->BADR=v;	
	#define SET_BALR(v)			ptMP4->BALR=v;
	#define SET_MCCADDR(v) 		ptMP4->MCCADDR=v; // MC current block start address register
	#define SET_QAR(v) 			ptMP4->QAR=v; // Quantization block address register
	#define SET_CKR(v) 			ptMP4->CKR=v;
	#define SET_MEIADDR(v) 		ptMP4->MEIADDR=v; // ME interpolation block start address register
	#define SET_CMDADDR(v) 		ptMP4->CMDADDR=v;
	#define SET_MECADDR(v) 		ptMP4->MECADDR=v; // ME current block start address register
	#define SET_ACDCPAR(v) 		ptMP4->ACDCPAR=v; // ACDC Predictor Buffer Address Register
	#define SET_VOADR(v) 		ptMP4->VOADR=v;
	#define SET_MCIADDR(v) 		ptMP4->MCIADDR=v;
	#define SET_QCR_0(v) 		ptMP4->QCR_0=v;
	#define SET_QCR_1(v) 		ptMP4->QCR_1=v;
	#define SET_QCR_2(v)	 	ptMP4->QCR_2=v;
	#define SET_MCCTL(v) 		ptMP4->MCCTL=v;
	#define SET_HOFFSET(v) 		ptMP4->HOFFSET=v; // Horizontal offset to reference block address
	#define SET_MECR(v)			ptMP4->MECR=v;
	#define SET_MEPMV(v) 		ptMP4->MEPMV=v;
	#define SET_MECTL(v) 		ptMP4->MECTL=v;	  // ME Control Register
	#define SET_VLDCTL(v) 		ptMP4->VLDCTL=v;
	#define SET_VOP0(v)         ptMP4->VOP0=v;
	#define SET_ASADR(v) 		ptMP4->ASADR=v;
	
    #define SET_MVXYD(v)        ptMP4->MVXYD=v;
	#define SET_VOPSIZE(v) 		ptMP4->VOPSIZE=v;
	#define SET_PMVBUF(v) 		ptMP4->PMVBUF=v;
  
/*	
  #ifdef CORE_VERSION_1
	#define MDMA1 ((volatile MDMA *)( 0x10400 + pCodec->pCoreBaseAddr))

	#define MECTL       (0x10000 + pCodec->pCoreBaseAddr)
	#define MEPMV       (0x10004 + pCodec->pCoreBaseAddr)
	#define MECR        (0x10008 + pCodec->pCoreBaseAddr)
	#define MIN_SADMV   (0x1000c + pCodec->pCoreBaseAddr)
	#define CMDADDR     (0x10010 + pCodec->pCoreBaseAddr)
	#define MECADDR     (0x10014 + pCodec->pCoreBaseAddr)
	#define HOFFSET     (0x10018 + pCodec->pCoreBaseAddr)
	#define MCCTL       (0x1001c + pCodec->pCoreBaseAddr)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影一区二区| 欧美日韩国产一区二区三区地区| 成人午夜看片网址| 欧美亚男人的天堂| 精品成人私密视频| 亚洲v日本v欧美v久久精品| 国产精品99久久久久久宅男| 91色|porny| 欧美—级在线免费片| 日韩1区2区日韩1区2区| 91麻豆视频网站| 国产精品素人一区二区| 韩国v欧美v亚洲v日本v| 制服视频三区第一页精品| 国产精品久久久一本精品 | 天堂va蜜桃一区二区三区漫画版| 岛国av在线一区| 欧美午夜在线观看| 国产精品电影院| 国产一区二区精品久久91| 欧美优质美女网站| 国产清纯美女被跳蛋高潮一区二区久久w | 久久久久国产一区二区三区四区 | 又紧又大又爽精品一区二区| 福利91精品一区二区三区| 精品欧美黑人一区二区三区| 午夜免费久久看| 91久久精品一区二区三区| 国产三级欧美三级| 国产成人av电影在线观看| 久久久精品日韩欧美| 国内精品不卡在线| 久久久亚洲国产美女国产盗摄| 另类小说图片综合网| 欧美第一区第二区| 精品中文字幕一区二区| 日韩欧美高清在线| 国产综合一区二区| 国产丝袜在线精品| 成人午夜视频网站| 亚洲女人的天堂| 欧美视频一区二区| 男女性色大片免费观看一区二区| 欧美一区二区三区免费观看视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美一区二区日韩一区二区| 久久av资源网| 国产精品女主播在线观看| 91在线一区二区三区| 亚洲高清三级视频| 日韩一级在线观看| 国产一区二区精品久久91| 中文字幕亚洲不卡| 欧美日韩视频在线观看一区二区三区| 亚洲女子a中天字幕| 欧美日韩国产高清一区二区| 精品一区二区三区在线播放视频| 国产精品狼人久久影院观看方式| 欧洲精品中文字幕| 蓝色福利精品导航| 日本一区二区成人在线| 91成人免费网站| 麻豆国产欧美日韩综合精品二区 | 欧洲av在线精品| 久国产精品韩国三级视频| 国产精品嫩草影院com| 欧美在线不卡一区| 国产福利91精品| 日韩精品乱码av一区二区| 中文字幕乱码日本亚洲一区二区| 一本色道a无线码一区v| 日本少妇一区二区| 国产精品高潮呻吟| 日韩精品一区二区三区视频| 一本到不卡免费一区二区| 日本系列欧美系列| 亚洲欧美二区三区| 久久久久久久久久电影| 欧美日韩和欧美的一区二区| 成人看片黄a免费看在线| 午夜国产不卡在线观看视频| 国产欧美一区二区在线| 欧美一区二区私人影院日本| 日本韩国欧美一区| 高清国产午夜精品久久久久久| 亚洲一区二区美女| 欧美激情资源网| 日韩免费性生活视频播放| 一本久久精品一区二区| 成人一级视频在线观看| 免费看日韩精品| 亚洲成在线观看| 国产精品福利av| 中文字幕精品一区二区精品绿巨人 | 色婷婷国产精品久久包臀| 国精产品一区一区三区mba桃花 | 久久精品国产**网站演员| 专区另类欧美日韩| 国产日韩精品一区二区三区| 欧美大片一区二区| 欧美日韩成人激情| 欧美羞羞免费网站| 91精品福利视频| 日本高清视频一区二区| 99久久777色| 不卡的av在线播放| 成人免费看片app下载| av动漫一区二区| 国产精品1区2区| 国产一区二区精品久久99| 激情综合色综合久久| 极品销魂美女一区二区三区| 日韩成人午夜电影| 五月婷婷综合网| 日韩高清国产一区在线| 日韩高清不卡一区二区三区| 奇米影视7777精品一区二区| 日韩电影免费在线| 久久电影国产免费久久电影 | 日韩精品电影在线观看| 亚洲成人动漫av| 视频一区国产视频| 美女精品一区二区| 激情图片小说一区| 国产超碰在线一区| 成人av资源站| 色又黄又爽网站www久久| 91久久精品网| 欧美一区二区在线看| 久久蜜桃av一区精品变态类天堂| 久久久久久久网| 国产精品第五页| 亚洲国产日日夜夜| 久久se精品一区精品二区| 国产成a人亚洲精品| 色婷婷av一区二区三区之一色屋| 欧美日韩精品电影| 日韩欧美中文字幕制服| 久久久久国产免费免费| 亚洲美女视频在线观看| 视频一区视频二区中文字幕| 韩国理伦片一区二区三区在线播放 | 免费精品视频在线| 亚洲高清不卡在线| 依依成人精品视频| 曰韩精品一区二区| 亚洲一区二区三区四区在线观看| 亚洲欧洲av另类| 中文字幕一区三区| 国产精品久久毛片| 亚洲人123区| 日韩理论在线观看| 亚洲三级在线观看| 一区二区在线观看免费视频播放| 亚洲美女免费视频| 欧美精品一区二区三区视频| 亚洲欧美二区三区| 精品亚洲国内自在自线福利| 91小视频免费观看| 久久综合网色—综合色88| 亚洲精品中文字幕在线观看| 韩国精品主播一区二区在线观看 | 欧美一区二区三区男人的天堂| 一区二区三区欧美| 九九**精品视频免费播放| 欧美综合欧美视频| 国产三级一区二区| 免费成人小视频| 欧美日韩精品专区| 亚洲欧美综合色| 国产一区二区三区精品欧美日韩一区二区三区| 91丨porny丨在线| 国产亚洲欧美日韩俺去了| 日韩高清电影一区| 在线观看视频一区| 中文字幕在线不卡| 国产精品夜夜爽| 日韩欧美高清在线| 亚洲mv在线观看| 在线看日本不卡| 成人欧美一区二区三区在线播放| 经典三级在线一区| 日韩欧美区一区二| 丝袜美腿成人在线| 欧美日韩一区二区三区在线| 日韩伦理免费电影| 99免费精品视频| 国产精品看片你懂得| 粉嫩高潮美女一区二区三区| 精品福利一区二区三区免费视频| 日韩精品乱码免费| 91精品国模一区二区三区| 亚洲不卡av一区二区三区| 欧美在线高清视频| 午夜欧美2019年伦理| 欧美日韩性生活| 欧美aaaaaa午夜精品| 日韩精品一区在线| 激情综合网激情| 久久久精品人体av艺术|