[format]: format coding style

Change-Id: I3d0e081f6636ca8162df4bda68618ec0ba37e7ae
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2016-08-23 09:16:22 +08:00
parent 6c838b8037
commit 43bfdc6bdf
23 changed files with 259 additions and 264 deletions

View File

@@ -177,7 +177,7 @@ typedef struct MppBufferInfo_t {
void *ptr; void *ptr;
void *hnd; void *hnd;
int fd; int fd;
int index; int index;
} MppBufferInfo; } MppBufferInfo;
#define BUFFER_GROUP_SIZE_DEFAULT (SZ_1M*80) #define BUFFER_GROUP_SIZE_DEFAULT (SZ_1M*80)

View File

@@ -76,7 +76,7 @@ typedef enum VPU_API_CMD {
VPU_API_GET_VPUMEM_USED_COUNT, VPU_API_GET_VPUMEM_USED_COUNT,
VPU_API_DEC_GETFORMAT, VPU_API_DEC_GETFORMAT,
VPU_API_SET_OUTPUT_BLOCK, VPU_API_SET_OUTPUT_BLOCK,
VPU_API_DEC_GET_EOS_STATUS, VPU_API_DEC_GET_EOS_STATUS,
} VPU_API_CMD; } VPU_API_CMD;
typedef struct { typedef struct {

View File

@@ -293,8 +293,8 @@ MPP_RET mpp_buffer_create(const char *tag, const char *caller,
group->count_unused++; group->count_unused++;
buffer_group_add_log(group, p, buffer_group_add_log(group, p,
(group->mode == MPP_BUFFER_INTERNAL) ? (BUF_CREATE) : (BUF_COMMIT), (group->mode == MPP_BUFFER_INTERNAL) ? (BUF_CREATE) : (BUF_COMMIT),
caller); caller);
if (buffer) { if (buffer) {
inc_buffer_ref_no_lock(p, caller); inc_buffer_ref_no_lock(p, caller);

View File

@@ -90,13 +90,11 @@ private:
RK_U32 node_count; RK_U32 node_count;
public: public:
static MppMetaService *get_instance() static MppMetaService *get_instance() {
{
static MppMetaService instance; static MppMetaService instance;
return &instance; return &instance;
} }
static Mutex *get_lock() static Mutex *get_lock() {
{
static Mutex lock; static Mutex lock;
return &lock; return &lock;
} }
@@ -118,9 +116,9 @@ public:
}; };
MppMetaService::MppMetaService() MppMetaService::MppMetaService()
: meta_id(0), : meta_id(0),
meta_count(0), meta_count(0),
node_count(0) node_count(0)
{ {
INIT_LIST_HEAD(&mlist_meta); INIT_LIST_HEAD(&mlist_meta);
INIT_LIST_HEAD(&mlist_node); INIT_LIST_HEAD(&mlist_node);

View File

@@ -146,6 +146,6 @@ RK_S32 H264Calculate(RK_S32 a, RK_S32 b, RK_S32 c);
bool_e H264InitRc(h264RateControl_s * rc); bool_e H264InitRc(h264RateControl_s * rc);
void H264BeforePicRc(h264RateControl_s * rc, RK_U32 timeInc, RK_U32 sliceType); void H264BeforePicRc(h264RateControl_s * rc, RK_U32 timeInc, RK_U32 sliceType);
RK_S32 H264AfterPicRc(h264RateControl_s * rc, RK_U32 nonZeroCnt, RK_U32 byteCnt, RK_S32 H264AfterPicRc(h264RateControl_s * rc, RK_U32 nonZeroCnt, RK_U32 byteCnt,
RK_U32 qpSum); RK_U32 qpSum);
#endif /* H264_RATE_CONTROL_H */ #endif /* H264_RATE_CONTROL_H */

View File

@@ -741,19 +741,19 @@ H264EncRet H264EncStrmEncode(H264ECtx *pEncInst, const H264EncIn * pEncIn,
RK_S32 EncAsicCheckHwStatus(asicData_s *asic) RK_S32 EncAsicCheckHwStatus(asicData_s *asic)
{ {
RK_S32 ret = ASIC_STATUS_FRAME_READY; RK_S32 ret = ASIC_STATUS_FRAME_READY;
/* /*
RK_U32 status = asic->regs.hw_status; RK_U32 status = asic->regs.hw_status;
if (status & ASIC_STATUS_ERROR) { if (status & ASIC_STATUS_ERROR) {
ret = ASIC_STATUS_ERROR; ret = ASIC_STATUS_ERROR;
} else if (status & ASIC_STATUS_HW_RESET) { } else if (status & ASIC_STATUS_HW_RESET) {
ret = ASIC_STATUS_HW_RESET; ret = ASIC_STATUS_HW_RESET;
} else if (status & ASIC_STATUS_FRAME_READY) { } else if (status & ASIC_STATUS_FRAME_READY) {
ret = ASIC_STATUS_FRAME_READY; ret = ASIC_STATUS_FRAME_READY;
} else { } else {
ret = ASIC_STATUS_BUFF_FULL; ret = ASIC_STATUS_BUFF_FULL;
} }
*/ */
return ret; return ret;
} }

View File

@@ -158,7 +158,7 @@ bool_e SetParameter(H264ECtx * inst, const H264EncConfig * pEncCfg)
/* enforce macroblock rate limit in level */ /* enforce macroblock rate limit in level */
{ {
RK_U32 mb_rate = (pEncCfg->frameRateNum * inst->mbPerFrame) / RK_U32 mb_rate = (pEncCfg->frameRateNum * inst->mbPerFrame) /
pEncCfg->frameRateDenom; pEncCfg->frameRateDenom;
if (mb_rate > H264MaxMBPS[inst->seqParameterSet.levelIdx]) { if (mb_rate > H264MaxMBPS[inst->seqParameterSet.levelIdx]) {
mpp_log("input mb rate %d is larger than restriction %d\n", mpp_log("input mb rate %d is larger than restriction %d\n",

View File

@@ -64,10 +64,10 @@ FILE *fpRcTrc = NULL;
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
/* q_step values scaled up by 4 and evenly rounded */ /* q_step values scaled up by 4 and evenly rounded */
RK_S32 q_step[53] = { 3, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 9, 10, 11, RK_S32 q_step[53] = { 3, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 9, 10, 11,
13, 14, 16, 18, 20, 23, 25, 28, 32, 36, 40, 45, 51, 57, 64, 72, 80, 90, 13, 14, 16, 18, 20, 23, 25, 28, 32, 36, 40, 45, 51, 57, 64, 72, 80, 90,
101, 114, 128, 144, 160, 180, 203, 228, 256, 288, 320, 360, 405, 456, 101, 114, 128, 144, 160, 180, 203, 228, 256, 288, 320, 360, 405, 456,
513, 577, 640, 720, 810, 896 513, 577, 640, 720, 810, 896
}; };
/*------------------------------------------------------------------------------ /*------------------------------------------------------------------------------
Local function prototypes Local function prototypes
@@ -422,7 +422,7 @@ static RK_S32 VirtualBuffer_new(h264VirtualBuffer_s *vb, RK_S32 timeInc, true_e
returns number of required filler payload bytes. returns number of required filler payload bytes.
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
RK_S32 H264AfterPicRc(h264RateControl_s * rc, RK_U32 nonZeroCnt, RK_U32 byteCnt, RK_S32 H264AfterPicRc(h264RateControl_s * rc, RK_U32 nonZeroCnt, RK_U32 byteCnt,
RK_U32 qpSum) RK_U32 qpSum)
{ {
h264VirtualBuffer_s *vb = &rc->virtualBuffer; h264VirtualBuffer_s *vb = &rc->virtualBuffer;
RK_S32 bitPerPic = rc->virtualBuffer.bitPerPic; RK_S32 bitPerPic = rc->virtualBuffer.bitPerPic;

View File

@@ -45,8 +45,8 @@ const RK_U32 H264MaxCPBS[15] = {
}; };
const RK_U32 H264MaxFS[15] = { 99, 396, 396, 396, 396, 792, 1620, 1620, const RK_U32 H264MaxFS[15] = { 99, 396, 396, 396, 396, 792, 1620, 1620,
3600, 5120, 8192, 8192, 8192, 22080, 36864 3600, 5120, 8192, 8192, 8192, 22080, 36864
}; };
/* sqrt(8*maxFrameSize) is maximum width and height of specific level */ /* sqrt(8*maxFrameSize) is maximum width and height of specific level */
const RK_U32 H264SqrtMaxFS8[15] = const RK_U32 H264SqrtMaxFS8[15] =

View File

@@ -50,7 +50,7 @@ static const ParserApi *parsers[] = {
&api_mpg4d_parser, &api_mpg4d_parser,
&api_vp8d_parser, &api_vp8d_parser,
&api_vp9d_parser, &api_vp9d_parser,
&api_jpegd_parser, &api_jpegd_parser,
&dummy_dec_parser, &dummy_dec_parser,
}; };

View File

@@ -87,7 +87,7 @@ typedef struct h264e_feedback_t {
/* for VEPU future extansion */ /* for VEPU future extansion */
//TODO: add nal size table feedback //TODO: add nal size table feedback
}h264e_feedback; } h264e_feedback;
typedef struct h264e_control_extra_info_cfg_t { typedef struct h264e_control_extra_info_cfg_t {

View File

@@ -52,8 +52,8 @@ static const MppHalApi *hw_apis[] = {
&hal_api_mpg4d, &hal_api_mpg4d,
&hal_api_vp8d, &hal_api_vp8d,
&hal_api_vp9d, &hal_api_vp9d,
&hal_api_jpegd, &hal_api_jpegd,
&hal_api_h264e, &hal_api_h264e,
&hal_api_dummy_dec, &hal_api_dummy_dec,
&hal_api_dummy_enc, &hal_api_dummy_enc,
}; };

View File

@@ -1392,10 +1392,10 @@ MPP_RET hal_h265d_gen_regs(void *hal, HalTaskInfo *syn)
numCuInWidth = width / uiMaxCUWidth + (width % uiMaxCUWidth != 0); numCuInWidth = width / uiMaxCUWidth + (width % uiMaxCUWidth != 0);
#ifdef SOFIA_3GR_LINUX #ifdef SOFIA_3GR_LINUX
stride_y = (((numCuInWidth * uiMaxCUWidth * (dxva_cxt->pp.bit_depth_luma_minus8 + 8) + 63) stride_y = (((numCuInWidth * uiMaxCUWidth * (dxva_cxt->pp.bit_depth_luma_minus8 + 8) + 63)
& (~63)) >> 3); & (~63)) >> 3);
stride_uv = (((numCuInWidth * uiMaxCUHeight * (dxva_cxt->pp.bit_depth_chroma_minus8 + 8) + 63) stride_uv = (((numCuInWidth * uiMaxCUHeight * (dxva_cxt->pp.bit_depth_chroma_minus8 + 8) + 63)
& (~63)) >> 3); & (~63)) >> 3);
#else #else
stride_y = ((((numCuInWidth * uiMaxCUWidth * (dxva_cxt->pp.bit_depth_luma_minus8 + 8) + 2047) stride_y = ((((numCuInWidth * uiMaxCUWidth * (dxva_cxt->pp.bit_depth_luma_minus8 + 8) + 2047)
& (~2047)) | 2048) >> 3); & (~2047)) | 2048) >> 3);

View File

@@ -335,7 +335,7 @@ typedef struct h264e_hal_context_t {
void *param_buf; void *param_buf;
size_t param_size; size_t param_size;
MppPacket packeted_param; MppPacket packeted_param;
void *test_cfg; void *test_cfg;
} h264e_hal_context; } h264e_hal_context;
#endif #endif

View File

@@ -1484,7 +1484,7 @@ static MPP_RET hal_h264e_rkv_allocate_buffers(h264e_hal_context *ctx, h264e_synt
{ {
RK_S32 k = 0; RK_S32 k = 0;
h264e_hal_rkv_buffers *buffers = (h264e_hal_rkv_buffers *)ctx->buffers; h264e_hal_rkv_buffers *buffers = (h264e_hal_rkv_buffers *)ctx->buffers;
RK_U32 num_mbs_oneframe = (syn->pic_luma_width+15)/16 * ((syn->pic_luma_height+15)/16); RK_U32 num_mbs_oneframe = (syn->pic_luma_width + 15) / 16 * ((syn->pic_luma_height + 15) / 16);
RK_U32 frame_size = ((syn->pic_luma_width + 15) & (~15)) * ((syn->pic_luma_height + 15) & (~15)) * 3 / 2; RK_U32 frame_size = ((syn->pic_luma_width + 15) & (~15)) * ((syn->pic_luma_height + 15) & (~15)) * 3 / 2;
h264e_hal_rkv_dpb_ctx *dpb_ctx = (h264e_hal_rkv_dpb_ctx *)ctx->dpb_ctx; h264e_hal_rkv_dpb_ctx *dpb_ctx = (h264e_hal_rkv_dpb_ctx *)ctx->dpb_ctx;
h264e_hal_rkv_frame *frame_buf = dpb_ctx->frame_buf; h264e_hal_rkv_frame *frame_buf = dpb_ctx->frame_buf;
@@ -1498,7 +1498,7 @@ static MPP_RET hal_h264e_rkv_allocate_buffers(h264e_hal_context *ctx, h264e_synt
} }
} }
if(syn->preproc_en || (test_cfg && test_cfg->preproc)) { if (syn->preproc_en || (test_cfg && test_cfg->preproc)) {
for (k = 0; k < 2; k++) { for (k = 0; k < 2; k++) {
if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_PP], &buffers->hw_pp_buf[k], frame_size)) { if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_PP], &buffers->hw_pp_buf[k], frame_size)) {
mpp_err("hw_pp_buf[%d] get failed", k); mpp_err("hw_pp_buf[%d] get failed", k);
@@ -1509,9 +1509,9 @@ static MPP_RET hal_h264e_rkv_allocate_buffers(h264e_hal_context *ctx, h264e_synt
} }
} }
if(!all_intra_mode) { if (!all_intra_mode) {
for (k = 0; k < 2; k++) { for (k = 0; k < 2; k++) {
if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_DSP], &buffers->hw_dsp_buf[k], frame_size/16)) { if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_DSP], &buffers->hw_dsp_buf[k], frame_size / 16)) {
mpp_err("hw_dsp_buf[%d] get failed", k); mpp_err("hw_dsp_buf[%d] get failed", k);
return MPP_ERR_MALLOC; return MPP_ERR_MALLOC;
} else { } else {
@@ -1520,21 +1520,21 @@ static MPP_RET hal_h264e_rkv_allocate_buffers(h264e_hal_context *ctx, h264e_synt
} }
} }
#if 0 //default setting #if 0 //default setting
RK_U32 num_mei_oneframe = (syn->pic_luma_width+255)/256 * ((syn->pic_luma_height+15)/16); RK_U32 num_mei_oneframe = (syn->pic_luma_width + 255) / 256 * ((syn->pic_luma_height + 15) / 16);
for (k = 0; k < RKV_H264E_LINKTABLE_FRAME_NUM; k++) { for (k = 0; k < RKV_H264E_LINKTABLE_FRAME_NUM; k++) {
if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_MEI], &buffers->hw_mei_buf[k], num_mei_oneframe*16*4)) { if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_MEI], &buffers->hw_mei_buf[k], num_mei_oneframe * 16 * 4)) {
mpp_err("hw_mei_buf[%d] get failed", k); mpp_err("hw_mei_buf[%d] get failed", k);
return MPP_ERR_MALLOC; return MPP_ERR_MALLOC;
} else { } else {
h264e_hal_log_detail("hw_mei_buf[%d] %p done, fd %d", k, buffers->hw_mei_buf[k], mpp_buffer_get_fd(buffers->hw_mei_buf[k])); h264e_hal_log_detail("hw_mei_buf[%d] %p done, fd %d", k, buffers->hw_mei_buf[k], mpp_buffer_get_fd(buffers->hw_mei_buf[k]));
} }
} }
#endif #endif
if(syn->roi_en || (test_cfg && test_cfg->roi)) { if (syn->roi_en || (test_cfg && test_cfg->roi)) {
for (k = 0; k < RKV_H264E_LINKTABLE_FRAME_NUM; k++) { for (k = 0; k < RKV_H264E_LINKTABLE_FRAME_NUM; k++) {
if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_ROI], &buffers->hw_roi_buf[k], num_mbs_oneframe*1)) { if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_ROI], &buffers->hw_roi_buf[k], num_mbs_oneframe * 1)) {
mpp_err("hw_roi_buf[%d] get failed", k); mpp_err("hw_roi_buf[%d] get failed", k);
return MPP_ERR_MALLOC; return MPP_ERR_MALLOC;
} else { } else {
@@ -1551,19 +1551,19 @@ static MPP_RET hal_h264e_rkv_allocate_buffers(h264e_hal_context *ctx, h264e_synt
return MPP_ERR_MALLOC; return MPP_ERR_MALLOC;
} else { } else {
h264e_hal_log_detail("hw_rec_buf[%d] %p done, fd %d", k, buffers->hw_rec_buf[k], mpp_buffer_get_fd(buffers->hw_rec_buf[k])); h264e_hal_log_detail("hw_rec_buf[%d] %p done, fd %d", k, buffers->hw_rec_buf[k], mpp_buffer_get_fd(buffers->hw_rec_buf[k]));
} }
frame_buf[k].hw_buf = buffers->hw_rec_buf[k]; frame_buf[k].hw_buf = buffers->hw_rec_buf[k];
} }
} }
if(syn->osd_mode || (test_cfg && test_cfg->osd)) { if (syn->osd_mode || (test_cfg && test_cfg->osd)) {
for (k = 0; k < RKV_H264E_LINKTABLE_FRAME_NUM; k++) { for (k = 0; k < RKV_H264E_LINKTABLE_FRAME_NUM; k++) {
if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_REC], &buffers->hw_osd_buf[k], num_mbs_oneframe*256)) { if (MPP_OK != mpp_buffer_get(buffers->hw_buf_grp[H264E_HAL_RKV_BUF_GRP_REC], &buffers->hw_osd_buf[k], num_mbs_oneframe * 256)) {
mpp_err("hw_osd_buf[%d] get failed", buffers->hw_osd_buf[k]); mpp_err("hw_osd_buf[%d] get failed", buffers->hw_osd_buf[k]);
return MPP_ERR_MALLOC; return MPP_ERR_MALLOC;
} else { } else {
h264e_hal_log_detail("hw_osd_buf[%d] %p done, fd %d", k, buffers->hw_osd_buf[k], mpp_buffer_get_fd(buffers->hw_osd_buf[k])); h264e_hal_log_detail("hw_osd_buf[%d] %p done, fd %d", k, buffers->hw_osd_buf[k], mpp_buffer_get_fd(buffers->hw_osd_buf[k]));
} }
} }
} }
@@ -2661,13 +2661,13 @@ static MPP_RET hal_h264e_rkv_validate_syntax(h264e_syntax *syn, h264e_hal_csp_in
*src_fmt = hal_h264e_rkv_convert_csp(input_image_format); *src_fmt = hal_h264e_rkv_convert_csp(input_image_format);
syn->input_image_format = src_fmt->fmt; syn->input_image_format = src_fmt->fmt;
syn->input_image_format = H264E_RKV_CSP_YUV420SP; //TODO: removed later syn->input_image_format = H264E_RKV_CSP_YUV420SP; //TODO: removed later
syn->input_cb_addr = syn->input_luma_addr; syn->input_cb_addr = syn->input_luma_addr;
syn->input_cr_addr = syn->input_luma_addr; syn->input_cr_addr = syn->input_luma_addr;
H264E_HAL_VALIDATE_NEQ(syn->input_image_format, "input_image_format", H264E_RKV_CSP_NONE); H264E_HAL_VALIDATE_NEQ(syn->input_image_format, "input_image_format", H264E_RKV_CSP_NONE);
if(syn->frame_coding_type==1) {/* ASIC_INTRA */ if (syn->frame_coding_type == 1) { /* ASIC_INTRA */
if(gop_start) if (gop_start)
syn->frame_coding_type = RKVENC_FRAME_TYPE_IDR; syn->frame_coding_type = RKVENC_FRAME_TYPE_IDR;
else else
syn->frame_coding_type = RKVENC_FRAME_TYPE_I; syn->frame_coding_type = RKVENC_FRAME_TYPE_I;
@@ -2679,34 +2679,34 @@ static MPP_RET hal_h264e_rkv_validate_syntax(h264e_syntax *syn, h264e_hal_csp_in
return MPP_OK; return MPP_OK;
} }
MPP_RET hal_h264e_rkv_set_rc_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, MPP_RET hal_h264e_rkv_set_rc_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn,
h264e_hal_rkv_coveragetest_cfg *test) h264e_hal_rkv_coveragetest_cfg *test)
{ {
if(test && test->mbrc) { if (test && test->mbrc) {
RK_U32 num_mbs_oneframe = (syn->pic_luma_width+15)/16 * ((syn->pic_luma_height+15)/16); RK_U32 num_mbs_oneframe = (syn->pic_luma_width + 15) / 16 * ((syn->pic_luma_height + 15) / 16);
RK_U32 frame_target_bitrate = (syn->pic_luma_width*syn->pic_luma_height/1920/1080)*10000000/8; //Bytes RK_U32 frame_target_bitrate = (syn->pic_luma_width * syn->pic_luma_height / 1920 / 1080) * 10000000 / 8; //Bytes
RK_U32 frame_target_size = frame_target_bitrate/syn->keyframe_max_interval; RK_U32 frame_target_size = frame_target_bitrate / syn->keyframe_max_interval;
RK_U32 mb_target_size = frame_target_size/num_mbs_oneframe; RK_U32 mb_target_size = frame_target_size / num_mbs_oneframe;
RK_U32 aq_strength = 2; RK_U32 aq_strength = 2;
mpp_log("---- test-mbrc ----"); mpp_log("---- test-mbrc ----");
regs->swreg46.rc_en = 1; regs->swreg46.rc_en = 1;
regs->swreg46.rc_mode = 1; //0:frame/slice rc; 1:mbrc regs->swreg46.rc_mode = 1; //0:frame/slice rc; 1:mbrc
regs->swreg46.aqmode_en = 1; regs->swreg46.aqmode_en = 1;
regs->swreg46.aq_strg = (RK_U32)(aq_strength*1.0397*256); regs->swreg46.aq_strg = (RK_U32)(aq_strength * 1.0397 * 256);
regs->swreg46.Reserved = 0x0; regs->swreg46.Reserved = 0x0;
regs->swreg46.rc_ctu_num = (syn->pic_luma_width+15)/16; regs->swreg46.rc_ctu_num = (syn->pic_luma_width + 15) / 16;
regs->swreg47.bits_error0 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * -192; //sw_bits_error[0];
regs->swreg47.bits_error1 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * -144; //sw_bits_error[1];
regs->swreg48.bits_error2 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * -96; //sw_bits_error[2];
regs->swreg48.bits_error3 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * -16; //sw_bits_error[3];
regs->swreg49.bits_error4 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * 16; //sw_bits_error[4];
regs->swreg49.bits_error5 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * 96; //sw_bits_error[5];
regs->swreg50.bits_error6 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * 144; //sw_bits_error[6];
regs->swreg50.bits_error7 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * 192; //sw_bits_error[7];
regs->swreg51.bits_error8 = ((mb_target_size >> 4) * num_mbs_oneframe / 2) * 256; //sw_bits_error[8];
regs->swreg47.bits_error0 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * -192; //sw_bits_error[0];
regs->swreg47.bits_error1 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * -144; //sw_bits_error[1];
regs->swreg48.bits_error2 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * -96; //sw_bits_error[2];
regs->swreg48.bits_error3 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * -16; //sw_bits_error[3];
regs->swreg49.bits_error4 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * 16; //sw_bits_error[4];
regs->swreg49.bits_error5 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * 96; //sw_bits_error[5];
regs->swreg50.bits_error6 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * 144; //sw_bits_error[6];
regs->swreg50.bits_error7 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * 192; //sw_bits_error[7];
regs->swreg51.bits_error8 = ((mb_target_size >> 4) *num_mbs_oneframe / 2) * 256; //sw_bits_error[8];
regs->swreg52.qp_adjuest0 = -4; //sw_qp_adjuest[0]; regs->swreg52.qp_adjuest0 = -4; //sw_qp_adjuest[0];
regs->swreg52.qp_adjuest1 = -3; //sw_qp_adjuest[1]; regs->swreg52.qp_adjuest1 = -3; //sw_qp_adjuest[1];
regs->swreg52.qp_adjuest2 = -2; //sw_qp_adjuest[2]; regs->swreg52.qp_adjuest2 = -2; //sw_qp_adjuest[2];
@@ -2716,7 +2716,7 @@ MPP_RET hal_h264e_rkv_set_rc_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn,
regs->swreg53.qp_adjuest6 = 2; //sw_qp_adjuest[6]; regs->swreg53.qp_adjuest6 = 2; //sw_qp_adjuest[6];
regs->swreg53.qp_adjuest7 = 3; //sw_qp_adjuest[7]; regs->swreg53.qp_adjuest7 = 3; //sw_qp_adjuest[7];
regs->swreg53.qp_adjuest8 = 4; //sw_qp_adjuest[8]; regs->swreg53.qp_adjuest8 = 4; //sw_qp_adjuest[8];
regs->swreg54.rc_qp_mod = 2; //sw_quality_flag; regs->swreg54.rc_qp_mod = 2; //sw_quality_flag;
regs->swreg54.rc_fact0 = 8; //sw_quality_factor_0; regs->swreg54.rc_fact0 = 8; //sw_quality_factor_0;
regs->swreg54.rc_fact1 = 8; //sw_quality_factor_1; regs->swreg54.rc_fact1 = 8; //sw_quality_factor_1;
@@ -2724,64 +2724,64 @@ MPP_RET hal_h264e_rkv_set_rc_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn,
regs->swreg54.rc_qp_range = 4; //sw_rc_clip_qp_range; regs->swreg54.rc_qp_range = 4; //sw_rc_clip_qp_range;
regs->swreg54.rc_max_qp = 40; regs->swreg54.rc_max_qp = 40;
regs->swreg54.rc_min_qp = 20; regs->swreg54.rc_min_qp = 20;
regs->swreg55.ctu_ebits = mb_target_size; //sw_ctu_target_bits; regs->swreg55.ctu_ebits = mb_target_size; //sw_ctu_target_bits;
} else { } else {
regs->swreg46.rc_mode = 0; //0:frame/slice rc; 1:mbrc regs->swreg46.rc_mode = 0; //0:frame/slice rc; 1:mbrc
regs->swreg54.rc_qp_range = 4; //yn->swreg54.rc_qp_range; regs->swreg54.rc_qp_range = 4; //yn->swreg54.rc_qp_range;
regs->swreg54.rc_max_qp = 51; //syn->swreg54.rc_max_qp; regs->swreg54.rc_max_qp = 51; //syn->swreg54.rc_max_qp;
regs->swreg54.rc_min_qp = 1; //syn->swreg54.rc_min_qp; regs->swreg54.rc_min_qp = 1; //syn->swreg54.rc_min_qp;
regs->swreg55.ctu_ebits = 0; //syn->swreg55.ctu_ebits; regs->swreg55.ctu_ebits = 0; //syn->swreg55.ctu_ebits;
(void)test; (void)test;
} }
return MPP_OK; return MPP_OK;
} }
MPP_RET hal_h264e_rkv_set_roi_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, MppBuffer roi_idx_buf, RK_U32 frame_cnt, MPP_RET hal_h264e_rkv_set_roi_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, MppBuffer roi_idx_buf, RK_U32 frame_cnt,
h264e_hal_rkv_coveragetest_cfg *test) h264e_hal_rkv_coveragetest_cfg *test)
{ {
if(test && test->roi) { if (test && test->roi) {
RK_U32 k = 0; RK_U32 k = 0;
RK_U32 num_mbs_oneframe = (syn->pic_luma_width+15)/16 * ((syn->pic_luma_height+15)/16); RK_U32 num_mbs_oneframe = (syn->pic_luma_width + 15) / 16 * ((syn->pic_luma_height + 15) / 16);
h264e_hal_rkv_roi_cfg *roi_cfg = mpp_calloc(h264e_hal_rkv_roi_cfg, num_mbs_oneframe); h264e_hal_rkv_roi_cfg *roi_cfg = mpp_calloc(h264e_hal_rkv_roi_cfg, num_mbs_oneframe);
mpp_log("---- test-roi ----"); mpp_log("---- test-roi ----");
regs->swreg10.roi_enc = 1; regs->swreg10.roi_enc = 1;
regs->swreg29_ctuc_addr= mpp_buffer_get_fd(roi_idx_buf); regs->swreg29_ctuc_addr = mpp_buffer_get_fd(roi_idx_buf);
if(frame_cnt%3==0) { if (frame_cnt % 3 == 0) {
for(k=0; k<4*((syn->pic_luma_width+15)/16); k++) { for (k = 0; k < 4 * ((syn->pic_luma_width + 15) / 16); k++) {
roi_cfg[k].set_qp_y_en = 1; roi_cfg[k].set_qp_y_en = 1;
roi_cfg[k].qp_y = 20; roi_cfg[k].qp_y = 20;
} }
} else if(frame_cnt%3==1) { } else if (frame_cnt % 3 == 1) {
for(k=0; k<4*((syn->pic_luma_width+15)/16); k++) { for (k = 0; k < 4 * ((syn->pic_luma_width + 15) / 16); k++) {
roi_cfg[k].forbit_inter = 1; roi_cfg[k].forbit_inter = 1;
} }
} else { // frame_cnt%3==2 } else { // frame_cnt%3==2
for(k=0; k<4*((syn->pic_luma_width+15)/16); k++) { for (k = 0; k < 4 * ((syn->pic_luma_width + 15) / 16); k++) {
roi_cfg[k].set_qp_y_en = 1; roi_cfg[k].set_qp_y_en = 1;
roi_cfg[k].qp_y = 20; roi_cfg[k].qp_y = 20;
roi_cfg[k].forbit_inter = 1; roi_cfg[k].forbit_inter = 1;
} }
} }
mpp_buffer_write(roi_idx_buf, 0, (void *)roi_cfg, num_mbs_oneframe); mpp_buffer_write(roi_idx_buf, 0, (void *)roi_cfg, num_mbs_oneframe);
MPP_FREE(roi_cfg); MPP_FREE(roi_cfg);
} else { } else {
regs->swreg10.roi_enc = 0; //syn->swreg10.roi_enc; regs->swreg10.roi_enc = 0; //syn->swreg10.roi_enc;
(void)test; (void)test;
} }
return MPP_OK; return MPP_OK;
} }
MPP_RET hal_h264e_rkv_set_osd_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, MppBuffer osd_idx_buf, MPP_RET hal_h264e_rkv_set_osd_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, MppBuffer osd_idx_buf,
h264e_hal_rkv_coveragetest_cfg *test) h264e_hal_rkv_coveragetest_cfg *test)
{ {
if(test && test->osd) { if (test && test->osd) {
#define OSD_SIZE_MBS 4 //size of osd in mb #define OSD_SIZE_MBS 4 //size of osd in mb
RK_S32 k = 0; RK_S32 k = 0;
RK_U32 osd_r0_en = 1; RK_U32 osd_r0_en = 1;
RK_U32 osd_r1_en = 1; RK_U32 osd_r1_en = 1;
RK_U32 osd_r2_en = 1; RK_U32 osd_r2_en = 1;
@@ -2790,7 +2790,7 @@ MPP_RET hal_h264e_rkv_set_osd_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, M
RK_U32 osd_r5_en = 1; RK_U32 osd_r5_en = 1;
RK_U32 osd_r6_en = 1; RK_U32 osd_r6_en = 1;
RK_U32 osd_r7_en = 1; RK_U32 osd_r7_en = 1;
RK_U32 osd_r0_inv_en = 0; RK_U32 osd_r0_inv_en = 0;
RK_U32 osd_r1_inv_en = 0; RK_U32 osd_r1_inv_en = 0;
RK_U32 osd_r2_inv_en = 0; RK_U32 osd_r2_inv_en = 0;
@@ -2800,17 +2800,17 @@ MPP_RET hal_h264e_rkv_set_osd_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, M
RK_U32 osd_r6_inv_en = 0; RK_U32 osd_r6_inv_en = 0;
RK_U32 osd_r7_inv_en = 0; RK_U32 osd_r7_inv_en = 0;
RK_U32 osd_size_pixels = 16*OSD_SIZE_MBS*16*OSD_SIZE_MBS; RK_U32 osd_size_pixels = 16 * OSD_SIZE_MBS * 16 * OSD_SIZE_MBS;
mpp_log("---- test-osd ----"); mpp_log("---- test-osd ----");
regs->swreg65.osd_en = (osd_r0_en<<0)+(osd_r1_en<<1)+(osd_r2_en<<2)+(osd_r3_en<<3)+ (osd_r4_en<<4)+(osd_r5_en<<5)+(osd_r6_en<<6)+(osd_r7_en<<7); regs->swreg65.osd_en = (osd_r0_en << 0) + (osd_r1_en << 1) + (osd_r2_en << 2) + (osd_r3_en << 3) + (osd_r4_en << 4) + (osd_r5_en << 5) + (osd_r6_en << 6) + (osd_r7_en << 7);
regs->swreg65.osd_inv = (osd_r0_inv_en<<0)+(osd_r1_inv_en<<1)+(osd_r2_inv_en<<2)+(osd_r3_inv_en<<3)+ regs->swreg65.osd_inv = (osd_r0_inv_en << 0) + (osd_r1_inv_en << 1) + (osd_r2_inv_en << 2) + (osd_r3_inv_en << 3) +
(osd_r4_inv_en<<4)+(osd_r5_inv_en<<5)+(osd_r6_inv_en<<6)+(osd_r7_inv_en<<7); (osd_r4_inv_en << 4) + (osd_r5_inv_en << 5) + (osd_r6_inv_en << 6) + (osd_r7_inv_en << 7);
regs->swreg65.osd_clk_sel = 1; regs->swreg65.osd_clk_sel = 1;
regs->swreg65.osd_plt_type = 0; //OSD_plt_type; regs->swreg65.osd_plt_type = 0; //OSD_plt_type;
regs->swreg66.osd_inv_r1 = 0; //OSD_r1_inv_range; regs->swreg66.osd_inv_r1 = 0; //OSD_r1_inv_range;
regs->swreg66.osd_inv_r2 = 0; //OSD_r2_inv_range; regs->swreg66.osd_inv_r2 = 0; //OSD_r2_inv_range;
regs->swreg66.osd_inv_r3 = 0; //OSD_r3_inv_range; regs->swreg66.osd_inv_r3 = 0; //OSD_r3_inv_range;
@@ -2818,91 +2818,89 @@ MPP_RET hal_h264e_rkv_set_osd_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, M
regs->swreg66.osd_inv_r5 = 0; //OSD_r5_inv_range; regs->swreg66.osd_inv_r5 = 0; //OSD_r5_inv_range;
regs->swreg66.osd_inv_r6 = 0; //OSD_r6_inv_range; regs->swreg66.osd_inv_r6 = 0; //OSD_r6_inv_range;
regs->swreg66.osd_inv_r7 = 0; //OSD_r7_inv_range; regs->swreg66.osd_inv_r7 = 0; //OSD_r7_inv_range;
regs->swreg67_osd_pos[0].lt_pos_x = 0*OSD_SIZE_MBS; //OSD_r0_x_lt_pos;
regs->swreg67_osd_pos[0].lt_pos_y = 0*OSD_SIZE_MBS; //OSD_r0_y_lt_pos;
regs->swreg67_osd_pos[0].rd_pos_x = 0*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r0_x_rd_pos;
regs->swreg67_osd_pos[0].rd_pos_y = 0*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r0_y_rd_pos;
regs->swreg67_osd_pos[1].lt_pos_x = 1*OSD_SIZE_MBS; //OSD_r1_x_lt_pos;
regs->swreg67_osd_pos[1].lt_pos_y = 0*OSD_SIZE_MBS; //OSD_r1_y_lt_pos;
regs->swreg67_osd_pos[1].rd_pos_x = 1*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r1_x_rd_pos;
regs->swreg67_osd_pos[1].rd_pos_y = 0*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r1_y_rd_pos;
regs->swreg67_osd_pos[2].lt_pos_x = 2*OSD_SIZE_MBS; //OSD_r2_x_lt_pos;
regs->swreg67_osd_pos[2].lt_pos_y = 0*OSD_SIZE_MBS; //OSD_r2_y_lt_pos;
regs->swreg67_osd_pos[2].rd_pos_x = 2*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r2_x_rd_pos;
regs->swreg67_osd_pos[2].rd_pos_y = 0*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r2_y_rd_pos;
regs->swreg67_osd_pos[3].lt_pos_x = 3*OSD_SIZE_MBS; //OSD_r3_x_lt_pos;
regs->swreg67_osd_pos[3].lt_pos_y = 0*OSD_SIZE_MBS; //OSD_r3_y_lt_pos;
regs->swreg67_osd_pos[3].rd_pos_x = 3*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r3_x_rd_pos;
regs->swreg67_osd_pos[3].rd_pos_y = 0*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r3_y_rd_pos;
regs->swreg67_osd_pos[4].lt_pos_x = 0*OSD_SIZE_MBS; //OSD_r4_x_lt_pos;
regs->swreg67_osd_pos[4].lt_pos_y = 1*OSD_SIZE_MBS; //OSD_r4_y_lt_pos;
regs->swreg67_osd_pos[4].rd_pos_x = 0*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r4_x_rd_pos;
regs->swreg67_osd_pos[4].rd_pos_y = 1*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r4_x_rd_pos;
regs->swreg67_osd_pos[5].lt_pos_x = 1*OSD_SIZE_MBS; //OSD_r5_x_lt_pos; regs->swreg67_osd_pos[0].lt_pos_x = 0 * OSD_SIZE_MBS; //OSD_r0_x_lt_pos;
regs->swreg67_osd_pos[5].lt_pos_y = 1*OSD_SIZE_MBS; //OSD_r5_y_lt_pos; regs->swreg67_osd_pos[0].lt_pos_y = 0 * OSD_SIZE_MBS; //OSD_r0_y_lt_pos;
regs->swreg67_osd_pos[5].rd_pos_x = 1*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r5_x_rd_pos; regs->swreg67_osd_pos[0].rd_pos_x = 0 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r0_x_rd_pos;
regs->swreg67_osd_pos[5].rd_pos_y = 1*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r5_y_rd_pos; regs->swreg67_osd_pos[0].rd_pos_y = 0 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r0_y_rd_pos;
regs->swreg67_osd_pos[6].lt_pos_x = 2*OSD_SIZE_MBS; //OSD_r6_x_lt_pos; regs->swreg67_osd_pos[1].lt_pos_x = 1 * OSD_SIZE_MBS; //OSD_r1_x_lt_pos;
regs->swreg67_osd_pos[6].lt_pos_y = 1*OSD_SIZE_MBS; //OSD_r6_y_lt_pos; regs->swreg67_osd_pos[1].lt_pos_y = 0 * OSD_SIZE_MBS; //OSD_r1_y_lt_pos;
regs->swreg67_osd_pos[6].rd_pos_x = 2*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r6_x_rd_pos; regs->swreg67_osd_pos[1].rd_pos_x = 1 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r1_x_rd_pos;
regs->swreg67_osd_pos[6].rd_pos_y = 1*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r6_y_rd_pos; regs->swreg67_osd_pos[1].rd_pos_y = 0 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r1_y_rd_pos;
regs->swreg67_osd_pos[7].lt_pos_x = 3*OSD_SIZE_MBS; //OSD_r7_x_lt_pos; regs->swreg67_osd_pos[2].lt_pos_x = 2 * OSD_SIZE_MBS; //OSD_r2_x_lt_pos;
regs->swreg67_osd_pos[7].lt_pos_y = 1*OSD_SIZE_MBS; //OSD_r7_y_lt_pos; regs->swreg67_osd_pos[2].lt_pos_y = 0 * OSD_SIZE_MBS; //OSD_r2_y_lt_pos;
regs->swreg67_osd_pos[7].rd_pos_x = 3*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r7_x_rd_pos; regs->swreg67_osd_pos[2].rd_pos_x = 2 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r2_x_rd_pos;
regs->swreg67_osd_pos[7].rd_pos_y = 1*OSD_SIZE_MBS+OSD_SIZE_MBS-1; //OSD_r7_y_rd_pos; regs->swreg67_osd_pos[2].rd_pos_y = 0 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r2_y_rd_pos;
for(k=0; k<8; k++) regs->swreg67_osd_pos[3].lt_pos_x = 3 * OSD_SIZE_MBS; //OSD_r3_x_lt_pos;
{ regs->swreg67_osd_pos[3].lt_pos_y = 0 * OSD_SIZE_MBS; //OSD_r3_y_lt_pos;
if(regs->swreg65.osd_plt_type==0) //configurable regs->swreg67_osd_pos[3].rd_pos_x = 3 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r3_x_rd_pos;
memset((RK_U8 *)mpp_buffer_get_ptr(osd_idx_buf)+k*osd_size_pixels, 32*k, osd_size_pixels); regs->swreg67_osd_pos[3].rd_pos_y = 0 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r3_y_rd_pos;
else //fixed mode: only support idx 0~7
memset((RK_U8 *)mpp_buffer_get_ptr(osd_idx_buf)+k*osd_size_pixels, k, osd_size_pixels); regs->swreg67_osd_pos[4].lt_pos_x = 0 * OSD_SIZE_MBS; //OSD_r4_x_lt_pos;
regs->swreg67_osd_pos[4].lt_pos_y = 1 * OSD_SIZE_MBS; //OSD_r4_y_lt_pos;
regs->swreg68_indx_addr_i[k] = mpp_buffer_get_fd(osd_idx_buf) | ((k*osd_size_pixels)<<10); //h->param.indx_addr_i[i]; regs->swreg67_osd_pos[4].rd_pos_x = 0 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r4_x_rd_pos;
regs->swreg67_osd_pos[4].rd_pos_y = 1 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r4_x_rd_pos;
regs->swreg67_osd_pos[5].lt_pos_x = 1 * OSD_SIZE_MBS; //OSD_r5_x_lt_pos;
regs->swreg67_osd_pos[5].lt_pos_y = 1 * OSD_SIZE_MBS; //OSD_r5_y_lt_pos;
regs->swreg67_osd_pos[5].rd_pos_x = 1 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r5_x_rd_pos;
regs->swreg67_osd_pos[5].rd_pos_y = 1 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r5_y_rd_pos;
regs->swreg67_osd_pos[6].lt_pos_x = 2 * OSD_SIZE_MBS; //OSD_r6_x_lt_pos;
regs->swreg67_osd_pos[6].lt_pos_y = 1 * OSD_SIZE_MBS; //OSD_r6_y_lt_pos;
regs->swreg67_osd_pos[6].rd_pos_x = 2 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r6_x_rd_pos;
regs->swreg67_osd_pos[6].rd_pos_y = 1 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r6_y_rd_pos;
regs->swreg67_osd_pos[7].lt_pos_x = 3 * OSD_SIZE_MBS; //OSD_r7_x_lt_pos;
regs->swreg67_osd_pos[7].lt_pos_y = 1 * OSD_SIZE_MBS; //OSD_r7_y_lt_pos;
regs->swreg67_osd_pos[7].rd_pos_x = 3 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r7_x_rd_pos;
regs->swreg67_osd_pos[7].rd_pos_y = 1 * OSD_SIZE_MBS + OSD_SIZE_MBS - 1; //OSD_r7_y_rd_pos;
for (k = 0; k < 8; k++) {
if (regs->swreg65.osd_plt_type == 0) //configurable
memset((RK_U8 *)mpp_buffer_get_ptr(osd_idx_buf) + k * osd_size_pixels, 32 * k, osd_size_pixels);
else //fixed mode: only support idx 0~7
memset((RK_U8 *)mpp_buffer_get_ptr(osd_idx_buf) + k * osd_size_pixels, k, osd_size_pixels);
regs->swreg68_indx_addr_i[k] = mpp_buffer_get_fd(osd_idx_buf) | ((k * osd_size_pixels) << 10); //h->param.indx_addr_i[i];
mpp_log("regs->swreg68_indx_addr_i[k] 0x%08x", regs->swreg68_indx_addr_i[k]); mpp_log("regs->swreg68_indx_addr_i[k] 0x%08x", regs->swreg68_indx_addr_i[k]);
} }
#if 0 //written in kernel #if 0 //written in kernel
for(k=0; k<256; k++) for (k = 0; k < 256; k++) {
{ regs->swreg73_osd_indx_tab_i[k] = k | (0x80 << 8) | (0x80 << 16) | (k << 24);
regs->swreg73_osd_indx_tab_i[k] = k | (0x80<<8) | (0x80<<16) | (k<<24);
} }
#endif #endif
} else { } else {
(void)test; (void)test;
} }
(void)syn; (void)syn;
return MPP_OK; return MPP_OK;
} }
MPP_RET hal_h264e_rkv_set_pp_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, MppBuffer hw_buf_w, MppBuffer hw_buf_r, RK_U32 frame_cnt, MPP_RET hal_h264e_rkv_set_pp_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, MppBuffer hw_buf_w, MppBuffer hw_buf_r, RK_U32 frame_cnt,
h264e_hal_rkv_coveragetest_cfg *test) h264e_hal_rkv_coveragetest_cfg *test)
{ {
RK_S32 k = 0; RK_S32 k = 0;
RK_S32 stridey, stridec; RK_S32 stridey, stridec;
if(test && test->preproc) { if (test && test->preproc) {
RK_U32 h3d_tbl[40] = { RK_U32 h3d_tbl[40] = {
0x0b080400,0x1815120f,0x23201e1b,0x2c2a2725, 0x0b080400, 0x1815120f, 0x23201e1b, 0x2c2a2725,
0x33312f2d,0x38373634,0x3d3c3b39,0x403f3e3d, 0x33312f2d, 0x38373634, 0x3d3c3b39, 0x403f3e3d,
0x42414140,0x43434342,0x44444444,0x44444444, 0x42414140, 0x43434342, 0x44444444, 0x44444444,
0x44444444,0x43434344,0x42424343,0x40414142, 0x44444444, 0x43434344, 0x42424343, 0x40414142,
0x3d3e3f40,0x393a3b3c,0x35363738,0x30313334, 0x3d3e3f40, 0x393a3b3c, 0x35363738, 0x30313334,
0x2c2d2e2f,0x28292a2b,0x23242526,0x20202122, 0x2c2d2e2f, 0x28292a2b, 0x23242526, 0x20202122,
0x191b1d1f,0x14151618,0x0f101112,0x0b0c0d0e, 0x191b1d1f, 0x14151618, 0x0f101112, 0x0b0c0d0e,
0x08090a0a,0x06070708,0x05050506,0x03040404, 0x08090a0a, 0x06070708, 0x05050506, 0x03040404,
0x02020303,0x01010102,0x00010101,0x00000000, 0x02020303, 0x01010102, 0x00010101, 0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000 0x00000000, 0x00000000, 0x00000000, 0x00000000
}; };
mpp_log("---- test-preproc ----"); mpp_log("---- test-preproc ----");
@@ -2959,28 +2957,28 @@ MPP_RET hal_h264e_rkv_set_pp_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, Mp
regs->swreg21_scr_stbl[3] = (RK_U32)1073741823; //sharp_matrix[3]; regs->swreg21_scr_stbl[3] = (RK_U32)1073741823; //sharp_matrix[3];
regs->swreg21_scr_stbl[4] = (RK_U32)1073741823; //sharp_matrix[4]; regs->swreg21_scr_stbl[4] = (RK_U32)1073741823; //sharp_matrix[4];
for(k=0; k<40; k++) for (k = 0; k < 40; k++)
regs->swreg22_h3d_tbl[k] = h3d_tbl[k]; regs->swreg22_h3d_tbl[k] = h3d_tbl[k];
stridey = (syn->pic_luma_width + 15)&(~15); stridey = (syn->pic_luma_width + 15) & (~15);
stridec = stridey; stridec = stridey;
regs->swreg23.src_ystrid = stridey; regs->swreg23.src_ystrid = stridey;
regs->swreg23.reserve = 0x0; regs->swreg23.reserve = 0x0;
regs->swreg23.src_cstrid = stridec; ////YUV420 planar; regs->swreg23.src_cstrid = stridec; ////YUV420 planar;
regs->swreg27_fltw_addr = mpp_buffer_get_fd(hw_buf_w); regs->swreg27_fltw_addr = mpp_buffer_get_fd(hw_buf_w);
regs->swreg28_fltr_addr = mpp_buffer_get_fd(hw_buf_r); regs->swreg28_fltr_addr = mpp_buffer_get_fd(hw_buf_r);
} else { } else {
regs->swreg14.src_cfmt = syn->input_image_format; //syn->swreg14.src_cfmt; //src_cfmt regs->swreg14.src_cfmt = syn->input_image_format; //syn->swreg14.src_cfmt; //src_cfmt
for (k = 0; k < 5; k++) for (k = 0; k < 5; k++)
regs->swreg21_scr_stbl[k] = 0; //syn->swreg21_scr_stbl[k]; regs->swreg21_scr_stbl[k] = 0; //syn->swreg21_scr_stbl[k];
for (k = 0; k < 40; k++) for (k = 0; k < 40; k++)
regs->swreg22_h3d_tbl[k] = h264e_h3d_tbl[k]; regs->swreg22_h3d_tbl[k] = h264e_h3d_tbl[k];
stridey = (regs->swreg19.src_rot == 1 || regs->swreg19.src_rot == 3) ? (syn->pic_luma_height - 1) : (syn->pic_luma_width - 1); stridey = (regs->swreg19.src_rot == 1 || regs->swreg19.src_rot == 3) ? (syn->pic_luma_height - 1) : (syn->pic_luma_width - 1);
if (regs->swreg14.src_cfmt == 0 ) if (regs->swreg14.src_cfmt == 0 )
stridey = (stridey + 1) * 4 - 1; stridey = (stridey + 1) * 4 - 1;
@@ -2995,7 +2993,7 @@ MPP_RET hal_h264e_rkv_set_pp_regs(h264e_rkv_reg_set *regs, h264e_syntax *syn, Mp
(void)test; (void)test;
} }
return MPP_OK; return MPP_OK;
} }
@@ -3026,7 +3024,7 @@ MPP_RET hal_h264e_rkv_gen_regs(void *hal, HalTaskInfo *task)
h264e_hal_debug_enter(); h264e_hal_debug_enter();
hal_h264e_rkv_dump_mpp_syntax_in(syn, ctx); hal_h264e_rkv_dump_mpp_syntax_in(syn, ctx);
if (MPP_OK != hal_h264e_rkv_validate_syntax(syn, &src_fmt, ctx->frame_cnt%sps->keyframe_max_interval==0)) { if (MPP_OK != hal_h264e_rkv_validate_syntax(syn, &src_fmt, ctx->frame_cnt % sps->keyframe_max_interval == 0)) {
h264e_hal_log_err("hal_h264e_rkv_validate_syntax failed"); h264e_hal_log_err("hal_h264e_rkv_validate_syntax failed");
} }
@@ -3132,7 +3130,7 @@ MPP_RET hal_h264e_rkv_gen_regs(void *hal, HalTaskInfo *task)
regs->swreg13.axi_brsp_cke = 0x7f; //syn->swreg13.axi_brsp_cke; regs->swreg13.axi_brsp_cke = 0x7f; //syn->swreg13.axi_brsp_cke;
regs->swreg13.cime_dspw_orsd = 0x0; regs->swreg13.cime_dspw_orsd = 0x0;
hal_h264e_rkv_set_pp_regs(regs, syn, bufs->hw_pp_buf[buf2_idx], bufs->hw_pp_buf[1-buf2_idx], ctx->frame_cnt, test_cfg); hal_h264e_rkv_set_pp_regs(regs, syn, bufs->hw_pp_buf[buf2_idx], bufs->hw_pp_buf[1 - buf2_idx], ctx->frame_cnt, test_cfg);
regs->swreg24_adr_srcy = syn->input_luma_addr; //syn->addr_cfg.adr_srcy; regs->swreg24_adr_srcy = syn->input_luma_addr; //syn->addr_cfg.adr_srcy;
regs->swreg25_adr_srcu = syn->input_cb_addr; //syn->addr_cfg.adr_srcu; regs->swreg25_adr_srcu = syn->input_cb_addr; //syn->addr_cfg.adr_srcu;
@@ -3146,11 +3144,11 @@ MPP_RET hal_h264e_rkv_gen_regs(void *hal, HalTaskInfo *task)
regs->swreg31_rfpr_addr = mpp_buffer_get_fd(dpb_ctx->fref[0][0]->hw_buf); //syn->addr_cfg.rfpr_addr; regs->swreg31_rfpr_addr = mpp_buffer_get_fd(dpb_ctx->fref[0][0]->hw_buf); //syn->addr_cfg.rfpr_addr;
//regs->swreg32_cmvw_addr = mpp_buffer_get_fd(bufs->hw_cmv_buf[buf2_idx]); //regs->swreg32_cmvw_addr = mpp_buffer_get_fd(bufs->hw_cmv_buf[buf2_idx]);
if(bufs->hw_dsp_buf[buf2_idx]) if (bufs->hw_dsp_buf[buf2_idx])
regs->swreg34_dspw_addr = mpp_buffer_get_fd(bufs->hw_dsp_buf[buf2_idx]); //syn->addr_cfg.dspw_addr; regs->swreg34_dspw_addr = mpp_buffer_get_fd(bufs->hw_dsp_buf[buf2_idx]); //syn->addr_cfg.dspw_addr;
if(bufs->hw_dsp_buf[1 - buf2_idx]) if (bufs->hw_dsp_buf[1 - buf2_idx])
regs->swreg35_dspr_addr = mpp_buffer_get_fd(bufs->hw_dsp_buf[1 - buf2_idx]); //syn->addr_cfg.dspr_addr; regs->swreg35_dspr_addr = mpp_buffer_get_fd(bufs->hw_dsp_buf[1 - buf2_idx]); //syn->addr_cfg.dspr_addr;
regs->swreg36_meiw_addr = 0; //mpp_buffer_get_fd(bufs->hw_mei_buf[mul_buf_idx]); regs->swreg36_meiw_addr = 0; //mpp_buffer_get_fd(bufs->hw_mei_buf[mul_buf_idx]);
regs->swreg38_bsbb_addr = syn->output_strm_addr; regs->swreg38_bsbb_addr = syn->output_strm_addr;
if (VPUClientGetIOMMUStatus() > 0) if (VPUClientGetIOMMUStatus() > 0)
@@ -3498,45 +3496,45 @@ static MPP_RET hal_h264e_rkv_set_feedback(h264e_feedback *fb, h264e_rkv_ioctl_ou
for (k = 0; k < out->frame_num; k++) { for (k = 0; k < out->frame_num; k++) {
elem = &out->elem[k]; elem = &out->elem[k];
fb->qp_sum = elem->swreg71.qp_sum; fb->qp_sum = elem->swreg71.qp_sum;
fb->out_strm_size = elem->swreg69.bs_lgth; fb->out_strm_size = elem->swreg69.bs_lgth;
fb->hw_status = 0; fb->hw_status = 0;
h264e_hal_log_detail("hw_status: 0x%08x", elem->hw_status); h264e_hal_log_detail("hw_status: 0x%08x", elem->hw_status);
if(elem->hw_status & RKV_H264E_INT_LINKTABLE_FINISH) { if (elem->hw_status & RKV_H264E_INT_LINKTABLE_FINISH) {
h264e_hal_log_err("RKV_H264E_INT_LINKTABLE_FINISH"); h264e_hal_log_err("RKV_H264E_INT_LINKTABLE_FINISH");
} }
if(elem->hw_status & RKV_H264E_INT_ONE_FRAME_FINISH) { if (elem->hw_status & RKV_H264E_INT_ONE_FRAME_FINISH) {
h264e_hal_log_detail("RKV_H264E_INT_ONE_FRAME_FINISH"); h264e_hal_log_detail("RKV_H264E_INT_ONE_FRAME_FINISH");
} }
if(elem->hw_status & RKV_H264E_INT_ONE_SLICE_FINISH) { if (elem->hw_status & RKV_H264E_INT_ONE_SLICE_FINISH) {
h264e_hal_log_err("RKV_H264E_INT_ONE_SLICE_FINISH"); h264e_hal_log_err("RKV_H264E_INT_ONE_SLICE_FINISH");
} }
if(elem->hw_status & RKV_H264E_INT_SAFE_CLEAR_FINISH) { if (elem->hw_status & RKV_H264E_INT_SAFE_CLEAR_FINISH) {
h264e_hal_log_err("RKV_H264E_INT_SAFE_CLEAR_FINISH"); h264e_hal_log_err("RKV_H264E_INT_SAFE_CLEAR_FINISH");
} }
if(elem->hw_status & RKV_H264E_INT_BIT_STREAM_OVERFLOW) { if (elem->hw_status & RKV_H264E_INT_BIT_STREAM_OVERFLOW) {
h264e_hal_log_err("RKV_H264E_INT_BIT_STREAM_OVERFLOW"); h264e_hal_log_err("RKV_H264E_INT_BIT_STREAM_OVERFLOW");
fb->hw_status = 1; fb->hw_status = 1;
} }
if(elem->hw_status & RKV_H264E_INT_BUS_WRITE_FULL) { if (elem->hw_status & RKV_H264E_INT_BUS_WRITE_FULL) {
h264e_hal_log_err("RKV_H264E_INT_BUS_WRITE_FULL"); h264e_hal_log_err("RKV_H264E_INT_BUS_WRITE_FULL");
fb->hw_status = 1; fb->hw_status = 1;
} }
if(elem->hw_status & RKV_H264E_INT_BUS_WRITE_ERROR) { if (elem->hw_status & RKV_H264E_INT_BUS_WRITE_ERROR) {
h264e_hal_log_err("RKV_H264E_INT_BUS_WRITE_ERROR"); h264e_hal_log_err("RKV_H264E_INT_BUS_WRITE_ERROR");
fb->hw_status = 1; fb->hw_status = 1;
} }
if(elem->hw_status & RKV_H264E_INT_BUS_READ_ERROR) { if (elem->hw_status & RKV_H264E_INT_BUS_READ_ERROR) {
h264e_hal_log_err("RKV_H264E_INT_BUS_READ_ERROR"); h264e_hal_log_err("RKV_H264E_INT_BUS_READ_ERROR");
fb->hw_status = 1; fb->hw_status = 1;
} }
if(elem->hw_status & RKV_H264E_INT_TIMEOUT_ERROR) { if (elem->hw_status & RKV_H264E_INT_TIMEOUT_ERROR) {
h264e_hal_log_err("RKV_H264E_INT_TIMEOUT_ERROR"); h264e_hal_log_err("RKV_H264E_INT_TIMEOUT_ERROR");
fb->hw_status = 1; fb->hw_status = 1;
} }
fb->hw_status = elem->hw_status; fb->hw_status = elem->hw_status;
} }

View File

@@ -91,7 +91,7 @@ typedef struct h264e_hal_rkv_coveragetest_cfg_t {
RK_U32 osd; RK_U32 osd;
RK_U32 mbrc; RK_U32 mbrc;
RK_U32 roi; RK_U32 roi;
}h264e_hal_rkv_coveragetest_cfg; } h264e_hal_rkv_coveragetest_cfg;
#endif #endif
@@ -145,8 +145,8 @@ typedef struct h264e_hal_rkv_roi_cfg_t {
RK_U8 qp_y : 6; RK_U8 qp_y : 6;
RK_U8 set_qp_y_en : 1; RK_U8 set_qp_y_en : 1;
RK_U8 forbit_inter : 1; RK_U8 forbit_inter : 1;
}h264e_hal_rkv_roi_cfg; } h264e_hal_rkv_roi_cfg;
typedef struct h264e_hal_rkv_buffers_t { typedef struct h264e_hal_rkv_buffers_t {
MppBufferGroup hw_buf_grp[H264E_HAL_RKV_BUF_GRP_BUTT]; MppBufferGroup hw_buf_grp[H264E_HAL_RKV_BUF_GRP_BUTT];

View File

@@ -1370,7 +1370,7 @@ static MPP_RET hal_h264e_vpu_write_sps(h264e_hal_vpu_stream *stream, h264e_hal_s
hal_h264e_vpu_write_ue(stream, sps->i_id, "seq_parameter_set_id"); //8D hal_h264e_vpu_write_ue(stream, sps->i_id, "seq_parameter_set_id"); //8D
if (sps->i_profile_idc >= 100) { //High profile if (sps->i_profile_idc >= 100) { //High profile
hal_h264e_vpu_write_ue(stream, sps->i_chroma_format_idc, "chroma_format_idc"); hal_h264e_vpu_write_ue(stream, sps->i_chroma_format_idc, "chroma_format_idc");
hal_h264e_vpu_write_ue(stream, H264_BIT_DEPTH - 8, "bit_depth_luma_minus8"); hal_h264e_vpu_write_ue(stream, H264_BIT_DEPTH - 8, "bit_depth_luma_minus8");
hal_h264e_vpu_write_ue(stream, H264_BIT_DEPTH - 8, "bit_depth_chroma_minus8"); hal_h264e_vpu_write_ue(stream, H264_BIT_DEPTH - 8, "bit_depth_chroma_minus8");
@@ -1498,7 +1498,7 @@ static void hal_h264e_vpu_set_sps(h264e_hal_sps *sps, h264e_control_extra_info_c
sps->i_mb_height = ( cfg->pic_luma_height + 15 ) / 16; sps->i_mb_height = ( cfg->pic_luma_height + 15 ) / 16;
sps->b_frame_mbs_only = 1; sps->b_frame_mbs_only = 1;
sps->b_direct8x8_inference = 1; sps->b_direct8x8_inference = 1;
sps->i_chroma_format_idc = 1; //YUV420 sps->i_chroma_format_idc = 1; //YUV420
sps->b_vui = 1; sps->b_vui = 1;

View File

@@ -634,7 +634,7 @@ typedef enum {
H264E_VPU_CSP_RGB101010 = 12, // 30-bit RGB H264E_VPU_CSP_RGB101010 = 12, // 30-bit RGB
H264E_VPU_CSP_BGR101010 = 13, // 30-bit RGB H264E_VPU_CSP_BGR101010 = 13, // 30-bit RGB
H264E_VPU_CSP_NONE, H264E_VPU_CSP_NONE,
H264E_VPU_CSP_BUTT, H264E_VPU_CSP_BUTT,
} h264e_hal_vpu_csp; } h264e_hal_vpu_csp;

View File

@@ -87,13 +87,13 @@ static RK_U32 h264e_rkv_revert_csp(h264e_hal_csp_info csp_info)
RK_U32 aswap = csp_info.aswap; RK_U32 aswap = csp_info.aswap;
MppFrameFormat dst_fmt; MppFrameFormat dst_fmt;
switch(fmt) { switch (fmt) {
case H264E_RKV_CSP_YUV420P: { case H264E_RKV_CSP_YUV420P: {
dst_fmt = MPP_FMT_YUV420P; dst_fmt = MPP_FMT_YUV420P;
break; break;
} }
case H264E_RKV_CSP_YUV420SP: { case H264E_RKV_CSP_YUV420SP: {
dst_fmt = cswap? MPP_FMT_YUV420SP_VU : MPP_FMT_YUV420SP; dst_fmt = cswap ? MPP_FMT_YUV420SP_VU : MPP_FMT_YUV420SP;
break; break;
} }
case H264E_RKV_CSP_YUV422P: { case H264E_RKV_CSP_YUV422P: {
@@ -101,7 +101,7 @@ static RK_U32 h264e_rkv_revert_csp(h264e_hal_csp_info csp_info)
break; break;
} }
case H264E_RKV_CSP_YUV422SP: { case H264E_RKV_CSP_YUV422SP: {
dst_fmt = cswap? MPP_FMT_YUV422SP_VU : MPP_FMT_YUV422SP; dst_fmt = cswap ? MPP_FMT_YUV422SP_VU : MPP_FMT_YUV422SP;
break; break;
} }
case H264E_RKV_CSP_YUYV422: { case H264E_RKV_CSP_YUYV422: {
@@ -113,16 +113,16 @@ static RK_U32 h264e_rkv_revert_csp(h264e_hal_csp_info csp_info)
break; break;
} }
case H264E_RKV_CSP_BGR565: { case H264E_RKV_CSP_BGR565: {
dst_fmt = cswap? MPP_FMT_RGB565 : MPP_FMT_BGR565; dst_fmt = cswap ? MPP_FMT_RGB565 : MPP_FMT_BGR565;
break; break;
} }
case H264E_RKV_CSP_BGR888: { case H264E_RKV_CSP_BGR888: {
dst_fmt = cswap? MPP_FMT_RGB888 : MPP_FMT_BGR888; dst_fmt = cswap ? MPP_FMT_RGB888 : MPP_FMT_BGR888;
break; break;
} }
case H264E_RKV_CSP_BGRA8888: { case H264E_RKV_CSP_BGRA8888: {
if(aswap) if (aswap)
dst_fmt = cswap? MPP_FMT_ABGR8888 : MPP_FMT_ARGB8888; dst_fmt = cswap ? MPP_FMT_ABGR8888 : MPP_FMT_ARGB8888;
else else
dst_fmt = MPP_FMT_BUTT; dst_fmt = MPP_FMT_BUTT;
@@ -130,12 +130,12 @@ static RK_U32 h264e_rkv_revert_csp(h264e_hal_csp_info csp_info)
} }
default: { default: {
h264e_hal_log_err("invalid csp_info.fmt %d, csp_info.cswap %d, csp_info.aswap %d", h264e_hal_log_err("invalid csp_info.fmt %d, csp_info.cswap %d, csp_info.aswap %d",
csp_info.fmt, csp_info.cswap, csp_info.aswap); csp_info.fmt, csp_info.cswap, csp_info.aswap);
dst_fmt = MPP_FMT_BUTT; dst_fmt = MPP_FMT_BUTT;
} }
} }
if(dst_fmt == MPP_FMT_BUTT) { if (dst_fmt == MPP_FMT_BUTT) {
h264e_hal_log_err("revert_csp error, src_fmt %d, dst_fmt %d", fmt, dst_fmt); h264e_hal_log_err("revert_csp error, src_fmt %d, dst_fmt %d", fmt, dst_fmt);
} }
@@ -147,7 +147,7 @@ static RK_U32 h264e_vpu_revert_csp(RK_U32 csp)
h264e_hal_vpu_csp fmt = (h264e_hal_vpu_csp)csp; h264e_hal_vpu_csp fmt = (h264e_hal_vpu_csp)csp;
MppFrameFormat dst_fmt; MppFrameFormat dst_fmt;
switch(fmt) { switch (fmt) {
case H264E_VPU_CSP_YUV420P: { case H264E_VPU_CSP_YUV420P: {
dst_fmt = MPP_FMT_YUV420P; dst_fmt = MPP_FMT_YUV420P;
break; break;
@@ -227,23 +227,23 @@ static MPP_RET h264e_rkv_test_open_files(h264e_hal_test_cfg test_cfg)
return MPP_ERR_OPEN_FILE; return MPP_ERR_OPEN_FILE;
} }
#if !RKV_H264E_SDK_TEST #if !RKV_H264E_SDK_TEST
sprintf(full_path, "%s", test_cfg.input_syntax_file_path); sprintf(full_path, "%s", test_cfg.input_syntax_file_path);
fp_golden_syntax_in = fopen(full_path, "rb"); fp_golden_syntax_in = fopen(full_path, "rb");
if (!fp_golden_syntax_in) { if (!fp_golden_syntax_in) {
mpp_err("%s open error", full_path); mpp_err("%s open error", full_path);
return MPP_ERR_OPEN_FILE; return MPP_ERR_OPEN_FILE;
} }
#endif #endif
#if 0 #if 0
sprintf(full_path, "%s%s", base_path, "mpp_yuv_in.yuv"); sprintf(full_path, "%s%s", base_path, "mpp_yuv_in.yuv");
fp_mpp_yuv_in = fopen(full_path, "wb"); fp_mpp_yuv_in = fopen(full_path, "wb");
if (!fp_mpp_yuv_in) { if (!fp_mpp_yuv_in) {
mpp_err("%s open error", full_path); mpp_err("%s open error", full_path);
return MPP_ERR_OPEN_FILE; return MPP_ERR_OPEN_FILE;
} }
#endif #endif
return MPP_OK; return MPP_OK;
} }
@@ -819,7 +819,7 @@ static void dump_rkv_mpp_dbg_info(h264e_hal_rkv_dbg_info *info, h264e_syntax *sy
#if 0 #if 0
static MPP_RET get_rkv_dbg_info(h264e_hal_rkv_dbg_info *info, h264e_syntax *syn, static MPP_RET get_rkv_dbg_info(h264e_hal_rkv_dbg_info *info, h264e_syntax *syn,
MppBuffer *hw_in_buf, MppBuffer *hw_output_strm_buf) MppBuffer *hw_in_buf, MppBuffer *hw_output_strm_buf)
{ {
RK_S32 k = 0; RK_S32 k = 0;
@@ -1100,7 +1100,7 @@ static MPP_RET get_rkv_dbg_info(h264e_hal_rkv_dbg_info *info, h264e_syntax *syn,
static MPP_RET get_rkv_syntax_in( h264e_syntax *syn, MppBuffer *hw_in_buf, MppBuffer *hw_output_strm_buf, h264e_hal_test_cfg *cfg) static MPP_RET get_rkv_syntax_in( h264e_syntax *syn, MppBuffer *hw_in_buf, MppBuffer *hw_output_strm_buf, h264e_hal_test_cfg *cfg)
{ {
h264e_hal_csp_info csp_info; h264e_hal_csp_info csp_info;
RK_U32 buf_idx = g_frame_read_cnt % RKV_H264E_LINKTABLE_FRAME_NUM; RK_U32 buf_idx = g_frame_read_cnt % RKV_H264E_LINKTABLE_FRAME_NUM;
h264e_hal_debug_enter(); h264e_hal_debug_enter();
@@ -1114,8 +1114,8 @@ static MPP_RET get_rkv_syntax_in( h264e_syntax *syn, MppBuffer *hw_in_buf, MppBu
} }
if (hw_output_strm_buf[buf_idx]) if (hw_output_strm_buf[buf_idx])
syn->output_strm_addr = mpp_buffer_get_fd(hw_output_strm_buf[buf_idx]); syn->output_strm_addr = mpp_buffer_get_fd(hw_output_strm_buf[buf_idx]);
#if RKV_H264E_SDK_TEST #if RKV_H264E_SDK_TEST
mpp_log("make syntax begin"); mpp_log("make syntax begin");
syn->pic_luma_width = cfg->pic_width; syn->pic_luma_width = cfg->pic_width;
syn->pic_luma_height = cfg->pic_height; syn->pic_luma_height = cfg->pic_height;
@@ -1124,7 +1124,7 @@ static MPP_RET get_rkv_syntax_in( h264e_syntax *syn, MppBuffer *hw_in_buf, MppBu
mpp_log("syn->level_idc %d", syn->level_idc); mpp_log("syn->level_idc %d", syn->level_idc);
mpp_log("syn->profile_idc %d", syn->profile_idc); mpp_log("syn->profile_idc %d", syn->profile_idc);
syn->keyframe_max_interval = 30; syn->keyframe_max_interval = 30;
if(g_frame_cnt==0 || g_frame_cnt%syn->keyframe_max_interval==0) { if (g_frame_cnt == 0 || g_frame_cnt % syn->keyframe_max_interval == 0) {
syn->frame_coding_type = 1; //intra syn->frame_coding_type = 1; //intra
syn->slice_type = 2; syn->slice_type = 2;
} else { } else {
@@ -1146,13 +1146,13 @@ static MPP_RET get_rkv_syntax_in( h264e_syntax *syn, MppBuffer *hw_in_buf, MppBu
syn->frame_num = 0; syn->frame_num = 0;
syn->cabac_init_idc = 0; syn->cabac_init_idc = 0;
syn->idr_pic_id = 0; syn->idr_pic_id = 0;
syn->pic_order_cnt_lsb = 0; syn->pic_order_cnt_lsb = 0;
mpp_log("make syntax end"); mpp_log("make syntax end");
#else #else
if (fp_golden_syntax_in) { if (fp_golden_syntax_in) {
FILE *fp = fp_golden_syntax_in; FILE *fp = fp_golden_syntax_in;
char temp[512] = {0}; char temp[512] = {0};
@@ -1195,7 +1195,7 @@ static MPP_RET get_rkv_syntax_in( h264e_syntax *syn, MppBuffer *hw_in_buf, MppBu
} else { } else {
mpp_err("rkv_syntax_in.txt doesn't exits"); mpp_err("rkv_syntax_in.txt doesn't exits");
} }
#endif #endif
syn->output_strm_limit_size = syn->pic_luma_width * syn->pic_luma_height * 1.5; syn->output_strm_limit_size = syn->pic_luma_width * syn->pic_luma_height * 1.5;
h264e_hal_debug_leave(); h264e_hal_debug_leave();
@@ -1243,23 +1243,23 @@ static MPP_RET h264e_hal_test_parse_options(int arg_num, char **arg_str, h264e_h
if (!strcmp("--test-qp", arg_str[k])) { if (!strcmp("--test-qp", arg_str[k])) {
cfg->test.qp = atoi(arg_str[k + 1]); cfg->test.qp = atoi(arg_str[k + 1]);
k++; k++;
} }
if (!strcmp("--test-preproc", arg_str[k])) { if (!strcmp("--test-preproc", arg_str[k])) {
cfg->test.preproc = atoi(arg_str[k + 1]); cfg->test.preproc = atoi(arg_str[k + 1]);
k++; k++;
} }
if (!strcmp("--test-osd", arg_str[k])) { if (!strcmp("--test-osd", arg_str[k])) {
cfg->test.osd = atoi(arg_str[k + 1]); cfg->test.osd = atoi(arg_str[k + 1]);
k++; k++;
} }
if (!strcmp("--test-mbrc", arg_str[k])) { if (!strcmp("--test-mbrc", arg_str[k])) {
cfg->test.mbrc = atoi(arg_str[k + 1]); cfg->test.mbrc = atoi(arg_str[k + 1]);
k++; k++;
} }
if (!strcmp("--test-roi", arg_str[k])) { if (!strcmp("--test-roi", arg_str[k])) {
cfg->test.roi = atoi(arg_str[k + 1]); cfg->test.roi = atoi(arg_str[k + 1]);
k++; k++;
} }
} }
@@ -1267,7 +1267,7 @@ static MPP_RET h264e_hal_test_parse_options(int arg_num, char **arg_str, h264e_h
mpp_log("test param parse error: input_yuv_file_path is NULL"); mpp_log("test param parse error: input_yuv_file_path is NULL");
return MPP_NOK; return MPP_NOK;
} }
#if RKV_H264E_SDK_TEST #if RKV_H264E_SDK_TEST
if (!cfg->pic_width) { if (!cfg->pic_width) {
mpp_log("test param parse error: pic_width is 0"); mpp_log("test param parse error: pic_width is 0");
return MPP_NOK; return MPP_NOK;
@@ -1276,12 +1276,12 @@ static MPP_RET h264e_hal_test_parse_options(int arg_num, char **arg_str, h264e_h
mpp_log("test param parse error: pic_height is 0"); mpp_log("test param parse error: pic_height is 0");
return MPP_NOK; return MPP_NOK;
} }
#else #else
if (!cfg->input_syntax_file_path) { if (!cfg->input_syntax_file_path) {
mpp_log("test param parse error: input_syntax_file_path is NULL"); mpp_log("test param parse error: input_syntax_file_path is NULL");
return MPP_NOK; return MPP_NOK;
} }
#endif #endif
if (cfg->hw_mode == 0) if (cfg->hw_mode == 0)
test_device_id = HAL_RKVENC; test_device_id = HAL_RKVENC;
@@ -1293,18 +1293,18 @@ static MPP_RET h264e_hal_test_parse_options(int arg_num, char **arg_str, h264e_h
} }
mpp_log("======== hal converage test cfg (st) ======="); mpp_log("======== hal converage test cfg (st) =======");
if(cfg->test.qp) if (cfg->test.qp)
mpp_log("cfg->test.qp %d", cfg->test.qp); mpp_log("cfg->test.qp %d", cfg->test.qp);
if(cfg->test.preproc) if (cfg->test.preproc)
mpp_log("cfg->test.preproc %d", cfg->test.preproc); mpp_log("cfg->test.preproc %d", cfg->test.preproc);
if(cfg->test.osd) if (cfg->test.osd)
mpp_log("cfg->test.osd %d", cfg->test.osd); mpp_log("cfg->test.osd %d", cfg->test.osd);
if(cfg->test.mbrc) if (cfg->test.mbrc)
mpp_log("cfg->test.mbrc %d", cfg->test.mbrc); mpp_log("cfg->test.mbrc %d", cfg->test.mbrc);
if(cfg->test.roi) if (cfg->test.roi)
mpp_log("cfg->test.roi %d", cfg->test.roi); mpp_log("cfg->test.roi %d", cfg->test.roi);
mpp_log("======== hal converage test cfg (ed) ======="); mpp_log("======== hal converage test cfg (ed) =======");
return MPP_OK; return MPP_OK;
} }
@@ -1374,7 +1374,7 @@ MPP_RET h264e_hal_vpu_test()
mpp_packet_init(&extra_info_pkt, (void *)extra_info_buf, H264E_MAX_PACKETED_PARAM_SIZE); mpp_packet_init(&extra_info_pkt, (void *)extra_info_buf, H264E_MAX_PACKETED_PARAM_SIZE);
get_vpu_syntax_in(&syntax_data, hw_input_buf, hw_output_strm_buf); get_vpu_syntax_in(&syntax_data, hw_input_buf, hw_output_strm_buf);
if(fp_golden_syntax_in) if (fp_golden_syntax_in)
fseek(fp_golden_syntax_in, 0L, SEEK_SET); fseek(fp_golden_syntax_in, 0L, SEEK_SET);
frame_luma_stride = ((syntax_data.pic_luma_width + 15) & (~15)) * ((syntax_data.pic_luma_height + 15) & (~15)); frame_luma_stride = ((syntax_data.pic_luma_width + 15) & (~15)) * ((syntax_data.pic_luma_height + 15) & (~15));
@@ -1494,8 +1494,8 @@ MPP_RET h264e_hal_rkv_test(h264e_hal_test_cfg *test_cfg)
get_rkv_syntax_in(&syntax_data[0], hw_input_buf_mul, hw_output_strm_buf_mul, test_cfg); get_rkv_syntax_in(&syntax_data[0], hw_input_buf_mul, hw_output_strm_buf_mul, test_cfg);
if(fp_golden_syntax_in) if (fp_golden_syntax_in)
fseek(fp_golden_syntax_in, 0L, SEEK_SET); fseek(fp_golden_syntax_in, 0L, SEEK_SET);
frame_luma_stride = ((syntax_data[0].pic_luma_width + 15) & (~15)) * ((syntax_data[0].pic_luma_height + 15) & (~15)); frame_luma_stride = ((syntax_data[0].pic_luma_width + 15) & (~15)) * ((syntax_data[0].pic_luma_height + 15) & (~15));
@@ -1544,11 +1544,11 @@ MPP_RET h264e_hal_rkv_test(h264e_hal_test_cfg *test_cfg)
} }
ret = get_rkv_h264e_yuv_in_frame(syn, hw_input_buf_mul); ret = get_rkv_h264e_yuv_in_frame(syn, hw_input_buf_mul);
if (ret == MPP_EOS_STREAM_REACHED) { if (ret == MPP_EOS_STREAM_REACHED) {
if(g_frame_cnt == test_cfg->num_frames) { if (g_frame_cnt == test_cfg->num_frames) {
mpp_log("total %d frames are encoded, test is ended", g_frame_cnt); mpp_log("total %d frames are encoded, test is ended", g_frame_cnt);
goto __test_end; goto __test_end;
} else { } else {
fseek(fp_h264e_yuv_in, 0L, SEEK_SET); fseek(fp_h264e_yuv_in, 0L, SEEK_SET);
ret = get_rkv_h264e_yuv_in_frame(syn, hw_input_buf_mul); ret = get_rkv_h264e_yuv_in_frame(syn, hw_input_buf_mul);
} }
} else if (ret == MPP_NOK) { } else if (ret == MPP_NOK) {
@@ -1575,11 +1575,11 @@ MPP_RET h264e_hal_rkv_test(h264e_hal_test_cfg *test_cfg)
if (g_frame_cnt == g_frame_read_cnt) if (g_frame_cnt == g_frame_read_cnt)
hal_h264e_rkv_dump_mpp_strm_out(&ctx, hw_output_strm_buf_mul); hal_h264e_rkv_dump_mpp_strm_out(&ctx, hw_output_strm_buf_mul);
if(g_frame_cnt==test_cfg->num_frames) { if (g_frame_cnt == test_cfg->num_frames) {
mpp_log("test_cfg->num_frames %d reached, end test", test_cfg->num_frames); mpp_log("test_cfg->num_frames %d reached, end test", test_cfg->num_frames);
goto __test_end; goto __test_end;
} }
} while (1); } while (1);

View File

@@ -208,8 +208,7 @@ public:
VpulibDlsym() : VpulibDlsym() :
rkapi_hdl(NULL), rkapi_hdl(NULL),
rkvpu_open_cxt(NULL), rkvpu_open_cxt(NULL),
rkvpu_close_cxt(NULL) rkvpu_close_cxt(NULL) {
{
RK_U32 i; RK_U32 i;
for (i = 0; i < MPP_ARRAY_ELEMS(codec_paths); i++) { for (i = 0; i < MPP_ARRAY_ELEMS(codec_paths); i++) {

View File

@@ -43,7 +43,7 @@ static MppCodingTypeInfo support_list[] = {
{ MPP_CTX_DEC, MPP_VIDEO_CodingVP8, "dec", "vp8", }, { MPP_CTX_DEC, MPP_VIDEO_CodingVP8, "dec", "vp8", },
{ MPP_CTX_DEC, MPP_VIDEO_CodingVP9, "dec", "VP9", }, { MPP_CTX_DEC, MPP_VIDEO_CodingVP9, "dec", "VP9", },
{ MPP_CTX_DEC, MPP_VIDEO_CodingAVS, "dec", "avs+", }, { MPP_CTX_DEC, MPP_VIDEO_CodingAVS, "dec", "avs+", },
{ MPP_CTX_DEC, MPP_VIDEO_CodingMJPEG, "dec", "jpeg", }, { MPP_CTX_DEC, MPP_VIDEO_CodingMJPEG, "dec", "jpeg", },
{ MPP_CTX_ENC, MPP_VIDEO_CodingAVC, "enc", "h.264/AVC", }, { MPP_CTX_ENC, MPP_VIDEO_CodingAVC, "enc", "h.264/AVC", },
}; };

View File

@@ -196,7 +196,7 @@ RK_S32 check_sysfs_iommu()
mpp_env_get_u32("ion_debug", &ion_debug, 0); mpp_env_get_u32("ion_debug", &ion_debug, 0);
#ifdef SOFIA_3GR_LINUX #ifdef SOFIA_3GR_LINUX
return ret; return ret;
#endif #endif
for (i = 0; i < MPP_ARRAY_ELEMS(dts_devices); i++) { for (i = 0; i < MPP_ARRAY_ELEMS(dts_devices); i++) {

View File

@@ -459,7 +459,7 @@ static RK_S32 mpi_enc_test_parse_options(int argc, char **argv, MpiEncTestCmd* c
if (next) { if (next) {
cmd->format = (MppFrameFormat)atoi(next); cmd->format = (MppFrameFormat)atoi(next);
err = ((cmd->format >= MPP_FMT_YUV_BUTT && cmd->format < MPP_FRAME_FMT_RGB) || err = ((cmd->format >= MPP_FMT_YUV_BUTT && cmd->format < MPP_FRAME_FMT_RGB) ||
cmd->format >= MPP_FMT_RGB_BUTT); cmd->format >= MPP_FMT_RGB_BUTT);
} }
if (!next || err) { if (!next || err) {