diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2023-01-19 17:37:02 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2023-01-19 17:37:02 +0300 |
commit | b6af64b97043c573ba5de1421897292369af80fb (patch) | |
tree | 0c490ee917df240b5d77d257917a4923158f5f10 /video | |
parent | d1196c3e282616dfe70fdf242ab1b407b6a688c2 (diff) |
gtk4: Only provide a buffer pool to upstream if it requested one
Diffstat (limited to 'video')
-rw-r--r-- | video/gtk4/src/sink/imp.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/video/gtk4/src/sink/imp.rs b/video/gtk4/src/sink/imp.rs index 397fc6bf..b8648de1 100644 --- a/video/gtk4/src/sink/imp.rs +++ b/video/gtk4/src/sink/imp.rs @@ -359,10 +359,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(); @@ -375,10 +373,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") |