me.c

来自「基于Linux的ffmepg decoder」· C语言 代码 · 共 51 行

C
51
字号
#define ME_GLOBALS

#include "portab.h"
#include "me.h"
#include "dma_b.h"
#include "dma_m.h"
#include "decoder.h"
#include "local_mem.h"
#include "define.h"
#include "vpe_m.h"
#include "mp4.h"

void me_dec_commandq_init(uint32_t * base)
{
	int i;
	uint32_t * me_cmd_q = (uint32_t *)((uint32_t)base + ME_CMD_Q_OFF);
	// init cmd_queue 0 ~ 12 to prevent PMV unknow
	for (i = 0; i < 13; i ++)
		me_cmd_q[i] = 0;

	//////////////////////////////////////////////////////////
	// init cmd_queue 13 - 20 for pmv
	// block 0
	me_cmd_q[PMV_CMD_ST + 0] = mMECMD_TYPE3b(MEC_PMVX)
								| mMECPMV_4MVBN2b(0);
	me_cmd_q[PMV_CMD_ST + 1] = mMECMD_TYPE3b(MEC_PMVY)
								| mMECPMV_4MVBN2b(0);
	// block 1
	me_cmd_q[PMV_CMD_ST + 2] = mMECMD_TYPE3b(MEC_PMVX)
								| mMECPMV_4MVBN2b(1);
	me_cmd_q[PMV_CMD_ST + 3] = mMECMD_TYPE3b(MEC_PMVY)
								| mMECPMV_4MVBN2b(1);
	// block 2
	me_cmd_q[PMV_CMD_ST + 4] = mMECMD_TYPE3b(MEC_PMVX)
								| mMECPMV_4MVBN2b(2);
	me_cmd_q[PMV_CMD_ST + 5] = mMECMD_TYPE3b(MEC_PMVY)
								| mMECPMV_4MVBN2b(2);
	// block 3
	me_cmd_q[PMV_CMD_ST + 6] = mMECMD_TYPE3b(MEC_PMVX)
								| mMECPMV_4MVBN2b(3);
	me_cmd_q[PMV_CMD_ST + 7] = mMECMD_TYPE3b(MEC_PMVY)
								| mMECPMV_4MVBN2b(3);
	//////////////////////////////////////////////////////////
	// init cmd_queue 21 - 32 for pmv
	for (i = 0; i < 6; i ++) {
		me_cmd_q[PXI_CMD0_ST + i] = u32ConstMePxi0[i];
		me_cmd_q[PXI_CMD1_ST + i] = u32ConstMePxi1[i];
	}

}

⌨️ 快捷键说明

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