amlv4l2dec: CB2 increase margin number [1/1]
PD#SWPL-182760
Problem:
default capture buffer margin number is 4.
sometimes compositor do not release capture
in time.so video freeze
Solution:
1.set default capture margin count to 6
2.set margin count to 4 when on low memory mode
Verify:
ap222
Change-Id: I7dfceaaca1cc938021f36f85205c1f10b512b573
Signed-off-by: fei.deng <fei.deng@amlogic.com>
diff --git a/src/gstamlv4l2object.c b/src/gstamlv4l2object.c
index 246eccc..44aaae5 100644
--- a/src/gstamlv4l2object.c
+++ b/src/gstamlv4l2object.c
@@ -3742,7 +3742,12 @@
GST_DEBUG_OBJECT(v4l2object->dbg_obj, "output cfg dw mode to %d", decParm->cfg.double_write_mode);
v4l2object->dw_mode = decParm->cfg.double_write_mode;
- decParm->cfg.ref_buf_margin = GST_AML_V4L2_DEFAULT_CAP_BUF_MARGIN;
+ if (v4l2object->low_memory_mode) {
+ decParm->cfg.ref_buf_margin = GST_AML_V4L2_LOW_MEMORY_CAP_BUF_MARGIN;
+ } else {
+ decParm->cfg.ref_buf_margin = GST_AML_V4L2_DEFAULT_CAP_BUF_MARGIN;
+ }
+
env = getenv("V4L2_SET_AMLOGIC_MARGIN_NUM");
if (env)
{
diff --git a/src/gstamlv4l2object.h b/src/gstamlv4l2object.h
index 37dc71b..1c2651c 100644
--- a/src/gstamlv4l2object.h
+++ b/src/gstamlv4l2object.h
@@ -44,7 +44,8 @@
#define GST_AML_V4L2_MIN_BUFFERS 2
#define GST_AML_V4L2_MAX_AV1_CAP_BUFS 16
#define GST_AML_V4L2_MAX_VP9_CAP_BUFS 20
-#define GST_AML_V4L2_DEFAULT_CAP_BUF_MARGIN 4
+#define GST_AML_V4L2_DEFAULT_CAP_BUF_MARGIN 6
+#define GST_AML_V4L2_LOW_MEMORY_CAP_BUF_MARGIN 4
/* max frame width/height */
#define GST_AML_V4L2_MAX_SIZE (1 << 15) /* 2^15 == 32768 */