gstreamer_vulkan/auto/
vulkan_image_buffer_pool.rs1use crate::{VulkanDevice, ffi};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstVulkanImageBufferPool")]
11 pub struct VulkanImageBufferPool(Object<ffi::GstVulkanImageBufferPool, ffi::GstVulkanImageBufferPoolClass>) @extends gst::BufferPool, gst::Object;
12
13 match fn {
14 type_ => || ffi::gst_vulkan_image_buffer_pool_get_type(),
15 }
16}
17
18impl VulkanImageBufferPool {
19 pub const NONE: Option<&'static VulkanImageBufferPool> = None;
20
21 #[doc(alias = "gst_vulkan_image_buffer_pool_new")]
22 pub fn new(device: &impl IsA<VulkanDevice>) -> VulkanImageBufferPool {
23 skip_assert_initialized!();
24 unsafe {
25 gst::BufferPool::from_glib_full(ffi::gst_vulkan_image_buffer_pool_new(
26 device.as_ref().to_glib_none().0,
27 ))
28 .unsafe_cast()
29 }
30 }
31
32 #[cfg(feature = "v1_24")]
47 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
48 #[doc(alias = "gst_vulkan_image_buffer_pool_config_set_decode_caps")]
49 pub fn config_set_decode_caps(config: &gst::Structure, caps: &gst::Caps) {
50 assert_initialized_main_thread!();
51 unsafe {
52 ffi::gst_vulkan_image_buffer_pool_config_set_decode_caps(
53 config.to_glib_none().0,
54 caps.to_glib_none().0,
55 );
56 }
57 }
58
59 #[cfg(feature = "v1_26")]
60 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
61 #[doc(alias = "gst_vulkan_image_buffer_pool_config_set_encode_caps")]
62 pub fn config_set_encode_caps(config: &gst::Structure, caps: &gst::Caps) {
63 assert_initialized_main_thread!();
64 unsafe {
65 ffi::gst_vulkan_image_buffer_pool_config_set_encode_caps(
66 config.to_glib_none().0,
67 caps.to_glib_none().0,
68 );
69 }
70 }
71}
72
73unsafe impl Send for VulkanImageBufferPool {}
74unsafe impl Sync for VulkanImageBufferPool {}