int loop_last_poc;
bool enable_fence;
int fence_usage;
+ bool discard_dv_data;
};
static u32 again_threshold;
}
set_frame_info(hw, vf, buffer_index);
+ if (hw->discard_dv_data) {
+ vf->discard_dv_data = true;
+ }
if (hw->mmu_enable && hw->double_write_mode) {
vf->width = hw->frame_width /
"parm_fence_usage",
&config_val) == 0)
hw->fence_usage = config_val;
+
+ if (get_config_int(pdata->config,
+ "negative_dv",
+ &config_val) == 0) {
+ hw->discard_dv_data = config_val;
+ dpb_print(DECODE_ID(hw), 0, "discard dv data\n");
+ }
} else
hw->double_write_mode = double_write_mode;
u32 poc_error_count;
u32 timeout_flag;
ulong timeout;
+ bool discard_dv_data;
} /*hevc_stru_t */;
#ifdef AGAIN_HAS_THRESHOLD
vf->canvas0Addr = vf->canvas1Addr = spec2canvas(pic);
#endif
set_frame_info(hevc, vf, pic);
+ if (hevc->discard_dv_data) {
+ vf->discard_dv_data = true;
+ }
+
/* if((vf->width!=pic->width)||(vf->height!=pic->height)) */
/* hevc_print(hevc, 0,
"aaa: %d/%d, %d/%d\n",
hevc->dv_duallayer = config_val;
else
hevc->dv_duallayer = false;
+
+ if (get_config_int(pdata->config, "negative_dv",
+ &config_val) == 0) {
+ hevc->discard_dv_data = config_val;
+ hevc_print(hevc, 0, "discard dv data\n");
+ }
#endif
} else {
if (pdata->sys_info)