vulkan: Update bindings

Implemented manual bindings for "pixel-aspect-ratio" property since
Gst.Fraction generated types mismatch.
This commit is contained in:
Hanna Weiß 2025-07-02 12:04:54 +02:00
parent 7aec1816f9
commit 594e9d0187
No known key found for this signature in database
45 changed files with 581 additions and 281 deletions

View file

@ -142,7 +142,7 @@ trigger:
stage: container-base
variables:
FDO_DISTRIBUTION_PACKAGES: >-
build-essential cmake curl glslc python3-setuptools libglib2.0-dev libxml2-dev
build-essential cmake curl python3-setuptools libglib2.0-dev libxml2-dev
libdrm-dev libegl1-mesa-dev libgl1-mesa-dev libgbm-dev libgles2-mesa-dev
libgl1-mesa-dri libegl-dev libgl-dev libgles-dev libglx-dev
libssl-dev git wget ca-certificates ninja-build python3-pip flex bison

View file

@ -42,7 +42,7 @@ generate = [
"GstVulkan.VulkanOperation",
"GstVulkan.VulkanPhysicalDevice",
"GstVulkan.VulkanQueue",
"GstVulkan.VulkanSwapper",
# "GstVulkan.VulkanSwapper",
"GstVulkan.VulkanTrash",
"GstVulkan.VulkanVideoFilter",
"GstVulkan.VulkanWindow",
@ -93,6 +93,20 @@ name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstVulkan.VulkanDescriptorCache"
status = "generate"
[[object.function]]
name = "new"
ignore = true
[[object]]
name = "GstVulkan.VulkanDescriptorPool"
status = "generate"
[[object.function]]
name = "create"
ignore = true
[[object]]
name = "GstVulkan.VulkanFullScreenQuad"
status = "generate"
@ -104,15 +118,9 @@ status = "generate"
ref_mode = "ref"
[[object]]
name = "GstVulkan.VulkanDescriptorPool"
name = "GstVulkan.VulkanSwapper"
status = "generate"
[[object.function]]
name = "create"
ignore = true
[[object]]
name = "GstVulkan.VulkanDescriptorCache"
status = "generate"
[[object.function]]
name = "new"
ignore = true
[[object.property]]
name = "pixel-aspect-ratio"
# fraction
manual = true

View file

@ -3,6 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
use glib::{bitflags::bitflags, prelude::*, translate::*};
bitflags! {

View file

@ -1,3 +1,3 @@
Generated by gir (https://github.com/gtk-rs/gir @ 5223ce91b97a)
from gir-files (https://github.com/gtk-rs/gir-files @ 6cd7b656acd6)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ d62956d67216+)
Generated by gir (https://github.com/gtk-rs/gir @ 2d0807e9c5bc)
from gir-files (https://github.com/gtk-rs/gir-files @ 6668d0f5551a)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ 2dcaaf8ae3d8+)

View file

@ -3,6 +3,8 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
glib::wrapper! {
#[doc(alias = "GstVulkanBufferMemoryAllocator")]
pub struct VulkanBufferMemoryAllocator(Object<ffi::GstVulkanBufferMemoryAllocator, ffi::GstVulkanBufferMemoryAllocatorClass>) @extends gst::Allocator, gst::Object;

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::VulkanDevice;
use crate::{ffi, VulkanDevice};
use glib::{prelude::*, translate::*};
glib::wrapper! {

View file

@ -3,6 +3,8 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
glib::wrapper! {
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct VulkanCommandBuffer(Boxed<ffi::GstVulkanCommandBuffer>);

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanCommandBuffer, VulkanQueue};
use crate::{ffi, VulkanCommandBuffer, VulkanQueue};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -22,12 +22,7 @@ impl VulkanCommandPool {
unsafe impl Send for VulkanCommandPool {}
unsafe impl Sync for VulkanCommandPool {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanCommandPool>> Sealed for T {}
}
pub trait VulkanCommandPoolExt: IsA<VulkanCommandPool> + sealed::Sealed + 'static {
pub trait VulkanCommandPoolExt: IsA<VulkanCommandPool> + 'static {
#[doc(alias = "gst_vulkan_command_pool_create")]
fn create(&self) -> Result<VulkanCommandBuffer, glib::Error> {
unsafe {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanDescriptorSet, VulkanHandlePool};
use crate::{ffi, VulkanDescriptorSet, VulkanHandlePool};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -22,12 +22,7 @@ impl VulkanDescriptorCache {
unsafe impl Send for VulkanDescriptorCache {}
unsafe impl Sync for VulkanDescriptorCache {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanDescriptorCache>> Sealed for T {}
}
pub trait VulkanDescriptorCacheExt: IsA<VulkanDescriptorCache> + sealed::Sealed + 'static {
pub trait VulkanDescriptorCacheExt: IsA<VulkanDescriptorCache> + 'static {
#[doc(alias = "gst_vulkan_descriptor_cache_acquire")]
fn acquire(&self) -> Result<VulkanDescriptorSet, glib::Error> {
unsafe {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::VulkanDevice;
use crate::{ffi, VulkanDevice};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -27,12 +27,7 @@ impl VulkanDescriptorPool {
unsafe impl Send for VulkanDescriptorPool {}
unsafe impl Sync for VulkanDescriptorPool {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanDescriptorPool>> Sealed for T {}
}
pub trait VulkanDescriptorPoolExt: IsA<VulkanDescriptorPool> + sealed::Sealed + 'static {
pub trait VulkanDescriptorPoolExt: IsA<VulkanDescriptorPool> + 'static {
#[doc(alias = "gst_vulkan_descriptor_pool_get_device")]
#[doc(alias = "get_device")]
fn device(&self) -> VulkanDevice {

View file

@ -3,6 +3,8 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
glib::wrapper! {
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct VulkanDescriptorSet(Boxed<ffi::GstVulkanDescriptorSet>);

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanFence, VulkanInstance, VulkanPhysicalDevice, VulkanQueue};
use crate::{ffi, VulkanFence, VulkanInstance, VulkanPhysicalDevice, VulkanQueue};
use glib::{
prelude::*,
signal::{connect_raw, SignalHandlerId},
@ -70,12 +70,7 @@ impl VulkanDevice {
unsafe impl Send for VulkanDevice {}
unsafe impl Sync for VulkanDevice {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanDevice>> Sealed for T {}
}
pub trait VulkanDeviceExt: IsA<VulkanDevice> + sealed::Sealed + 'static {
pub trait VulkanDeviceExt: IsA<VulkanDevice> + 'static {
#[doc(alias = "gst_vulkan_device_create_fence")]
fn create_fence(&self) -> Result<Option<VulkanFence>, glib::Error> {
unsafe {
@ -121,36 +116,25 @@ pub trait VulkanDeviceExt: IsA<VulkanDevice> + sealed::Sealed + 'static {
}
#[doc(alias = "gst_vulkan_device_foreach_queue")]
fn foreach_queue(&self, func: Option<&mut dyn (FnMut(&VulkanDevice, &VulkanQueue) -> bool)>) {
let func_data: Option<&mut dyn (FnMut(&VulkanDevice, &VulkanQueue) -> bool)> = func;
unsafe extern "C" fn func_func(
fn foreach_queue<P: FnMut(&VulkanDevice, &VulkanQueue) -> bool>(&self, func: P) {
let mut func_data: P = func;
unsafe extern "C" fn func_func<P: FnMut(&VulkanDevice, &VulkanQueue) -> bool>(
device: *mut ffi::GstVulkanDevice,
queue: *mut ffi::GstVulkanQueue,
user_data: glib::ffi::gpointer,
) -> glib::ffi::gboolean {
let device = from_glib_borrow(device);
let queue = from_glib_borrow(queue);
let callback =
user_data as *mut Option<&mut dyn (FnMut(&VulkanDevice, &VulkanQueue) -> bool)>;
if let Some(ref mut callback) = *callback {
callback(&device, &queue)
} else {
panic!("cannot get closure...")
}
.into_glib()
let callback = user_data as *mut P;
(*callback)(&device, &queue).into_glib()
}
let func = if func_data.is_some() {
Some(func_func as _)
} else {
None
};
let super_callback0: &Option<&mut dyn (FnMut(&VulkanDevice, &VulkanQueue) -> bool)> =
&func_data;
let func = Some(func_func::<P> as _);
let super_callback0: &mut P = &mut func_data;
unsafe {
ffi::gst_vulkan_device_foreach_queue(
self.as_ref().to_glib_none().0,
func,
super_callback0 as *const _ as *mut _,
super_callback0 as *mut _ as *mut _,
);
}
}
@ -167,6 +151,7 @@ pub trait VulkanDeviceExt: IsA<VulkanDevice> + sealed::Sealed + 'static {
//#[doc(alias = "gst_vulkan_device_get_physical_device")]
//#[doc(alias = "get_physical_device")]
//#[doc(alias = "physical-device")]
//fn physical_device(&self) -> /*Ignored*/vulkan::PhysicalDevice {
// unsafe { TODO: call ffi:gst_vulkan_device_get_physical_device() }
//}
@ -233,7 +218,7 @@ pub trait VulkanDeviceExt: IsA<VulkanDevice> + sealed::Sealed + 'static {
//#[cfg(feature = "v1_24")]
//#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
//#[doc(alias = "gst_vulkan_device_select_queue")]
//fn select_queue(&self, expected_flags: /*Ignored*/&vulkan::QueueFlagBits) -> VulkanQueue {
//fn select_queue(&self, expected_flags: /*Ignored*/&vulkan::QueueFlagBits) -> Option<VulkanQueue> {
// unsafe { TODO: call ffi:gst_vulkan_device_select_queue() }
//}
@ -257,8 +242,8 @@ pub trait VulkanDeviceExt: IsA<VulkanDevice> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::instance\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"notify::instance".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
notify_instance_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanDisplayType, VulkanInstance, VulkanWindow};
use crate::{ffi, VulkanDisplayType, VulkanInstance, VulkanWindow};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -78,12 +78,7 @@ impl VulkanDisplay {
unsafe impl Send for VulkanDisplay {}
unsafe impl Sync for VulkanDisplay {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanDisplay>> Sealed for T {}
}
pub trait VulkanDisplayExt: IsA<VulkanDisplay> + sealed::Sealed + 'static {
pub trait VulkanDisplayExt: IsA<VulkanDisplay> + 'static {
#[doc(alias = "gst_vulkan_display_create_window")]
fn create_window(&self) -> Option<VulkanWindow> {
unsafe {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::VulkanDevice;
use crate::{ffi, VulkanDevice};
use glib::{prelude::*, translate::*};
glib::wrapper! {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanCommandBuffer, VulkanFence, VulkanHandle, VulkanQueue};
use crate::{ffi, VulkanCommandBuffer, VulkanFence, VulkanHandle, VulkanQueue};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -29,12 +29,7 @@ impl VulkanFullScreenQuad {
}
}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanFullScreenQuad>> Sealed for T {}
}
pub trait VulkanFullScreenQuadExt: IsA<VulkanFullScreenQuad> + sealed::Sealed + 'static {
pub trait VulkanFullScreenQuadExt: IsA<VulkanFullScreenQuad> + 'static {
#[doc(alias = "gst_vulkan_full_screen_quad_draw")]
fn draw(&self) -> Result<(), glib::Error> {
unsafe {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanDevice, VulkanDisplay, VulkanInstance};
use crate::{ffi, VulkanDevice, VulkanDisplay, VulkanInstance};
use glib::{prelude::*, translate::*};
glib::wrapper! {

View file

@ -3,6 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
use glib::prelude::*;
glib::wrapper! {
@ -21,12 +22,7 @@ impl VulkanHandlePool {
unsafe impl Send for VulkanHandlePool {}
unsafe impl Sync for VulkanHandlePool {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanHandlePool>> Sealed for T {}
}
pub trait VulkanHandlePoolExt: IsA<VulkanHandlePool> + sealed::Sealed + 'static {
pub trait VulkanHandlePoolExt: IsA<VulkanHandlePool> + 'static {
//#[doc(alias = "gst_vulkan_handle_pool_acquire")]
//fn acquire(&self) -> Result</*Unimplemented*/Option<Basic: Pointer>, glib::Error> {
// unsafe { TODO: call ffi:gst_vulkan_handle_pool_acquire() }

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::VulkanDevice;
use crate::{ffi, VulkanDevice};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -29,6 +29,13 @@ impl VulkanImageBufferPool {
}
}
//#[cfg(feature = "v1_26")]
//#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
//#[doc(alias = "gst_vulkan_image_buffer_pool_config_get_allocation_params")]
//pub fn config_get_allocation_params(config: &gst::Structure, usage: /*Ignored*/vulkan::ImageUsageFlags, mem_props: /*Ignored*/vulkan::MemoryPropertyFlags, initial_layout: /*Ignored*/vulkan::ImageLayout) -> u64 {
// unsafe { TODO: call ffi:gst_vulkan_image_buffer_pool_config_get_allocation_params() }
//}
//#[cfg(feature = "v1_24")]
//#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
//#[doc(alias = "gst_vulkan_image_buffer_pool_config_set_allocation_params")]

View file

@ -3,6 +3,8 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
glib::wrapper! {
#[doc(alias = "GstVulkanImageMemoryAllocator")]
pub struct VulkanImageMemoryAllocator(Object<ffi::GstVulkanImageMemoryAllocator, ffi::GstVulkanImageMemoryAllocatorClass>) @extends gst::Allocator, gst::Object;

View file

@ -3,6 +3,8 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
glib::wrapper! {
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct VulkanImageView(Boxed<ffi::GstVulkanImageView>);

View file

@ -3,7 +3,10 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::VulkanDevice;
use crate::{ffi, VulkanDevice};
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
use glib::object::ObjectType as _;
use glib::{
prelude::*,
signal::{connect_raw, SignalHandlerId},
@ -60,12 +63,21 @@ impl Default for VulkanInstance {
unsafe impl Send for VulkanInstance {}
unsafe impl Sync for VulkanInstance {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanInstance>> Sealed for T {}
}
pub trait VulkanInstanceExt: IsA<VulkanInstance> + 'static {
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
#[doc(alias = "gst_vulkan_instance_check_api_version")]
fn check_api_version(&self, major: u32, minor: u32, patch: u32) -> bool {
unsafe {
from_glib(ffi::gst_vulkan_instance_check_api_version(
self.as_ref().to_glib_none().0,
major,
minor,
patch,
))
}
}
pub trait VulkanInstanceExt: IsA<VulkanInstance> + sealed::Sealed + 'static {
#[doc(alias = "gst_vulkan_instance_check_version")]
fn check_version(&self, major: u32, minor: u32, patch: u32) -> bool {
unsafe {
@ -92,6 +104,25 @@ pub trait VulkanInstanceExt: IsA<VulkanInstance> + sealed::Sealed + 'static {
}
}
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
#[doc(alias = "gst_vulkan_instance_create_device_with_index")]
fn create_device_with_index(&self, device_index: u32) -> Result<VulkanDevice, glib::Error> {
unsafe {
let mut error = std::ptr::null_mut();
let ret = ffi::gst_vulkan_instance_create_device_with_index(
self.as_ref().to_glib_none().0,
device_index,
&mut error,
);
if error.is_null() {
Ok(from_glib_full(ret))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "gst_vulkan_instance_disable_extension")]
fn disable_extension(&self, name: &str) -> bool {
unsafe {
@ -137,6 +168,29 @@ pub trait VulkanInstanceExt: IsA<VulkanInstance> + sealed::Sealed + 'static {
}
}
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
#[doc(alias = "gst_vulkan_instance_get_api_version")]
#[doc(alias = "get_api_version")]
fn api_version(&self) -> (u32, u32, u32) {
unsafe {
let mut major = std::mem::MaybeUninit::uninit();
let mut minor = std::mem::MaybeUninit::uninit();
let mut patch = std::mem::MaybeUninit::uninit();
ffi::gst_vulkan_instance_get_api_version(
self.as_ref().to_glib_none().0,
major.as_mut_ptr(),
minor.as_mut_ptr(),
patch.as_mut_ptr(),
);
(
major.assume_init(),
minor.assume_init(),
patch.assume_init(),
)
}
}
#[doc(alias = "gst_vulkan_instance_get_extension_info")]
#[doc(alias = "get_extension_info")]
fn extension_info(&self, name: &str) -> Option<u32> {
@ -262,27 +316,34 @@ pub trait VulkanInstanceExt: IsA<VulkanInstance> + sealed::Sealed + 'static {
ObjectExt::set_property(self.as_ref(), "requested-api-minor", requested_api_minor)
}
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
#[doc(alias = "create-device")]
fn connect_create_device<F: Fn(&Self) -> VulkanDevice + Send + Sync + 'static>(
fn connect_create_device<F: Fn(&Self, u32) -> VulkanDevice + Send + Sync + 'static>(
&self,
f: F,
) -> SignalHandlerId {
unsafe extern "C" fn create_device_trampoline<
P: IsA<VulkanInstance>,
F: Fn(&P) -> VulkanDevice + Send + Sync + 'static,
F: Fn(&P, u32) -> VulkanDevice + Send + Sync + 'static,
>(
this: *mut ffi::GstVulkanInstance,
device_index: std::ffi::c_uint,
f: glib::ffi::gpointer,
) -> *mut ffi::GstVulkanDevice {
let f: &F = &*(f as *const F);
f(VulkanInstance::from_glib_borrow(this).unsafe_cast_ref()).to_glib_full()
f(
VulkanInstance::from_glib_borrow(this).unsafe_cast_ref(),
device_index,
)
.to_glib_full()
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"create-device\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"create-device".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
create_device_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
@ -310,8 +371,8 @@ pub trait VulkanInstanceExt: IsA<VulkanInstance> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::requested-api-major\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"notify::requested-api-major".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
notify_requested_api_major_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
@ -339,8 +400,8 @@ pub trait VulkanInstanceExt: IsA<VulkanInstance> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::requested-api-minor\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"notify::requested-api-minor".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
notify_requested_api_minor_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::VulkanCommandPool;
use crate::{ffi, VulkanCommandPool};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -32,12 +32,7 @@ impl VulkanOperation {
unsafe impl Send for VulkanOperation {}
unsafe impl Sync for VulkanOperation {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanOperation>> Sealed for T {}
}
pub trait VulkanOperationExt: IsA<VulkanOperation> + sealed::Sealed + 'static {
pub trait VulkanOperationExt: IsA<VulkanOperation> + 'static {
#[doc(alias = "gst_vulkan_operation_add_dependency_frame")]
fn add_dependency_frame(
&self,
@ -61,7 +56,7 @@ pub trait VulkanOperationExt: IsA<VulkanOperation> + sealed::Sealed + 'static {
//}
//#[doc(alias = "gst_vulkan_operation_add_frame_barrier")]
//fn add_frame_barrier(&self, frame: &gst::Buffer, dst_stage: u64, new_access: u64, new_layout: /*Ignored*/&vulkan::ImageLayout, new_queue: Option<&impl IsA<VulkanQueue>>) -> bool {
//fn add_frame_barrier(&self, frame: &gst::Buffer, src_stage: u64, dst_stage: u64, new_access: u64, new_layout: /*Ignored*/&vulkan::ImageLayout, new_queue: Option<&impl IsA<VulkanQueue>>) -> bool {
// unsafe { TODO: call ffi:gst_vulkan_operation_add_frame_barrier() }
//}
@ -79,15 +74,12 @@ pub trait VulkanOperationExt: IsA<VulkanOperation> + sealed::Sealed + 'static {
}
}
#[doc(alias = "gst_vulkan_operation_begin_query")]
fn begin_query(&self, id: u32) -> bool {
unsafe {
from_glib(ffi::gst_vulkan_operation_begin_query(
self.as_ref().to_glib_none().0,
id,
))
}
}
//#[cfg(feature = "v1_26")]
//#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
//#[doc(alias = "gst_vulkan_operation_begin_query")]
//fn begin_query(&self, base: /*Ignored*/&mut vulkan::BaseInStructure, id: u32) -> bool {
// unsafe { TODO: call ffi:gst_vulkan_operation_begin_query() }
//}
#[doc(alias = "gst_vulkan_operation_discard_dependencies")]
fn discard_dependencies(&self) {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::VulkanInstance;
use crate::{ffi, VulkanInstance};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -38,12 +38,44 @@ impl VulkanPhysicalDevice {
unsafe impl Send for VulkanPhysicalDevice {}
unsafe impl Sync for VulkanPhysicalDevice {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanPhysicalDevice>> Sealed for T {}
}
pub trait VulkanPhysicalDeviceExt: IsA<VulkanPhysicalDevice> + 'static {
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
#[doc(alias = "gst_vulkan_physical_device_check_api_version")]
fn check_api_version(&self, major: u32, minor: u32, patch: u32) -> bool {
unsafe {
from_glib(ffi::gst_vulkan_physical_device_check_api_version(
self.as_ref().to_glib_none().0,
major,
minor,
patch,
))
}
}
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
#[doc(alias = "gst_vulkan_physical_device_get_api_version")]
#[doc(alias = "get_api_version")]
fn api_version(&self) -> (u32, u32, u32) {
unsafe {
let mut major = std::mem::MaybeUninit::uninit();
let mut minor = std::mem::MaybeUninit::uninit();
let mut patch = std::mem::MaybeUninit::uninit();
ffi::gst_vulkan_physical_device_get_api_version(
self.as_ref().to_glib_none().0,
major.as_mut_ptr(),
minor.as_mut_ptr(),
patch.as_mut_ptr(),
);
(
major.assume_init(),
minor.assume_init(),
patch.assume_init(),
)
}
}
pub trait VulkanPhysicalDeviceExt: IsA<VulkanPhysicalDevice> + sealed::Sealed + 'static {
#[doc(alias = "gst_vulkan_physical_device_get_extension_info")]
#[doc(alias = "get_extension_info")]
fn extension_info(&self, name: &str) -> Option<u32> {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanCommandPool, VulkanDevice};
use crate::{ffi, VulkanCommandPool, VulkanDevice};
use glib::{prelude::*, translate::*};
glib::wrapper! {
@ -48,12 +48,7 @@ impl VulkanQueue {
unsafe impl Send for VulkanQueue {}
unsafe impl Sync for VulkanQueue {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanQueue>> Sealed for T {}
}
pub trait VulkanQueueExt: IsA<VulkanQueue> + sealed::Sealed + 'static {
pub trait VulkanQueueExt: IsA<VulkanQueue> + 'static {
#[doc(alias = "gst_vulkan_queue_create_command_pool")]
fn create_command_pool(&self) -> Result<VulkanCommandPool, glib::Error> {
unsafe {

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanDevice, VulkanQueue, VulkanWindow};
use crate::{ffi, VulkanDevice, VulkanQueue, VulkanWindow};
use glib::{
prelude::*,
signal::{connect_raw, SignalHandlerId},
@ -38,12 +38,7 @@ impl VulkanSwapper {
unsafe impl Send for VulkanSwapper {}
unsafe impl Sync for VulkanSwapper {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanSwapper>> Sealed for T {}
}
pub trait VulkanSwapperExt: IsA<VulkanSwapper> + sealed::Sealed + 'static {
pub trait VulkanSwapperExt: IsA<VulkanSwapper> + 'static {
#[doc(alias = "gst_vulkan_swapper_choose_queue")]
fn choose_queue(
&self,
@ -134,16 +129,6 @@ pub trait VulkanSwapperExt: IsA<VulkanSwapper> + sealed::Sealed + 'static {
ObjectExt::set_property(self.as_ref(), "force-aspect-ratio", force_aspect_ratio)
}
#[doc(alias = "pixel-aspect-ratio")]
fn pixel_aspect_ratio(&self) -> Option<gst::Fraction> {
ObjectExt::property(self.as_ref(), "pixel-aspect-ratio")
}
#[doc(alias = "pixel-aspect-ratio")]
fn set_pixel_aspect_ratio(&self, pixel_aspect_ratio: Option<&gst::Fraction>) {
ObjectExt::set_property(self.as_ref(), "pixel-aspect-ratio", pixel_aspect_ratio)
}
#[doc(alias = "force-aspect-ratio")]
fn connect_force_aspect_ratio_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
@ -164,43 +149,14 @@ pub trait VulkanSwapperExt: IsA<VulkanSwapper> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::force-aspect-ratio\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"notify::force-aspect-ratio".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
notify_force_aspect_ratio_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
#[doc(alias = "pixel-aspect-ratio")]
fn connect_pixel_aspect_ratio_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F,
) -> SignalHandlerId {
unsafe extern "C" fn notify_pixel_aspect_ratio_trampoline<
P: IsA<VulkanSwapper>,
F: Fn(&P) + Send + Sync + 'static,
>(
this: *mut ffi::GstVulkanSwapper,
_param_spec: glib::ffi::gpointer,
f: glib::ffi::gpointer,
) {
let f: &F = &*(f as *const F);
f(VulkanSwapper::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::pixel-aspect-ratio\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
notify_pixel_aspect_ratio_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
}
impl<O: IsA<VulkanSwapper>> VulkanSwapperExt for O {}

View file

@ -3,7 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanDevice, VulkanFence};
use crate::{ffi, VulkanDevice, VulkanFence};
use glib::translate::*;
use std::boxed::Box as Box_;
@ -20,29 +20,22 @@ glib::wrapper! {
impl VulkanTrash {
#[doc(alias = "gst_vulkan_trash_new")]
pub fn new(
pub fn new<P: FnOnce(&VulkanDevice) + Send + Sync + 'static>(
fence: &mut VulkanFence,
notify: Option<Box_<dyn FnOnce(&VulkanDevice) + 'static>>,
notify: P,
) -> VulkanTrash {
assert_initialized_main_thread!();
let notify_data: Box_<Option<Box_<dyn FnOnce(&VulkanDevice) + 'static>>> =
Box_::new(notify);
unsafe extern "C" fn notify_func(
let notify_data: Box_<P> = Box_::new(notify);
unsafe extern "C" fn notify_func<P: FnOnce(&VulkanDevice) + Send + Sync + 'static>(
device: *mut ffi::GstVulkanDevice,
user_data: glib::ffi::gpointer,
) {
let device = from_glib_borrow(device);
let callback =
Box_::from_raw(user_data as *mut Option<Box_<dyn FnOnce(&VulkanDevice) + 'static>>);
let callback = (*callback).expect("cannot get closure...");
callback(&device)
let callback = Box_::from_raw(user_data as *mut P);
(*callback)(&device)
}
let notify = if notify_data.is_some() {
Some(notify_func as _)
} else {
None
};
let super_callback0: Box_<Option<Box_<dyn FnOnce(&VulkanDevice) + 'static>>> = notify_data;
let notify = Some(notify_func::<P> as _);
let super_callback0: Box_<P> = notify_data;
unsafe {
from_glib_full(ffi::gst_vulkan_trash_new(
fence.to_glib_none_mut().0,

View file

@ -3,6 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
use crate::{VulkanDevice, VulkanInstance, VulkanQueue};
@ -27,12 +28,7 @@ impl VulkanVideoFilter {
unsafe impl Send for VulkanVideoFilter {}
unsafe impl Sync for VulkanVideoFilter {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanVideoFilter>> Sealed for T {}
}
pub trait VulkanVideoFilterExt: IsA<VulkanVideoFilter> + sealed::Sealed + 'static {
pub trait VulkanVideoFilterExt: IsA<VulkanVideoFilter> + 'static {
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
#[doc(alias = "gst_vulkan_video_filter_get_device")]

View file

@ -3,8 +3,9 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::{VulkanDevice, VulkanDisplay};
use crate::{ffi, VulkanDevice, VulkanDisplay};
use glib::{
object::ObjectType as _,
prelude::*,
signal::{connect_raw, SignalHandlerId},
translate::*,
@ -37,12 +38,7 @@ impl VulkanWindow {
unsafe impl Send for VulkanWindow {}
unsafe impl Sync for VulkanWindow {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanWindow>> Sealed for T {}
}
pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
pub trait VulkanWindowExt: IsA<VulkanWindow> + 'static {
#[doc(alias = "gst_vulkan_window_close")]
fn close(&self) {
unsafe {
@ -180,8 +176,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"close\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"close".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
close_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
@ -205,8 +201,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"draw\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"draw".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
draw_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
@ -224,8 +220,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
F: Fn(&P, &str, &str) + Send + Sync + 'static,
>(
this: *mut ffi::GstVulkanWindow,
id: *mut libc::c_char,
key: *mut libc::c_char,
id: *mut std::ffi::c_char,
key: *mut std::ffi::c_char,
f: glib::ffi::gpointer,
) {
let f: &F = &*(f as *const F);
@ -239,8 +235,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"key-event\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"key-event".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
key_event_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
@ -258,10 +254,10 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
F: Fn(&P, &str, i32, f64, f64) + Send + Sync + 'static,
>(
this: *mut ffi::GstVulkanWindow,
id: *mut libc::c_char,
button: libc::c_int,
x: libc::c_double,
y: libc::c_double,
id: *mut std::ffi::c_char,
button: std::ffi::c_int,
x: std::ffi::c_double,
y: std::ffi::c_double,
f: glib::ffi::gpointer,
) {
let f: &F = &*(f as *const F);
@ -277,8 +273,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"mouse-event\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"mouse-event".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
mouse_event_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
@ -296,8 +292,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
F: Fn(&P, u32, u32) + Send + Sync + 'static,
>(
this: *mut ffi::GstVulkanWindow,
object: libc::c_uint,
p0: libc::c_uint,
object: std::ffi::c_uint,
p0: std::ffi::c_uint,
f: glib::ffi::gpointer,
) {
let f: &F = &*(f as *const F);
@ -311,8 +307,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"resize\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"resize".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
resize_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
@ -340,8 +336,8 @@ pub trait VulkanWindowExt: IsA<VulkanWindow> + sealed::Sealed + 'static {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::display\0".as_ptr() as *const _,
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
c"notify::display".as_ptr() as *const _,
Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
notify_display_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),

View file

@ -27,6 +27,7 @@ pub use crate::auto::*;
mod vulkan_device;
mod vulkan_full_screen_quad;
mod vulkan_swapper;
// Re-export all the traits in a prelude module, so that applications
// can always "use gst_vulkan::prelude::*" without getting conflicts
@ -36,6 +37,7 @@ pub mod prelude {
pub use super::vulkan_device::VulkanDeviceExtManual;
pub use super::vulkan_full_screen_quad::VulkanFullScreenQuadExtManual;
pub use super::vulkan_swapper::VulkanSwapperExtManual;
pub use crate::auto::traits::*;
}

View file

@ -9,10 +9,7 @@ mod sealed {
}
pub trait VulkanDeviceExtManual: sealed::Sealed + IsA<VulkanDevice> + 'static {
fn create_shader<const N: usize>(
&self,
code: [u8; N],
) -> Result<crate::VulkanHandle, glib::Error> {
fn create_shader(&self, code: &[u8]) -> Result<crate::VulkanHandle, glib::Error> {
unsafe {
let mut error = std::ptr::null_mut();
let shader = crate::ffi::gst_vulkan_create_shader(

View file

@ -0,0 +1,21 @@
use crate::VulkanSwapper;
use glib::prelude::*;
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::VulkanSwapper>> Sealed for T {}
}
pub trait VulkanSwapperExtManual: sealed::Sealed + IsA<VulkanSwapper> + 'static {
#[doc(alias = "pixel-aspect-ratio")]
fn is_force_aspect_ratio(&self) -> gst::Fraction {
ObjectExt::property(self.as_ref(), "pixel-aspect-ratio")
}
#[doc(alias = "pixel-aspect-ratio")]
fn set_force_aspect_ratio(&self, pixel_aspect_ratio: gst::Fraction) {
ObjectExt::set_property(self.as_ref(), "pixel-aspect-ratio", pixel_aspect_ratio)
}
}
impl<O: IsA<VulkanSwapper>> VulkanSwapperExtManual for O {}

View file

@ -1,5 +1,5 @@
[build-dependencies]
system-deps = "6"
system-deps = "7"
[dependencies]
libc = "0.2"

View file

@ -1,3 +1,3 @@
Generated by gir (https://github.com/gtk-rs/gir @ 5223ce91b97a)
from gir-files (https://github.com/gtk-rs/gir-files @ 6cd7b656acd6)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ d62956d67216+)
Generated by gir (https://github.com/gtk-rs/gir @ 2d0807e9c5bc)
from gir-files (https://github.com/gtk-rs/gir-files @ 6668d0f5551a)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ 2dcaaf8ae3d8+)

View file

@ -22,14 +22,15 @@ mod manual;
pub use manual::*;
#[allow(unused_imports)]
use libc::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE,
};
#[cfg(unix)]
#[allow(unused_imports)]
use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
#[allow(unused_imports)]
use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
#[allow(unused_imports)]
use std::ffi::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
};
#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};
@ -118,6 +119,81 @@ pub const GST_VULKAN_FORMAT_FLAG_ALPHA: GstVulkanFormatFlags = 4;
pub const GST_VULKAN_FORMAT_FLAG_LE: GstVulkanFormatFlags = 8;
pub const GST_VULKAN_FORMAT_FLAG_COMPLEX: GstVulkanFormatFlags = 16;
// Unions
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoCapabilities_decoder_codec {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstVulkanVideoCapabilities_decoder_codec {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!(
"GstVulkanVideoCapabilities_decoder_codec @ {self:p}"
))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoCapabilities_encoder_codec {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstVulkanVideoCapabilities_encoder_codec {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!(
"GstVulkanVideoCapabilities_encoder_codec @ {self:p}"
))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoCapabilities_u1 {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstVulkanVideoCapabilities_u1 {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanVideoCapabilities_u1 @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoProfile_codec {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstVulkanVideoProfile_codec {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanVideoProfile_codec @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoProfile_usage {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstVulkanVideoProfile_usage {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanVideoProfile_usage @ {self:p}"))
.finish()
}
}
// Callbacks
pub type GstVulkanDeviceForEachQueueFunc =
Option<unsafe extern "C" fn(*mut GstVulkanDevice, *mut GstVulkanQueue, gpointer) -> gboolean>;
@ -134,6 +210,7 @@ pub type GstVulkanTrashNotify = Option<unsafe extern "C" fn(*mut GstVulkanDevice
// Records
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanBarrierBufferInfo {
_truncated_record_marker: c_void,
// /*Ignored*/field parent has incomplete type
@ -147,6 +224,7 @@ impl ::std::fmt::Debug for GstVulkanBarrierBufferInfo {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanBarrierImageInfo {
_truncated_record_marker: c_void,
// /*Ignored*/field parent has incomplete type
@ -160,6 +238,7 @@ impl ::std::fmt::Debug for GstVulkanBarrierImageInfo {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanBarrierMemoryInfo {
pub type_: GstVulkanBarrierType,
pub flags: GstVulkanBarrierFlags,
@ -183,6 +262,7 @@ impl ::std::fmt::Debug for GstVulkanBarrierMemoryInfo {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanBufferMemory {
pub parent: gst::GstMemory,
pub device: *mut GstVulkanDevice,
@ -230,6 +310,7 @@ impl ::std::fmt::Debug for GstVulkanBufferPoolClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanBufferPoolPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -238,6 +319,7 @@ pub struct _GstVulkanBufferPoolPrivate {
pub type GstVulkanBufferPoolPrivate = _GstVulkanBufferPoolPrivate;
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanCommandBuffer {
pub parent: gst::GstMiniObject,
_truncated_record_marker: c_void,
@ -268,6 +350,7 @@ impl ::std::fmt::Debug for GstVulkanCommandPoolClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanCommandPoolPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -291,6 +374,7 @@ impl ::std::fmt::Debug for GstVulkanDescriptorCacheClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanDescriptorCachePrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -314,6 +398,7 @@ impl ::std::fmt::Debug for GstVulkanDescriptorPoolClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanDescriptorPoolPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -322,6 +407,7 @@ pub struct _GstVulkanDescriptorPoolPrivate {
pub type GstVulkanDescriptorPoolPrivate = _GstVulkanDescriptorPoolPrivate;
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanDescriptorSet {
pub parent: gst::GstMiniObject,
_truncated_record_marker: c_void,
@ -352,6 +438,7 @@ impl ::std::fmt::Debug for GstVulkanDeviceClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanDevicePrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -379,6 +466,7 @@ impl ::std::fmt::Debug for GstVulkanDisplayClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanDisplayPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -405,6 +493,7 @@ impl ::std::fmt::Debug for GstVulkanEncodeQueryResult {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanFence {
pub parent: gst::GstMiniObject,
pub device: *mut GstVulkanDevice,
@ -439,6 +528,7 @@ impl ::std::fmt::Debug for GstVulkanFenceCacheClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanFormatInfo {
_truncated_record_marker: c_void,
// /*Ignored*/field format has incomplete type
@ -451,6 +541,22 @@ impl ::std::fmt::Debug for GstVulkanFormatInfo {
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanFormatMap {
pub format: gst_video::GstVideoFormat,
_truncated_record_marker: c_void,
// /*Ignored*/field vkfrmt has incomplete type
}
impl ::std::fmt::Debug for GstVulkanFormatMap {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanFormatMap @ {self:p}"))
.field("format", &self.format)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstVulkanFullScreenQuadClass {
@ -467,6 +573,7 @@ impl ::std::fmt::Debug for GstVulkanFullScreenQuadClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanFullScreenQuadPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -540,6 +647,7 @@ impl ::std::fmt::Debug for GstVulkanImageBufferPoolClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanImageBufferPoolPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -548,6 +656,7 @@ pub struct _GstVulkanImageBufferPoolPrivate {
pub type GstVulkanImageBufferPoolPrivate = _GstVulkanImageBufferPoolPrivate;
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanImageMemory {
pub parent: gst::GstMemory,
pub device: *mut GstVulkanDevice,
@ -580,6 +689,7 @@ impl ::std::fmt::Debug for GstVulkanImageMemoryAllocatorClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanImageView {
pub parent: gst::GstMiniObject,
pub device: *mut GstVulkanDevice,
@ -614,6 +724,7 @@ impl ::std::fmt::Debug for GstVulkanInstanceClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanInstancePrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -622,6 +733,7 @@ pub struct _GstVulkanInstancePrivate {
pub type GstVulkanInstancePrivate = _GstVulkanInstancePrivate;
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanMemory {
pub mem: gst::GstMemory,
pub device: *mut GstVulkanDevice,
@ -669,6 +781,7 @@ impl ::std::fmt::Debug for GstVulkanOperationClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanOperationPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -692,6 +805,7 @@ impl ::std::fmt::Debug for GstVulkanPhysicalDeviceClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanPhysicalDevicePrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -718,19 +832,20 @@ impl ::std::fmt::Debug for GstVulkanQueueClass {
#[repr(C)]
pub struct GstVulkanQueueFamilyOps {
pub video: u32,
pub query: gboolean,
pub query_result_status: gboolean,
}
impl ::std::fmt::Debug for GstVulkanQueueFamilyOps {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanQueueFamilyOps @ {self:p}"))
.field("video", &self.video)
.field("query", &self.query)
.field("query_result_status", &self.query_result_status)
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanQueuePrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -754,6 +869,7 @@ impl ::std::fmt::Debug for GstVulkanSwapperClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanSwapperPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -819,6 +935,48 @@ impl ::std::fmt::Debug for GstVulkanTrashListClass {
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoCapabilities {
_truncated_record_marker: c_void,
// /*Ignored*/field caps has incomplete type
}
impl ::std::fmt::Debug for GstVulkanVideoCapabilities {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanVideoCapabilities @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoCapabilities__decoder {
_truncated_record_marker: c_void,
// /*Ignored*/field caps has incomplete type
}
impl ::std::fmt::Debug for GstVulkanVideoCapabilities__decoder {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanVideoCapabilities__decoder @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoCapabilities__encoder {
_truncated_record_marker: c_void,
// /*Ignored*/field caps has incomplete type
}
impl ::std::fmt::Debug for GstVulkanVideoCapabilities__encoder {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanVideoCapabilities__encoder @ {self:p}"))
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstVulkanVideoFilterClass {
@ -834,6 +992,20 @@ impl ::std::fmt::Debug for GstVulkanVideoFilterClass {
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanVideoProfile {
_truncated_record_marker: c_void,
// /*Ignored*/field profile has incomplete type
}
impl ::std::fmt::Debug for GstVulkanVideoProfile {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstVulkanVideoProfile @ {self:p}"))
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstVulkanWindowClass {
@ -869,6 +1041,7 @@ impl ::std::fmt::Debug for GstVulkanWindowClass {
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstVulkanWindowPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -910,6 +1083,7 @@ impl ::std::fmt::Debug for GstVulkanBufferPool {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanCommandPool {
pub parent: gst::GstObject,
pub queue: *mut GstVulkanQueue,
@ -944,6 +1118,7 @@ impl ::std::fmt::Debug for GstVulkanDescriptorCache {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanDescriptorPool {
pub parent: gst::GstObject,
pub device: *mut GstVulkanDevice,
@ -961,6 +1136,7 @@ impl ::std::fmt::Debug for GstVulkanDescriptorPool {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanDevice {
pub parent: gst::GstObject,
pub instance: *mut GstVulkanInstance,
@ -1111,6 +1287,7 @@ impl ::std::fmt::Debug for GstVulkanImageMemoryAllocator {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanInstance {
pub parent: gst::GstObject,
_truncated_record_marker: c_void,
@ -1158,6 +1335,7 @@ impl ::std::fmt::Debug for GstVulkanOperation {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanPhysicalDevice {
pub parent: gst::GstObject,
pub instance: *mut GstVulkanInstance,
@ -1177,6 +1355,7 @@ impl ::std::fmt::Debug for GstVulkanPhysicalDevice {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanQueue {
pub parent: gst::GstObject,
pub device: *mut GstVulkanDevice,
@ -1217,6 +1396,7 @@ impl ::std::fmt::Debug for GstVulkanSwapper {
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanTrashFenceList {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -1288,7 +1468,6 @@ impl ::std::fmt::Debug for GstVulkanWindow {
}
}
#[link(name = "gstvulkan-1.0")]
extern "C" {
//=========================================================================
@ -1362,7 +1541,7 @@ extern "C" {
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_buffer_memory_alloc_with_buffer_info(
device: *mut GstVulkanDevice,
buffer_info: *mut vulkan::VkBufferCreateInfo,
buffer_info: *const vulkan::VkBufferCreateInfo,
mem_prop_flags: vulkan::VkMemoryPropertyFlags,
) -> *mut gst::GstMemory;
pub fn gst_vulkan_buffer_memory_init_once();
@ -1533,7 +1712,7 @@ extern "C" {
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_memory_find_memory_type_index_with_requirements(
device: *mut GstVulkanDevice,
req: *mut vulkan::VkMemoryRequirements,
req: *const vulkan::VkMemoryRequirements,
properties: vulkan::VkMemoryPropertyFlags,
type_index: *mut u32,
) -> gboolean;
@ -1562,6 +1741,34 @@ extern "C" {
pub fn gst_vulkan_trash_mini_object_unref(device: *mut GstVulkanDevice, user_data: gpointer);
pub fn gst_vulkan_trash_object_unref(device: *mut GstVulkanDevice, user_data: gpointer);
//=========================================================================
// GstVulkanVideoProfile
//=========================================================================
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_video_profile_is_equal(
a: *const GstVulkanVideoProfile,
b: *const GstVulkanVideoProfile,
) -> gboolean;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_video_profile_is_valid(
profile: *mut GstVulkanVideoProfile,
codec: c_uint,
) -> gboolean;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_video_profile_to_caps(
profile: *const GstVulkanVideoProfile,
) -> *mut gst::GstCaps;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_video_profile_from_caps(
profile: *mut GstVulkanVideoProfile,
caps: *mut gst::GstCaps,
video_operation: GstVulkanVideoOperation,
) -> gboolean;
//=========================================================================
// GstVulkanBufferMemoryAllocator
//=========================================================================
@ -1870,6 +2077,15 @@ extern "C" {
pub fn gst_vulkan_image_buffer_pool_new(
device: *mut GstVulkanDevice,
) -> *mut gst::GstBufferPool;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_image_buffer_pool_config_get_allocation_params(
config: *mut gst::GstStructure,
usage: *mut vulkan::VkImageUsageFlags,
mem_props: *mut vulkan::VkMemoryPropertyFlags,
initial_layout: *mut vulkan::VkImageLayout,
initial_access: *mut u64,
);
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_image_buffer_pool_config_set_allocation_params(
@ -1911,6 +2127,14 @@ extern "C" {
element: *mut gst::GstElement,
instance: *mut *mut GstVulkanInstance,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_instance_check_api_version(
instance: *mut GstVulkanInstance,
major: c_uint,
minor: c_uint,
patch: c_uint,
) -> gboolean;
pub fn gst_vulkan_instance_check_version(
instance: *mut GstVulkanInstance,
major: c_uint,
@ -1921,6 +2145,13 @@ extern "C" {
instance: *mut GstVulkanInstance,
error: *mut *mut glib::GError,
) -> *mut GstVulkanDevice;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_instance_create_device_with_index(
instance: *mut GstVulkanInstance,
device_index: c_uint,
error: *mut *mut glib::GError,
) -> *mut GstVulkanDevice;
pub fn gst_vulkan_instance_disable_extension(
instance: *mut GstVulkanInstance,
name: *const c_char,
@ -1937,6 +2168,14 @@ extern "C" {
instance: *mut GstVulkanInstance,
error: *mut *mut glib::GError,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_instance_get_api_version(
instance: *mut GstVulkanInstance,
major: *mut c_uint,
minor: *mut c_uint,
patch: *mut c_uint,
);
pub fn gst_vulkan_instance_get_extension_info(
instance: *mut GstVulkanInstance,
name: *const c_char,
@ -2006,6 +2245,7 @@ extern "C" {
pub fn gst_vulkan_operation_add_frame_barrier(
self_: *mut GstVulkanOperation,
frame: *mut gst::GstBuffer,
src_stage: u64,
dst_stage: u64,
new_access: u64,
new_layout: vulkan::VkImageLayout,
@ -2017,9 +2257,13 @@ extern "C" {
self_: *mut GstVulkanOperation,
error: *mut *mut glib::GError,
) -> gboolean;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_operation_begin_query(self_: *mut GstVulkanOperation, id: u32) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_operation_begin_query(
self_: *mut GstVulkanOperation,
base: *mut vulkan::VkBaseInStructure,
id: u32,
) -> gboolean;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_operation_discard_dependencies(self_: *mut GstVulkanOperation);
@ -2095,6 +2339,22 @@ extern "C" {
pub fn gst_vulkan_physical_device_type_to_string(
type_: vulkan::VkPhysicalDeviceType,
) -> *const c_char;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_physical_device_check_api_version(
device: *mut GstVulkanPhysicalDevice,
major: c_uint,
minor: c_uint,
patch: c_uint,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_physical_device_get_api_version(
device: *mut GstVulkanPhysicalDevice,
major: *mut c_uint,
minor: *mut c_uint,
patch: *mut c_uint,
);
pub fn gst_vulkan_physical_device_get_extension_info(
device: *mut GstVulkanPhysicalDevice,
name: *const c_char,
@ -2304,6 +2564,14 @@ extern "C" {
display_ptr: *mut *mut GstVulkanDisplay,
instance_ptr: *mut *mut GstVulkanInstance,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_ensure_element_device(
element: *mut gst::GstElement,
instance: *mut GstVulkanInstance,
device_ptr: *mut *mut GstVulkanDevice,
device_id: c_uint,
) -> gboolean;
pub fn gst_vulkan_format_from_video_info(
v_info: *mut gst_video::GstVideoInfo,
plane: c_uint,
@ -2311,7 +2579,7 @@ extern "C" {
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_format_from_video_info_2(
physical_device: *mut GstVulkanPhysicalDevice,
device: *mut GstVulkanDevice,
info: *mut gst_video::GstVideoInfo,
tiling: vulkan::VkImageTiling,
no_multiplane: gboolean,
@ -2324,6 +2592,11 @@ extern "C" {
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_format_get_aspect(format: vulkan::VkFormat) -> c_uint;
pub fn gst_vulkan_format_get_info(format: vulkan::VkFormat) -> *const GstVulkanFormatInfo;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_vulkan_format_get_map(
format: gst_video::GstVideoFormat,
) -> *const GstVulkanFormatMap;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_format_to_video_format(
@ -2336,7 +2609,7 @@ extern "C" {
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub fn gst_vulkan_get_or_create_image_view_with_info(
image: *mut GstVulkanImageMemory,
create_info: *mut vulkan::VkImageViewCreateInfo,
create_info: *const vulkan::VkImageViewCreateInfo,
) -> *mut GstVulkanImageView;
pub fn gst_vulkan_global_context_query(
element: *mut gst::GstElement,

View file

@ -1,4 +1,5 @@
pub mod vulkan {
pub use ash::vk::BaseInStructure as VkBaseInStructure;
pub use ash::vk::BlendFactor as VkBlendFactor;
pub use ash::vk::BlendOp as VkBlendOp;
pub use ash::vk::Buffer as VkBuffer;

View file

@ -1,3 +1,3 @@
Generated by gir (https://github.com/gtk-rs/gir @ 5223ce91b97a)
from gir-files (https://github.com/gtk-rs/gir-files @ 6cd7b656acd6)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ d62956d67216+)
Generated by gir (https://github.com/gtk-rs/gir @ 2d0807e9c5bc)
from gir-files (https://github.com/gtk-rs/gir-files @ 6668d0f5551a)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ 2dcaaf8ae3d8+)

View file

@ -3,6 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
use glib::translate::*;
glib::wrapper! {

View file

@ -60,7 +60,7 @@ workspace = true
workspace = true
[build-dependencies]
system-deps = "6"
system-deps = "7"
[dev-dependencies]
shell-words = "1.0.0"

View file

@ -1,3 +1,3 @@
Generated by gir (https://github.com/gtk-rs/gir @ 5223ce91b97a)
from gir-files (https://github.com/gtk-rs/gir-files @ 6cd7b656acd6)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ d62956d67216+)
Generated by gir (https://github.com/gtk-rs/gir @ 2d0807e9c5bc)
from gir-files (https://github.com/gtk-rs/gir-files @ 6668d0f5551a)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ 2dcaaf8ae3d8+)

View file

@ -15,14 +15,15 @@
use glib_sys as glib;
use gstreamer_vulkan_sys as gst_vulkan;
#[allow(unused_imports)]
use libc::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE,
};
#[cfg(unix)]
#[allow(unused_imports)]
use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
#[allow(unused_imports)]
use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
#[allow(unused_imports)]
use std::ffi::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
};
#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};
@ -68,7 +69,6 @@ impl ::std::fmt::Debug for GstVulkanDisplayWayland {
}
}
#[link(name = "gstvulkan-1.0")]
extern "C" {
//=========================================================================

View file

@ -1,3 +1,3 @@
Generated by gir (https://github.com/gtk-rs/gir @ 5223ce91b97a)
from gir-files (https://github.com/gtk-rs/gir-files @ 6cd7b656acd6)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ d62956d67216+)
Generated by gir (https://github.com/gtk-rs/gir @ 2d0807e9c5bc)
from gir-files (https://github.com/gtk-rs/gir-files @ 6668d0f5551a)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ 2dcaaf8ae3d8+)

View file

@ -3,6 +3,7 @@
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT
use crate::ffi;
use glib::translate::*;
glib::wrapper! {

View file

@ -64,7 +64,7 @@ workspace = true
workspace = true
[build-dependencies]
system-deps = "6"
system-deps = "7"
[dev-dependencies]
shell-words = "1.0.0"

View file

@ -1,3 +1,3 @@
Generated by gir (https://github.com/gtk-rs/gir @ 5223ce91b97a)
from gir-files (https://github.com/gtk-rs/gir-files @ 6cd7b656acd6)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ d62956d67216+)
Generated by gir (https://github.com/gtk-rs/gir @ 2d0807e9c5bc)
from gir-files (https://github.com/gtk-rs/gir-files @ 6668d0f5551a)
from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ 2dcaaf8ae3d8+)

View file

@ -15,14 +15,15 @@
use glib_sys as glib;
use gstreamer_vulkan_sys as gst_vulkan;
#[allow(unused_imports)]
use libc::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE,
};
#[cfg(unix)]
#[allow(unused_imports)]
use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
#[allow(unused_imports)]
use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
#[allow(unused_imports)]
use std::ffi::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
};
#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};
@ -45,6 +46,7 @@ impl ::std::fmt::Debug for GstVulkanDisplayXCBClass {
// Classes
#[repr(C)]
#[allow(dead_code)]
pub struct GstVulkanDisplayXCB {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@ -57,7 +59,6 @@ impl ::std::fmt::Debug for GstVulkanDisplayXCB {
}
}
#[link(name = "gstvulkan-1.0")]
extern "C" {
//=========================================================================