From 711313c4c57af5df06bcc9276c17321c42957524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 19 Jan 2023 16:37:02 +0200 Subject: [PATCH] gtk4: Only provide a buffer pool to upstream if it requested one --- video/gtk4/src/sink/imp.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/video/gtk4/src/sink/imp.rs b/video/gtk4/src/sink/imp.rs index e975953d..4c59fbb8 100644 --- a/video/gtk4/src/sink/imp.rs +++ b/video/gtk4/src/sink/imp.rs @@ -350,10 +350,8 @@ impl BaseSinkImpl for PaintableSink { .map_err(|_| gst::loggable_error!(CAT, "Failed to get VideoInfo from caps"))?; let size = info.size() as u32; - - let buffer_pool = gst_gl::GLBufferPool::new(&gst_context); - - if need_pool { + let buffer_pool = if need_pool { + let buffer_pool = gst_gl::GLBufferPool::new(&gst_context); gst::debug!(CAT, imp: self, "Creating new Pool"); let mut config = buffer_pool.config(); @@ -366,10 +364,14 @@ impl BaseSinkImpl for PaintableSink { format!("Failed to set config in the GL BufferPool.: {}", err) )); } - } + + Some(buffer_pool) + } else { + None + }; // we need at least 2 buffer because we hold on to the last one - query.add_allocation_pool(Some(&buffer_pool), size, 2, 0); + query.add_allocation_pool(buffer_pool.as_ref(), size, 2, 0); if gst_context.check_feature("GL_ARB_sync") || gst_context.check_feature("GL_EXT_EGL_sync")