mirror of
https://github.com/nyanmisaka/mpp.git
synced 2026-01-24 03:30:40 +01:00
feat[err_proc]: Add a new command: DIS_ERR_CLR_MARK
Platform: General Spec: h264/h265/avs2/avs2d/m2vd MPP_DEC_SET_DISABLE_ERROR: Comes with an error mark by default. MPP_DEC_SET_DIS_ERR_CLR_MARK: Takes effect when MPP_DEC_SET_DISABLE_ERROR is enabled and is used to clear the error mark. Signed-off-by: Hongjin Li <vic.hong@rock-chips.com> Change-Id: I82b00c737bb72bdc420267d36c28752a5e3ee9a6
This commit is contained in:
parent
83f4b5abd6
commit
3ac819df3b
31 changed files with 123 additions and 86 deletions
|
|
@ -613,7 +613,8 @@ MPP_RET hal_avs2d_rkv_gen_regs(void *hal, HalTaskInfo *task)
|
|||
|
||||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
}
|
||||
|
|
@ -806,7 +807,8 @@ MPP_RET hal_avs2d_rkv_start(void *hal, HalTaskInfo *task)
|
|||
AVS2D_HAL_TRACE("In.");
|
||||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
}
|
||||
|
|
@ -1034,7 +1036,8 @@ MPP_RET hal_avs2d_rkv_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx = (Avs2dRkvRegCtx_t *)p_hal->reg_ctx;
|
||||
p_regs = p_hal->fast_mode ? reg_ctx->reg_buf[task->dec.reg_index].regs : reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
AVS2D_HAL_DBG(AVS2D_HAL_DBG_ERROR, "found task error.\n");
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
|
|
|
|||
|
|
@ -680,7 +680,8 @@ MPP_RET hal_avs2d_vdpu382_gen_regs(void *hal, HalTaskInfo *task)
|
|||
|
||||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
}
|
||||
|
|
@ -872,7 +873,8 @@ MPP_RET hal_avs2d_vdpu382_start(void *hal, HalTaskInfo *task)
|
|||
AVS2D_HAL_TRACE("In.");
|
||||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
}
|
||||
|
|
@ -1100,7 +1102,8 @@ MPP_RET hal_avs2d_vdpu382_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx = (Avs2dVdpu382RegCtx_t *)p_hal->reg_ctx;
|
||||
p_regs = p_hal->fast_mode ? reg_ctx->reg_buf[task->dec.reg_index].regs : reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
AVS2D_HAL_DBG(AVS2D_HAL_DBG_ERROR, "found task error.\n");
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
|
|
|
|||
|
|
@ -638,7 +638,8 @@ MPP_RET hal_avs2d_vdpu383_gen_regs(void *hal, HalTaskInfo *task)
|
|||
AVS2D_HAL_TRACE("In.");
|
||||
|
||||
INP_CHECK(ret, NULL == p_hal);
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
}
|
||||
|
|
@ -717,8 +718,8 @@ MPP_RET hal_avs2d_vdpu383_start(void *hal, HalTaskInfo *task)
|
|||
AVS2D_HAL_TRACE("In.");
|
||||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -891,7 +892,8 @@ MPP_RET hal_avs2d_vdpu383_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx = (Avs2dRkvRegCtx_t *)p_hal->reg_ctx;
|
||||
regs = p_hal->fast_mode ? reg_ctx->reg_buf[task->dec.reg_index].regs : reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->cfg->base.disable_error) {
|
||||
AVS2D_HAL_DBG(AVS2D_HAL_DBG_ERROR, "found task error.\n");
|
||||
ret = MPP_NOK;
|
||||
goto __RETURN;
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@ MPP_RET hal_avsd_init(void *decoder, MppHalCfg *cfg)
|
|||
|
||||
FUN_CHECK(ret = init_hard_platform(p_hal, cfg->coding));
|
||||
cfg->dev = p_hal->dev;
|
||||
p_hal->dec_cfg = cfg->cfg;
|
||||
|
||||
//!< run init funtion
|
||||
FUN_CHECK(ret = p_hal->hal_api.init(decoder, cfg));
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ typedef struct avsd_hal_ctx_t {
|
|||
MppCodingType coding;
|
||||
MppCbCtx *dec_cb;
|
||||
MppDev dev;
|
||||
MppDecCfgSet *dec_cfg;
|
||||
|
||||
AvsdSyntax_t syn;
|
||||
RK_U32 *p_regs;
|
||||
|
|
|
|||
|
|
@ -653,7 +653,8 @@ MPP_RET hal_avsd_plus_gen_regs(void *decoder, HalTaskInfo *task)
|
|||
AvsdHalCtx_t *p_hal = (AvsdHalCtx_t *)decoder;
|
||||
|
||||
AVSD_HAL_TRACE("In.");
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __RETURN;
|
||||
}
|
||||
p_hal->data_offset = p_hal->syn.bitstream_offset;
|
||||
|
|
@ -680,7 +681,8 @@ MPP_RET hal_avsd_plus_start(void *decoder, HalTaskInfo *task)
|
|||
AVSD_HAL_TRACE("In.");
|
||||
INP_CHECK(ret, NULL == decoder);
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -755,8 +757,8 @@ MPP_RET hal_avsd_plus_wait(void *decoder, HalTaskInfo *task)
|
|||
AVSD_HAL_TRACE("In.");
|
||||
INP_CHECK(ret, NULL == decoder);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
@ -777,7 +779,8 @@ __SKIP_HARD:
|
|||
update_parameters(p_hal);
|
||||
memset(&p_hal->p_regs[1], 0, sizeof(RK_U32));
|
||||
if (!p_hal->first_field && p_hal->syn.pp.pictureStructure == FIELDPICTURE &&
|
||||
!task->dec.flags.parse_err && !task->dec.flags.ref_err) {
|
||||
((!task->dec.flags.parse_err && !task->dec.flags.ref_err) ||
|
||||
p_hal->dec_cfg->base.disable_error)) {
|
||||
repeat_other_field(p_hal, task);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -545,7 +545,8 @@ MPP_RET hal_avsd_vdpu1_gen_regs(void *decoder, HalTaskInfo *task)
|
|||
AvsdHalCtx_t *p_hal = (AvsdHalCtx_t *)decoder;
|
||||
|
||||
AVSD_HAL_TRACE("In.");
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __RETURN;
|
||||
}
|
||||
p_hal->data_offset = p_hal->syn.bitstream_offset;
|
||||
|
|
@ -572,7 +573,8 @@ MPP_RET hal_avsd_vdpu1_start(void *decoder, HalTaskInfo *task)
|
|||
|
||||
AVSD_HAL_TRACE("In.");
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -626,7 +628,8 @@ MPP_RET hal_avsd_vdpu1_wait(void *decoder, HalTaskInfo *task)
|
|||
|
||||
AVSD_HAL_TRACE("In.");
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
@ -653,7 +656,8 @@ __SKIP_HARD:
|
|||
update_parameters(p_hal);
|
||||
memset(&p_hal->p_regs[1], 0, sizeof(RK_U32));
|
||||
if (!p_hal->first_field && p_hal->syn.pp.pictureStructure == FIELDPICTURE &&
|
||||
!task->dec.flags.parse_err && !task->dec.flags.ref_err) {
|
||||
((!task->dec.flags.parse_err && !task->dec.flags.ref_err) ||
|
||||
p_hal->dec_cfg->base.disable_error)) {
|
||||
repeat_other_field(p_hal, task);
|
||||
}
|
||||
p_hal->frame_no++;
|
||||
|
|
|
|||
|
|
@ -542,7 +542,8 @@ MPP_RET hal_avsd_vdpu2_gen_regs(void *decoder, HalTaskInfo *task)
|
|||
AvsdHalCtx_t *p_hal = (AvsdHalCtx_t *)decoder;
|
||||
|
||||
AVSD_HAL_TRACE("In.");
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __RETURN;
|
||||
}
|
||||
p_hal->data_offset = p_hal->syn.bitstream_offset;
|
||||
|
|
@ -570,7 +571,8 @@ MPP_RET hal_avsd_vdpu2_start(void *decoder, HalTaskInfo *task)
|
|||
|
||||
AVSD_HAL_TRACE("In.");
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -624,7 +626,8 @@ MPP_RET hal_avsd_vdpu2_wait(void *decoder, HalTaskInfo *task)
|
|||
|
||||
AVSD_HAL_TRACE("In.");
|
||||
|
||||
if (task->dec.flags.parse_err || task->dec.flags.ref_err) {
|
||||
if ((task->dec.flags.parse_err || task->dec.flags.ref_err) &&
|
||||
!p_hal->dec_cfg->base.disable_error) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
@ -652,7 +655,8 @@ __SKIP_HARD:
|
|||
update_parameters(p_hal);
|
||||
memset(&p_hal->p_regs[55], 0, sizeof(RK_U32));
|
||||
if (!p_hal->first_field && p_hal->syn.pp.pictureStructure == FIELDPICTURE &&
|
||||
!task->dec.flags.parse_err && !task->dec.flags.ref_err) {
|
||||
((!task->dec.flags.parse_err && !task->dec.flags.ref_err) ||
|
||||
p_hal->dec_cfg->base.disable_error)) {
|
||||
repeat_other_field(p_hal, task);
|
||||
}
|
||||
p_hal->frame_no++;
|
||||
|
|
|
|||
|
|
@ -632,7 +632,7 @@ MPP_RET rkv_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
H264dRkvRegCtx_t *reg_ctx = (H264dRkvRegCtx_t *)p_hal->reg_ctx;
|
||||
|
|
@ -694,7 +694,7 @@ MPP_RET rkv_h264d_start(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -767,7 +767,7 @@ MPP_RET rkv_h264d_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -826,7 +826,7 @@ MPP_RET vdpu1_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
p_hal->in_task = &task->dec;
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
priv = p_hal->priv;
|
||||
|
|
@ -880,7 +880,7 @@ MPP_RET vdpu1_h264d_start(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -945,7 +945,7 @@ MPP_RET vdpu1_h264d_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -886,7 +886,7 @@ MPP_RET vdpu2_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||
p_hal->in_task = &task->dec;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
priv = p_hal->priv;
|
||||
|
|
@ -943,7 +943,7 @@ MPP_RET vdpu2_h264d_start(void *hal, HalTaskInfo *task)
|
|||
RockchipSocType soc_type = mpp_get_soc_type();
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -1033,7 +1033,7 @@ MPP_RET vdpu2_h264d_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -930,7 +930,7 @@ MPP_RET vdpu34x_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -1008,7 +1008,7 @@ MPP_RET vdpu34x_h264d_start(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -1120,7 +1120,7 @@ MPP_RET vdpu34x_h264d_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -958,7 +958,7 @@ MPP_RET vdpu382_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -1062,7 +1062,7 @@ MPP_RET vdpu382_h264d_start(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -1235,7 +1235,7 @@ MPP_RET vdpu382_h264d_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -823,7 +823,7 @@ MPP_RET vdpu383_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -925,7 +925,7 @@ MPP_RET vdpu383_h264d_start(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -1011,7 +1011,7 @@ MPP_RET vdpu383_h264d_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -770,7 +770,7 @@ MPP_RET vdpu384a_h264d_gen_regs(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -866,7 +866,7 @@ MPP_RET vdpu384a_h264d_start(void *hal, HalTaskInfo *task)
|
|||
INP_CHECK(ret, NULL == p_hal);
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __RETURN;
|
||||
}
|
||||
|
||||
|
|
@ -952,7 +952,7 @@ MPP_RET vdpu384a_h264d_wait(void *hal, HalTaskInfo *task)
|
|||
reg_ctx->regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !p_hal->cfg->base.disable_error)) {
|
||||
goto __SKIP_HARD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -738,16 +738,16 @@ MPP_RET hal_h265d_rkv_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
MppBuffer framebuf = NULL;
|
||||
RK_U32 sw_ref_valid = 0;
|
||||
RK_U32 stream_buf_size = 0;
|
||||
HalH265dCtx *reg_ctx = ( HalH265dCtx *)hal;
|
||||
|
||||
if (syn->dec.flags.parse_err ||
|
||||
syn->dec.flags.ref_err) {
|
||||
(syn->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
||||
h265d_dxva2_picture_context_t *dxva_cxt =
|
||||
(h265d_dxva2_picture_context_t *)syn->dec.syntax.data;
|
||||
HalH265dCtx *reg_ctx = ( HalH265dCtx *)hal;
|
||||
|
||||
void *rps_ptr = NULL;
|
||||
if (reg_ctx ->fast_mode) {
|
||||
|
|
@ -922,7 +922,7 @@ MPP_RET hal_h265d_rkv_start(void *hal, HalTaskInfo *task)
|
|||
RK_U32 i;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
|
@ -998,7 +998,7 @@ MPP_RET hal_h265d_rkv_wait(void *hal, HalTaskInfo *task)
|
|||
}
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
goto ERR_PROC;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -861,7 +861,7 @@ static MPP_RET hal_h265d_vdpu34x_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
pp->log2_min_luma_coding_block_size_minus3 + 3);
|
||||
|
||||
if (syn->dec.flags.parse_err ||
|
||||
syn->dec.flags.ref_err) {
|
||||
(syn->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
|
@ -1119,7 +1119,7 @@ static MPP_RET hal_h265d_vdpu34x_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
}
|
||||
|
||||
if ((reg_ctx->error_index[syn->dec.reg_index] == dxva_cxt->pp.CurrPic.Index7Bits) &&
|
||||
!dxva_cxt->pp.IntraPicFlag && !reg_ctx->cfg->base.disable_error) {
|
||||
!dxva_cxt->pp.IntraPicFlag) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "current frm may be err, should skip process");
|
||||
syn->dec.flags.ref_err = 1;
|
||||
return MPP_OK;
|
||||
|
|
@ -1161,7 +1161,7 @@ static MPP_RET hal_h265d_vdpu34x_start(void *hal, HalTaskInfo *task)
|
|||
RK_U32 i;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
|
@ -1293,7 +1293,7 @@ static MPP_RET hal_h265d_vdpu34x_wait(void *hal, HalTaskInfo *task)
|
|||
p = (RK_U8*)hw_regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
goto ERR_PROC;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -667,7 +667,7 @@ static MPP_RET hal_h265d_vdpu382_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
RK_U32 stream_buf_size = 0;
|
||||
|
||||
if (syn->dec.flags.parse_err ||
|
||||
syn->dec.flags.ref_err) {
|
||||
(syn->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
|
@ -872,7 +872,7 @@ static MPP_RET hal_h265d_vdpu382_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
}
|
||||
|
||||
if ((reg_ctx->error_index[syn->dec.reg_index] == dxva_cxt->pp.CurrPic.Index7Bits) &&
|
||||
!dxva_cxt->pp.IntraPicFlag && !reg_ctx->cfg->base.disable_error) {
|
||||
!dxva_cxt->pp.IntraPicFlag) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "current frm may be err, should skip process");
|
||||
syn->dec.flags.ref_err = 1;
|
||||
return MPP_OK;
|
||||
|
|
@ -954,7 +954,7 @@ static MPP_RET hal_h265d_vdpu382_start(void *hal, HalTaskInfo *task)
|
|||
RK_U32 i;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
|
@ -1083,7 +1083,7 @@ static MPP_RET hal_h265d_vdpu382_wait(void *hal, HalTaskInfo *task)
|
|||
p = (RK_U8*)hw_regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
goto ERR_PROC;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -869,16 +869,16 @@ static MPP_RET hal_h265d_vdpu383_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
RK_S32 fd = -1;
|
||||
RK_U32 mv_size = 0;
|
||||
RK_S32 distance = INT_MAX;
|
||||
HalH265dCtx *reg_ctx = (HalH265dCtx *)hal;
|
||||
|
||||
(void) fd;
|
||||
if (syn->dec.flags.parse_err ||
|
||||
syn->dec.flags.ref_err) {
|
||||
(syn->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
||||
h265d_dxva2_picture_context_t *dxva_ctx = (h265d_dxva2_picture_context_t *)syn->dec.syntax.data;
|
||||
HalH265dCtx *reg_ctx = (HalH265dCtx *)hal;
|
||||
HalBuf *origin_buf = NULL;
|
||||
|
||||
void *rps_ptr = NULL;
|
||||
|
|
@ -1144,7 +1144,7 @@ static MPP_RET hal_h265d_vdpu383_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
}
|
||||
|
||||
if ((reg_ctx->error_index[syn->dec.reg_index] == dxva_ctx->pp.CurrPic.Index7Bits) &&
|
||||
!dxva_ctx->pp.IntraPicFlag && !reg_ctx->cfg->base.disable_error) {
|
||||
!dxva_ctx->pp.IntraPicFlag) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "current frm may be err, should skip process");
|
||||
syn->dec.flags.ref_err = 1;
|
||||
return MPP_OK;
|
||||
|
|
@ -1241,7 +1241,7 @@ static MPP_RET hal_h265d_vdpu383_start(void *hal, HalTaskInfo *task)
|
|||
RK_U32 i;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
|
@ -1346,7 +1346,7 @@ static MPP_RET hal_h265d_vdpu383_wait(void *hal, HalTaskInfo *task)
|
|||
p = (RK_U8*)hw_regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
goto ERR_PROC;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -788,16 +788,16 @@ static MPP_RET hal_h265d_vdpu384a_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
RK_S32 fd = -1;
|
||||
RK_U32 mv_size = 0;
|
||||
RK_S32 distance = INT_MAX;
|
||||
HalH265dCtx *reg_ctx = (HalH265dCtx *)hal;
|
||||
|
||||
(void) fd;
|
||||
if (syn->dec.flags.parse_err ||
|
||||
syn->dec.flags.ref_err) {
|
||||
(syn->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
||||
h265d_dxva2_picture_context_t *dxva_ctx = (h265d_dxva2_picture_context_t *)syn->dec.syntax.data;
|
||||
HalH265dCtx *reg_ctx = (HalH265dCtx *)hal;
|
||||
HalBuf *origin_buf = NULL;
|
||||
|
||||
if (reg_ctx ->fast_mode) {
|
||||
|
|
@ -1080,7 +1080,7 @@ static MPP_RET hal_h265d_vdpu384a_gen_regs(void *hal, HalTaskInfo *syn)
|
|||
}
|
||||
|
||||
if ((reg_ctx->error_index[syn->dec.reg_index] == dxva_ctx->pp.CurrPic.Index7Bits) &&
|
||||
!dxva_ctx->pp.IntraPicFlag && !reg_ctx->cfg->base.disable_error) {
|
||||
!dxva_ctx->pp.IntraPicFlag) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "current frm may be err, should skip process");
|
||||
syn->dec.flags.ref_err = 1;
|
||||
return MPP_OK;
|
||||
|
|
@ -1177,7 +1177,7 @@ static MPP_RET hal_h265d_vdpu384a_start(void *hal, HalTaskInfo *task)
|
|||
RK_U32 i;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
return MPP_OK;
|
||||
}
|
||||
|
|
@ -1282,7 +1282,7 @@ static MPP_RET hal_h265d_vdpu384a_wait(void *hal, HalTaskInfo *task)
|
|||
p = (RK_U8*)hw_regs;
|
||||
|
||||
if (task->dec.flags.parse_err ||
|
||||
task->dec.flags.ref_err) {
|
||||
(task->dec.flags.ref_err && !reg_ctx->cfg->base.disable_error)) {
|
||||
h265h_dbg(H265H_DBG_TASK_ERR, "%s found task error\n", __FUNCTION__);
|
||||
goto ERR_PROC;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue