diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index a55bb847..202c1783 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -3,7 +3,7 @@ ARG SDK=acap-native-sdk # Keep in sync with `install-sdk.sh` and `on-host-workflow.yml`. ARG UBUNTU_VERSION=24.04 # Keep in sync with `install-sdk.sh`. -ARG VERSION=12.1.0 +ARG VERSION=12.11.0 ARG BASE_IMAGE=debian:trixie-20260223 FROM ${REPO}/${SDK}:${VERSION}-aarch64-ubuntu${UBUNTU_VERSION} AS sdk-aarch64 diff --git a/.devhost/install-sdk.sh b/.devhost/install-sdk.sh index 7f6537b3..d957fd63 100755 --- a/.devhost/install-sdk.sh +++ b/.devhost/install-sdk.sh @@ -5,7 +5,7 @@ set -eux DIRECTORY="${1}" # Keep version in sync with `Dockerfile`. -docker run axisecp/acap-native-sdk:12.1.0-armv7hf-ubuntu24.04 tar \ +docker run axisecp/acap-native-sdk:12.11.0-armv7hf-ubuntu24.04 tar \ --create \ --directory /opt/ \ --file - \ @@ -18,7 +18,7 @@ docker run axisecp/acap-native-sdk:12.1.0-armv7hf-ubuntu24.04 tar \ --strip-components 1 # Keep version in sync with `Dockerfile`. -docker run axisecp/acap-native-sdk:12.1.0-aarch64-ubuntu24.04 tar \ +docker run axisecp/acap-native-sdk:12.11.0-aarch64-ubuntu24.04 tar \ --create \ --directory /opt/ \ --file - \ diff --git a/apps-aarch64.checksum b/apps-aarch64.checksum index 448aaa9c..754f20f4 100644 --- a/apps-aarch64.checksum +++ b/apps-aarch64.checksum @@ -1,18 +1,18 @@ -27c2f1c9ccb02741fd7c412793ced13550fd0ee3 target-aarch64/acap/Challenge_Build_Tools_1_0_0_all.eap -5250ef2bd726138fc5f242596587156eab5e64f4 target-aarch64/acap/axoverlay_example_0_0_0_aarch64.eap -36bb02351514cdab558e2dff77762bf8a9080590 target-aarch64/acap/axparameter_example_0_0_0_aarch64.eap -4ab515a362d34c42a1723bfedfbab583c5ebe2fc target-aarch64/acap/axstorage_example_0_0_0_aarch64.eap -7d29034492ff57f3b46e876618090b7ef6de1c2f target-aarch64/acap/bounding_box_example_0_0_0_aarch64.eap -e186594f4c8857d80cd18fce3d45892d6fba11a0 target-aarch64/acap/consume_analytics_metadata_0_0_0_aarch64.eap -e2cab11965f638c6c2409bdbc835b12cf6d84aef target-aarch64/acap/embedded_web_page_0_0_0_aarch64.eap -15d5eb7122fb03e6b633ea6ba76c88aac0794796 target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap -a12f184fdcacfaf4c1d3b9f11f2dddc64ec21f14 target-aarch64/acap/hello_world_0_0_0_aarch64.eap -d4d351038d3af3d995ac5137f070afe7b56763ef target-aarch64/acap/inspect_env_0_0_0_aarch64.eap -babe2fd2009f796efe6529d240e8e81368c1982a target-aarch64/acap/licensekey_handler_0_0_0_aarch64.eap -387a1b17f14ec4103a582956ced1a9fe12fd0b91 target-aarch64/acap/object_detection_1_0_0_aarch64.eap -ee33a597448238ce7e483d590aad51945dd92637 target-aarch64/acap/reverse_proxy_0_0_0_aarch64.eap -d2365ffe408d5a77b326589d664d3647f4e99ac8 target-aarch64/acap/send_event_1_0_0_aarch64.eap -abfdb79508c4395f124c9cbe622e695515a8054f target-aarch64/acap/subscribe_to_event_1_0_0_aarch64.eap -a6e0ee05e0ea5b0e76308b6d91b06b61fb2d9029 target-aarch64/acap/using_a_build_script_0_0_0_aarch64.eap -61c0f96d5388ebb6a46a80f0fd2f57b86143a2f6 target-aarch64/acap/vapix_access_0_0_0_aarch64.eap -7c6980a49bfa97ff989bf54ac090c82ed0a691e3 target-aarch64/acap/vdoencodeclient_1_0_0_aarch64.eap +5e8665c07cc9a0a236ce825c1821b02c6114e3c9 target-aarch64/acap/Challenge_Build_Tools_1_0_0_all.eap +02470aa5f98d9433ad83bcc0b4036ed8d1c33d95 target-aarch64/acap/axoverlay_example_0_0_0_aarch64.eap +2e969f0052c8f42eb7421e390984de394decd782 target-aarch64/acap/axparameter_example_0_0_0_aarch64.eap +1135acfa310d6893dee1afd6b784650f86fa5ef6 target-aarch64/acap/axstorage_example_0_0_0_aarch64.eap +ba47efef31bde53e509fc927e852f5328dd4bc45 target-aarch64/acap/bounding_box_example_0_0_0_aarch64.eap +8a5c053416cade43cb04e18539c8eaced7581d9a target-aarch64/acap/consume_analytics_metadata_0_0_0_aarch64.eap +dcbff09b58c01f371f709e4564167ee2764d8a7b target-aarch64/acap/embedded_web_page_0_0_0_aarch64.eap +eea87093d21a9c5975146e7e901b2af719751516 target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap +b094d400939f066dd4db602469c1f4fb242d4ca2 target-aarch64/acap/hello_world_0_0_0_aarch64.eap +0fec22df9046a67af4c0bb3f05e64a9e348d0cd6 target-aarch64/acap/inspect_env_0_0_0_aarch64.eap +44d11b7400ed107e3b091e3cd9b770336679c331 target-aarch64/acap/licensekey_handler_0_0_0_aarch64.eap +4fe894e74fb465817c3333dd4f3edfc7cca61766 target-aarch64/acap/object_detection_1_0_0_aarch64.eap +04dca71df69368834ce03d6c485597b115a00146 target-aarch64/acap/reverse_proxy_0_0_0_aarch64.eap +7e453ac8f014f7c54e7cae8d025b6d34509cad7a target-aarch64/acap/send_event_1_0_0_aarch64.eap +7d06f866f4575c79d056a91c7cc154fdcb56f60a target-aarch64/acap/subscribe_to_event_1_0_0_aarch64.eap +007265c599111ec96a9d000ff135050021f3e243 target-aarch64/acap/using_a_build_script_0_0_0_aarch64.eap +742080f8c9fef6ab30f33a53607e214cbffaf3c6 target-aarch64/acap/vapix_access_0_0_0_aarch64.eap +c356860494008b615725d8370a93f3872fe66e90 target-aarch64/acap/vdoencodeclient_1_0_0_aarch64.eap diff --git a/apps-aarch64.filesize b/apps-aarch64.filesize index ee6e8ef4..e25f9f6e 100644 --- a/apps-aarch64.filesize +++ b/apps-aarch64.filesize @@ -5,7 +5,7 @@ 1598 target-aarch64/acap/bounding_box_example_0_0_0_aarch64.eap 1481 target-aarch64/acap/consume_analytics_metadata_0_0_0_aarch64.eap 899 target-aarch64/acap/embedded_web_page_0_0_0_aarch64.eap -3544 target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap +3543 target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap 1406 target-aarch64/acap/hello_world_0_0_0_aarch64.eap 1441 target-aarch64/acap/inspect_env_0_0_0_aarch64.eap 1430 target-aarch64/acap/licensekey_handler_0_0_0_aarch64.eap diff --git a/apps/axoverlay_example/manifest.json b/apps/axoverlay_example/manifest.json index 98c89cce..287bbbba 100644 --- a/apps/axoverlay_example/manifest.json +++ b/apps/axoverlay_example/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "axoverlay_example", diff --git a/apps/axparameter_example/manifest.json b/apps/axparameter_example/manifest.json index ef25db46..8e550893 100644 --- a/apps/axparameter_example/manifest.json +++ b/apps/axparameter_example/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "axparameter_example", diff --git a/apps/axstorage_example/manifest.json b/apps/axstorage_example/manifest.json index 99cb6c2b..2a8beac5 100644 --- a/apps/axstorage_example/manifest.json +++ b/apps/axstorage_example/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "axstorage_example", diff --git a/apps/bounding_box_example/manifest.json b/apps/bounding_box_example/manifest.json index 697b7257..e06b05eb 100644 --- a/apps/bounding_box_example/manifest.json +++ b/apps/bounding_box_example/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "bounding_box_example", diff --git a/apps/challenge_build_tools/manifest.json b/apps/challenge_build_tools/manifest.json index a763776f..ea98317b 100644 --- a/apps/challenge_build_tools/manifest.json +++ b/apps/challenge_build_tools/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.7.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "challenge_build_tools", diff --git a/apps/consume_analytics_metadata/manifest.json b/apps/consume_analytics_metadata/manifest.json index 62e0083e..7ec5fab3 100644 --- a/apps/consume_analytics_metadata/manifest.json +++ b/apps/consume_analytics_metadata/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.6.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "consume_analytics_metadata", diff --git a/apps/embedded_web_page/manifest.json b/apps/embedded_web_page/manifest.json index b9b72273..e7981da8 100644 --- a/apps/embedded_web_page/manifest.json +++ b/apps/embedded_web_page/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.2", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "embedded_web_page", diff --git a/apps/event_subscribe/manifest.json b/apps/event_subscribe/manifest.json index 55a56675..27a7531e 100644 --- a/apps/event_subscribe/manifest.json +++ b/apps/event_subscribe/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.4.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "event_subscribe", diff --git a/apps/hello_world/manifest.json b/apps/hello_world/manifest.json index 4b8b4bb4..7dbedcb8 100644 --- a/apps/hello_world/manifest.json +++ b/apps/hello_world/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.2", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "hello_world", diff --git a/apps/inspect_env/manifest.json b/apps/inspect_env/manifest.json index bf3c52ba..5607929e 100644 --- a/apps/inspect_env/manifest.json +++ b/apps/inspect_env/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.2", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "inspect_env", diff --git a/apps/licensekey_handler/manifest.json b/apps/licensekey_handler/manifest.json index 5fee0ed0..7909c418 100644 --- a/apps/licensekey_handler/manifest.json +++ b/apps/licensekey_handler/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.2", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "licensekey_handler", diff --git a/apps/object_detection/manifest.json b/apps/object_detection/manifest.json index df03f595..e780953b 100644 --- a/apps/object_detection/manifest.json +++ b/apps/object_detection/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.4.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "object_detection", diff --git a/apps/reverse_proxy/manifest.json b/apps/reverse_proxy/manifest.json index bf521ab1..bbf3e48e 100644 --- a/apps/reverse_proxy/manifest.json +++ b/apps/reverse_proxy/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.5.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "reverse_proxy", diff --git a/apps/send_event/manifest.json b/apps/send_event/manifest.json index 7f3bfca9..b38b3b66 100644 --- a/apps/send_event/manifest.json +++ b/apps/send_event/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.4.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "send_event", diff --git a/apps/subscribe_to_event/manifest.json b/apps/subscribe_to_event/manifest.json index 6a81270e..7c53d9e4 100644 --- a/apps/subscribe_to_event/manifest.json +++ b/apps/subscribe_to_event/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.4.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "friendlyName": "subscribe_to_event", diff --git a/apps/using_a_build_script/build.rs b/apps/using_a_build_script/build.rs index e7bf2eb5..41b22fb6 100644 --- a/apps/using_a_build_script/build.rs +++ b/apps/using_a_build_script/build.rs @@ -64,7 +64,7 @@ fn generate_html(out_dir: &Path) { fn generate_manifest(out_dir: &Path) { let manifest_out = out_dir.join("manifest.json"); let content = json!({ - "schemaVersion": "1.2", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": env!("CARGO_PKG_NAME"), diff --git a/apps/vapix_access/manifest.json b/apps/vapix_access/manifest.json index 2deaed44..478c51b8 100644 --- a/apps/vapix_access/manifest.json +++ b/apps/vapix_access/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.2", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "vapix_access", diff --git a/apps/vdo_encode_client/manifest.json b/apps/vdo_encode_client/manifest.json index 5ae907aa..fefd1669 100644 --- a/apps/vdo_encode_client/manifest.json +++ b/apps/vdo_encode_client/manifest.json @@ -1,5 +1,5 @@ { - "schemaVersion": "1.4.0", + "schemaVersion": "1.11.0", "acapPackageConf": { "setup": { "appName": "vdoencodeclient", diff --git a/crates/axevent-sys/src/bindings.rs b/crates/axevent-sys/src/bindings.rs index 0d2a1471..5d9f2463 100644 --- a/crates/axevent-sys/src/bindings.rs +++ b/crates/axevent-sys/src/bindings.rs @@ -265,6 +265,9 @@ pub type AXSubscriptionCallback = ::std::option::Option< >; pub type AXDeclarationCompleteCallback = ::std::option::Option; +pub type AXUnsubscribeCompleteCallback = ::std::option::Option< + unsafe extern "C" fn(declaration: guint, user_data: gpointer, error: *mut GError), +>; extern "C" { pub fn ax_event_handler_new() -> *mut AXEventHandler; } @@ -337,3 +340,12 @@ extern "C" { error: *mut *mut GError, ) -> gboolean; } +extern "C" { + pub fn ax_event_handler_unsubscribe_and_notify( + event_handler: *mut AXEventHandler, + subscription: guint, + callback: AXUnsubscribeCompleteCallback, + user_data: gpointer, + error: *mut *mut GError, + ) -> gboolean; +} diff --git a/crates/larod-sys/src/bindings.rs b/crates/larod-sys/src/bindings.rs index 716de3c3..cbab829c 100644 --- a/crates/larod-sys/src/bindings.rs +++ b/crates/larod-sys/src/bindings.rs @@ -491,6 +491,16 @@ extern "C" { error: *mut *mut larodError, ) -> bool; } +extern "C" { + pub fn larodBuildTensorDims( + tensor: *mut larodTensor, + layout: larodTensorLayout, + width: usize, + height: usize, + num_channels: usize, + error: *mut *mut larodError, + ) -> bool; +} extern "C" { pub fn larodGetTensorDims( tensor: *const larodTensor, @@ -504,6 +514,16 @@ extern "C" { error: *mut *mut larodError, ) -> bool; } +extern "C" { + pub fn larodBuildTensorPitches( + tensor: *mut larodTensor, + layout: larodTensorLayout, + pitch: usize, + height: usize, + num_channels: usize, + error: *mut *mut larodError, + ) -> bool; +} extern "C" { pub fn larodGetTensorPitches( tensor: *const larodTensor, @@ -580,6 +600,13 @@ extern "C" { error: *mut *mut larodError, ) -> bool; } +extern "C" { + pub fn larodConvertVmemFdToDmabuf( + fd: ::std::os::raw::c_int, + offset: i64, + error: *mut *mut larodError, + ) -> ::std::os::raw::c_int; +} extern "C" { pub fn larodSetTensorFdProps( tensor: *mut larodTensor, @@ -745,3 +772,13 @@ extern "C" { error: *mut *mut larodError, ) -> bool; } +extern "C" { + pub fn larodExportModel( + conn: *mut larodConnection, + modelFd: ::std::os::raw::c_int, + outputFd: ::std::os::raw::c_int, + dev: *const larodDevice, + params: *const larodMap, + error: *mut *mut larodError, + ) -> bool; +} diff --git a/crates/vdo-sys/src/bindings.rs b/crates/vdo-sys/src/bindings.rs index 3ee3dbce..e113c31b 100644 --- a/crates/vdo-sys/src/bindings.rs +++ b/crates/vdo-sys/src/bindings.rs @@ -94,6 +94,9 @@ impl VdoWdrMode { impl VdoWdrMode { pub const VDO_WDR_MODE_OFF: VdoWdrMode = VdoWdrMode(5); } +impl VdoWdrMode { + pub const VDO_WDR_MODE_AUTO: VdoWdrMode = VdoWdrMode(6); +} impl ::std::ops::BitOr for VdoWdrMode { type Output = Self; #[inline] @@ -159,6 +162,9 @@ impl VdoFormat { impl VdoFormat { pub const VDO_FORMAT_AV1: VdoFormat = VdoFormat(10); } +impl VdoFormat { + pub const VDO_FORMAT_AVIF: VdoFormat = VdoFormat(11); +} impl ::std::ops::BitOr for VdoFormat { type Output = Self; #[inline] @@ -467,6 +473,9 @@ impl VdoFrameType { impl VdoFrameType { pub const VDO_FRAME_TYPE_AV1_BIDI: VdoFrameType = VdoFrameType(24); } +impl VdoFrameType { + pub const VDO_FRAME_TYPE_AVIF: VdoFrameType = VdoFrameType(25); +} impl ::std::ops::BitOr for VdoFrameType { type Output = Self; #[inline] @@ -537,6 +546,50 @@ impl ::std::ops::BitAndAssign for VdoZipStreamProfile { #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct VdoZipStreamProfile(pub ::std::os::raw::c_int); +impl VdoZipStreamGdr { + pub const VDO_ZIPSTREAM_GDR_NONE: VdoZipStreamGdr = VdoZipStreamGdr(-1); +} +impl VdoZipStreamGdr { + pub const VDO_ZIPSTREAM_GDR_AUTO: VdoZipStreamGdr = VdoZipStreamGdr(0); +} +impl VdoZipStreamGdr { + pub const VDO_ZIPSTREAM_GDR_OFF: VdoZipStreamGdr = VdoZipStreamGdr(1); +} +impl VdoZipStreamGdr { + pub const VDO_ZIPSTREAM_GDR_BALANCED: VdoZipStreamGdr = VdoZipStreamGdr(2); +} +impl VdoZipStreamGdr { + pub const VDO_ZIPSTREAM_GDR_EXTREME: VdoZipStreamGdr = VdoZipStreamGdr(3); +} +impl ::std::ops::BitOr for VdoZipStreamGdr { + type Output = Self; + #[inline] + fn bitor(self, other: Self) -> Self { + VdoZipStreamGdr(self.0 | other.0) + } +} +impl ::std::ops::BitOrAssign for VdoZipStreamGdr { + #[inline] + fn bitor_assign(&mut self, rhs: VdoZipStreamGdr) { + self.0 |= rhs.0; + } +} +impl ::std::ops::BitAnd for VdoZipStreamGdr { + type Output = Self; + #[inline] + fn bitand(self, other: Self) -> Self { + VdoZipStreamGdr(self.0 & other.0) + } +} +impl ::std::ops::BitAndAssign for VdoZipStreamGdr { + #[inline] + fn bitand_assign(&mut self, rhs: VdoZipStreamGdr) { + self.0 &= rhs.0; + } +} +#[repr(transparent)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct VdoZipStreamGdr(pub ::std::os::raw::c_int); impl VdoChunkType { pub const VDO_CHUNK_NONE: VdoChunkType = VdoChunkType(0); } @@ -609,11 +662,18 @@ impl ::std::ops::BitAndAssign for VdoChunkOption { pub struct VdoChunkOption(pub ::std::os::raw::c_uint); #[repr(C)] pub struct VdoChunk { - pub data: gpointer, + pub __bindgen_anon_1: VdoChunk__bindgen_ty_1, pub size: gsize, pub type_: VdoChunkType, pub offset: gint64, } +#[repr(C)] +pub struct VdoChunk__bindgen_ty_1 { + pub data: __BindgenUnionField, + pub chars: __BindgenUnionField<*mut gchar>, + pub bytes: __BindgenUnionField<*mut guint8>, + pub bindgen_union_field: u64, +} impl VdoOverlayAlign { pub const VDO_OVERLAY_ALIGN_NONE: VdoOverlayAlign = VdoOverlayAlign(-1); } @@ -1080,6 +1140,39 @@ pub struct VdoPair32u__bindgen_ty_3 { pub num: guint32, pub den: guint32, } +#[repr(C)] +pub struct VdoQuad32i { + pub __bindgen_anon_1: __BindgenUnionField, + pub val: __BindgenUnionField<[gint32; 4usize]>, + pub bindgen_union_field: [u32; 4usize], +} +#[repr(C)] +pub struct VdoQuad32i__bindgen_ty_1 { + pub x: gint32, + pub y: gint32, + pub w: gint32, + pub h: gint32, +} +#[repr(C)] +pub struct VdoQuad32u { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub val: __BindgenUnionField<[guint32; 4usize]>, + pub bindgen_union_field: [u32; 4usize], +} +#[repr(C)] +pub struct VdoQuad32u__bindgen_ty_1 { + pub x: guint32, + pub y: guint32, + pub w: guint32, + pub h: guint32, +} +#[repr(C)] +pub struct VdoQuad32u__bindgen_ty_2 { + pub min: guint32, + pub target: guint32, + pub max: guint32, +} extern "C" { pub fn vdo_wdr_mode_get_type() -> GType; } @@ -1098,6 +1191,9 @@ extern "C" { extern "C" { pub fn vdo_zipstream_profile_get_type() -> GType; } +extern "C" { + pub fn vdo_zipstream_gdr_get_type() -> GType; +} extern "C" { pub fn vdo_rate_control_mode_get_type() -> GType; } @@ -1107,9 +1203,6 @@ extern "C" { extern "C" { pub fn vdo_frame_type_get_type() -> GType; } -extern "C" { - pub fn vdo_color_get_type() -> GType; -} extern "C" { pub fn vdo_timestamp_get_type() -> GType; } @@ -1149,6 +1242,9 @@ pub type VdoMapClass_queueautoptr = *mut GQueue; extern "C" { pub fn vdo_map_new() -> *mut VdoMap; } +extern "C" { + pub fn vdo_map_clone(other: *const VdoMap) -> *mut VdoMap; +} extern "C" { pub fn vdo_map_new_from_variant(dictionary: *mut GVariant) -> *mut VdoMap; } @@ -1315,6 +1411,20 @@ extern "C" { def: VdoPair32u, ) -> VdoPair32u; } +extern "C" { + pub fn vdo_map_get_quad32i( + self_: *const VdoMap, + name: *const gchar, + def: VdoQuad32i, + ) -> VdoQuad32i; +} +extern "C" { + pub fn vdo_map_get_quad32u( + self_: *const VdoMap, + name: *const gchar, + def: VdoQuad32u, + ) -> VdoQuad32u; +} extern "C" { pub fn vdo_map_set_byte(self_: *mut VdoMap, name: *const gchar, value: guchar); } @@ -1360,6 +1470,12 @@ extern "C" { extern "C" { pub fn vdo_map_set_pair32u(self_: *mut VdoMap, name: *const gchar, value: VdoPair32u); } +extern "C" { + pub fn vdo_map_set_quad32i(self_: *mut VdoMap, name: *const gchar, value: VdoQuad32i); +} +extern "C" { + pub fn vdo_map_set_quad32u(self_: *mut VdoMap, name: *const gchar, value: VdoQuad32u); +} extern "C" { pub fn vdo_channel_get_type() -> GType; } @@ -1425,32 +1541,6 @@ extern "C" { extern "C" { pub fn vdo_channel_get_id(self_: *mut VdoChannel) -> guint; } -extern "C" { - pub fn vdo_channel_set_stream_profile( - self_: *mut VdoChannel, - profile: *const gchar, - format: VdoFormat, - settings: *mut VdoMap, - error: *mut *mut GError, - ) -> gboolean; -} -extern "C" { - pub fn vdo_channel_set_crop_dptz( - self_: *mut VdoChannel, - x: guint, - y: guint, - width: guint, - height: guint, - error: *mut *mut GError, - ) -> gboolean; -} -extern "C" { - pub fn vdo_channel_apply_alpha_blending( - self_: *mut VdoChannel, - fd: gint, - error: *mut *mut GError, - ) -> gboolean; -} extern "C" { pub fn vdo_channel_set_framerate( self_: *mut VdoChannel, @@ -1495,6 +1585,9 @@ extern "C" { extern "C" { pub fn vdo_frame_get_timestamp(self_: *mut VdoFrame) -> guint64; } +extern "C" { + pub fn vdo_frame_get_utc_timestamp(self_: *mut VdoFrame) -> guint64; +} extern "C" { pub fn vdo_frame_get_custom_timestamp(self_: *mut VdoFrame) -> gint64; } @@ -1594,6 +1687,9 @@ extern "C" { extern "C" { pub fn vdo_buffer_is_complete(self_: *mut VdoBuffer) -> gboolean; } +extern "C" { + pub fn vdo_buffer_is_contiguous(self_: *mut VdoBuffer) -> gboolean; +} extern "C" { pub fn vdo_buffer_get_opaque(self_: *mut VdoBuffer) -> gpointer; } @@ -1624,6 +1720,30 @@ pub type VdoStreamClass_autoptr = *mut VdoStreamClass; pub type VdoStreamClass_listautoptr = *mut GList; pub type VdoStreamClass_slistautoptr = *mut GSList; pub type VdoStreamClass_queueautoptr = *mut GQueue; +extern "C" { + pub fn vdo_stream_rgb_new( + settings: *const VdoMap, + input: guint32, + resolution: VdoResolution, + error: *mut *mut GError, + ) -> *mut VdoStream; +} +extern "C" { + pub fn vdo_stream_nv12_new( + settings: *const VdoMap, + input: guint32, + resolution: VdoResolution, + error: *mut *mut GError, + ) -> *mut VdoStream; +} +extern "C" { + pub fn vdo_stream_y800_new( + settings: *const VdoMap, + input: guint32, + resolution: VdoResolution, + error: *mut *mut GError, + ) -> *mut VdoStream; +} extern "C" { pub fn vdo_stream_new( settings: *mut VdoMap, diff --git a/crates/vdo-sys/src/lib.rs b/crates/vdo-sys/src/lib.rs index abab1b57..c16cfc7b 100644 --- a/crates/vdo-sys/src/lib.rs +++ b/crates/vdo-sys/src/lib.rs @@ -17,6 +17,7 @@ type gdouble = core::ffi::c_double; type gint = core::ffi::c_int; type guint = core::ffi::c_uint; +type guint8 = u8; type gint16 = i16; type guint16 = u16; type gint32 = i32;