Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sdroege/gst-plugin-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/video
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2023-01-19 17:37:02 +0300
committerSebastian Dröge <sebastian@centricular.com>2023-01-19 17:37:02 +0300
commitb6af64b97043c573ba5de1421897292369af80fb (patch)
tree0c490ee917df240b5d77d257917a4923158f5f10 /video
parentd1196c3e282616dfe70fdf242ab1b407b6a688c2 (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.rs14
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")