📄 mae_fe.h
字号:
#ifndef _MAE_FE_H_
#define _MAE_FE_H_
#include "mae_interface.h"
#include "mae_types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MAEFE_BASE 0xB4012000
//#define MAEFE_DMADSCR0 MAEFE_BASE + 0x1000
#define MAEFE_DMADSCR1 MAEFE_BASE + 0x1004
#define MAEFE_DMADBELL MAEFE_BASE + 0x1008
#define MAEFE_DMADBELL_DB 1
#define MAEFE_MOCOMP0 MAEFE_BASE + 0x0030
#define MAEFE_MOCOMP0_DEFAULT 0x00BC0BE5
#define MAEFE_MOCOMP1 MAEFE_BASE + 0x0034
#define MAEFE_MOCOMP1_DEFAULT 0x7F93B725
#define MAEFE_INTSTAT MAEFE_BASE + 0x0050
#define MAEFE_INTSTAT_DONE 1
#define MAEFE_INTENABLE MAEFE_BASE + 0x0054
#define MAEFE_INTENABLE_EN 1
#define MAEFE_SCRATCHPAD MAEFE_BASE + 0x0058
#define FE_INTR_CTRL_NUMBER 9
/* picture structure */
#define TOP_FIELD 1
#define BOTTOM_FIELD 2
#define FRAME_PICTURE 3
//
// these structures below are for the FE registers we need to
// program in a hurry every interrupt
//
typedef struct reg_data_struct
{
uint32 offset;
char szRegName[24];
}reg_data;
typedef struct tag_yuv_table
{
PYUVQ_T pyuvq;
const char szBufName[3];
}YUV_TABLE;
//
void program_fe_regs(PMAEQ_T pmaeq, UINT32 ulInterlaced);
//
unsigned char run_fe_hw(void);
//
UINT32 init_yuvq_list(void);
//
unsigned char discard_fe(void);
void release_buffer_memory(PMAEQ_T el);
//
PUINT32 release_extra_info_memory(PMAEQ_T el);
//
void ring_fe_doorbell(void);
//
unsigned long get_yuvbufferaddr(unsigned long nYUVIndex);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -