diff --git a/osal/driver/inc/mpp_service_impl.h b/osal/driver/inc/mpp_service_impl.h index 9c1ab446..063df4e0 100644 --- a/osal/driver/inc/mpp_service_impl.h +++ b/osal/driver/inc/mpp_service_impl.h @@ -20,7 +20,7 @@ #include "mpp_device.h" #include "mpp_service.h" -#define MAX_REG_OFFSET 32 +#define MAX_REG_OFFSET 64 #define MAX_RCB_OFFSET 32 #define MAX_INFO_COUNT 16 diff --git a/osal/driver/mpp_service.c b/osal/driver/mpp_service.c index 3a328145..4bd9f4bb 100644 --- a/osal/driver/mpp_service.c +++ b/osal/driver/mpp_service.c @@ -215,6 +215,8 @@ RegOffsetInfo *mpp_service_next_reg_offset(MppDevMppService *p) RegOffsetInfo *info = NULL; if (p->reg_offset_count + p->reg_offset_pos >= p->reg_offset_max) { + RegOffsetInfo *orig = p->reg_offset_info; + mpp_dev_dbg_msg("enlarge reg offset count %d -> %d\n", p->reg_offset_max, p->reg_offset_max * 2); p->reg_offset_info = mpp_realloc(p->reg_offset_info, RegOffsetInfo, p->reg_offset_max * 2); @@ -222,6 +224,8 @@ RegOffsetInfo *mpp_service_next_reg_offset(MppDevMppService *p) mpp_err_f("failed to enlarge request buffer\n"); return NULL; } + if (orig != p->reg_offset_info) + mpp_logw_f("enlarge reg offset buffer and get different pointer\n"); p->reg_offset_max *= 2; }