meta-digi/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-waylandsink-do-not-har...

47 lines
1.4 KiB
Diff

From f1e46e02aeac410a4bf1faae5a7dac62c0dfbe1d Mon Sep 17 00:00:00 2001
From: Hugues Fruchet <hugues.fruchet@st.com>
Date: Wed, 12 Dec 2018 11:39:33 +0100
Subject: [PATCH 04/14] waylandsink: do not hardcode dmabuf bufferpool info
size
Read pool config to get the maximum number of buffers
for info size pool allocation.
Upstream-Status: Inappropriate [DEY specific]
Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com>
---
ext/wayland/waylandpool.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/ext/wayland/waylandpool.c b/ext/wayland/waylandpool.c
index 6e98143..1ba1f85 100644
--- a/ext/wayland/waylandpool.c
+++ b/ext/wayland/waylandpool.c
@@ -357,11 +357,21 @@ gst_wayland_buffer_pool_start (GstBufferPool * pool)
int fd;
char filename[1024];
static int init = 0;
+ GstStructure *config;
+ guint config_max_buf;
GST_DEBUG_OBJECT (self, "Initializing wayland buffer pool");
+ /* get max size of pool */
+ config = gst_buffer_pool_get_config (pool);
+ gst_buffer_pool_config_get_params (config, NULL, NULL,
+ NULL, &config_max_buf);
+
+ if (config_max_buf == 0)
+ config_max_buf = 32;
+
/* configure */
- size = GST_VIDEO_INFO_SIZE (&self->info) * 15;
+ size = GST_VIDEO_INFO_SIZE (&self->info) * config_max_buf;
/* allocate shm pool */
snprintf (filename, 1024, "%s/%s-%d-%s", g_get_user_runtime_dir (),
--
2.25.1