Skip to content

Add VDO #153

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 59 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
151cd8c
Add larod-sys crate
JsGjKJzi Oct 25, 2024
8d3defa
Add bindings.
JsGjKJzi Oct 25, 2024
709d58c
Drop back to ACAP SDK 1.3. Get larod crate fleshed out a little to do…
JsGjKJzi Oct 26, 2024
e158693
Swap back to x86_64
JsGjKJzi Oct 28, 2024
024e491
Start implementing LarodMap
JsGjKJzi Oct 28, 2024
56d3720
Implement get_string, get_int_arr2, get_int_arr4.
JsGjKJzi Oct 29, 2024
51e2518
Merge remote-tracking branch 'origin/main' into feature/larod
JsGjKJzi Oct 29, 2024
3d510b6
- Improved error handling to always deallocate a larodError object if…
JsGjKJzi Oct 30, 2024
3e004a0
Added builder pattern for LarodClient.
JsGjKJzi Oct 30, 2024
021ea65
Add log.
JsGjKJzi Oct 31, 2024
f9e0506
Start adding LarodDevice and Session
JsGjKJzi Oct 31, 2024
c05a0a1
Add remote testing
JsGjKJzi Nov 2, 2024
e0fa140
Hide on-device tests behind a device-tests feature
JsGjKJzi Nov 2, 2024
147e438
Inverted remote-test.sh check for CARGO_TEST_CAMERA definition
JsGjKJzi Nov 2, 2024
32db020
Update larod_sys/src/bindings.rs to match new enum style.
JsGjKJzi Nov 4, 2024
b3607bf
Change to EnumVariation::Rust as default bindgen enum style.
JsGjKJzi Nov 6, 2024
a5d62d5
Improve error handling and add documentation
JsGjKJzi Nov 6, 2024
4309ed6
Fix test failure due to renamed method.
JsGjKJzi Nov 6, 2024
de2367b
Remove note that is no longer needed.
JsGjKJzi Nov 6, 2024
1dc6896
Run executable is no camera.
JsGjKJzi Nov 6, 2024
55a7158
Explicitly tie the lifetime of LarodDevice to the lifetime of the Ses…
JsGjKJzi Nov 7, 2024
b294ca3
Don't copy larodDevice data from C to Rust, just provide access via f…
JsGjKJzi Nov 9, 2024
bdeda81
Unwrap result for test listing devices.
JsGjKJzi Nov 9, 2024
1eb3252
Make LarodDevice.get_name() and LarodDevice.get_instance() public.
JsGjKJzi Nov 9, 2024
7941c92
Align getters/setters with RFC344.
JsGjKJzi Nov 9, 2024
59b9ac5
Fix getter names missed in previous commit.
JsGjKJzi Nov 9, 2024
4373b18
Start stubbing LarodModel.
JsGjKJzi Nov 9, 2024
cdaf42b
Remove `bin` crate type from [[example]]
JsGjKJzi Nov 15, 2024
ff868cb
Stub out Tensor struct.
JsGjKJzi Nov 15, 2024
c30c1a0
Add vdo-sys
JsGjKJzi Nov 16, 2024
2e33daa
Add vdo.
JsGjKJzi Nov 16, 2024
774322f
Add configuration functions to StreamBuilder.
JsGjKJzi Nov 20, 2024
a0c822c
Add missing vdo-sys/Cargo.toml
JsGjKJzi Nov 20, 2024
9b57b94
Add vdo basic example.
JsGjKJzi Nov 20, 2024
fcabb5f
Updated bindings and build.rs.
JsGjKJzi Dec 5, 2024
147cc92
Add ability to iterate over frames and buffers.
JsGjKJzi Dec 12, 2024
e8e40fc
Pass additional arguments through remote-test.sh.
JsGjKJzi Dec 12, 2024
85bec01
Merge branch 'develop' into feature/vdo
JsGjKJzi Dec 12, 2024
bc53fc8
Don't derive debug for VDOError.
JsGjKJzi Dec 12, 2024
1b0d7b2
Comment out a few lines from test that were for information only.
JsGjKJzi Dec 12, 2024
4078645
Remove buffers() method from Stream.
JsGjKJzi Dec 12, 2024
f6b5dfd
Mark remote-test.sh as executable.
JsGjKJzi Dec 12, 2024
c4dabcb
Merge branch 'main' into feature/vdo
JsGjKJzi Dec 12, 2024
fa2082e
Drop larod.
JsGjKJzi Dec 12, 2024
bac69d7
Combine height and width methods into single resolution method.
JsGjKJzi Dec 17, 2024
9b613ef
Fix StreamBuilder.resolution() in a couple tests.
JsGjKJzi Dec 18, 2024
bac7fb2
Abandon allowing other buffer strategies and only use VDO_BUFFER_STRA…
JsGjKJzi Dec 18, 2024
a096a32
Add tests for other VdoFormats.
JsGjKJzi Dec 18, 2024
3649d73
Merge branch 'main' into feature/vdo
JsGjKJzi Dec 19, 2024
d7dba52
Add capacity, as_slice, and as_mut_slice methods to StreamBuffer.
JsGjKJzi Jan 2, 2025
af80b95
Synchronize gobject-sys version with workspace glib-sys version.
JsGjKJzi Jan 2, 2025
441d1ce
be able to set stream framerate
JsGjKJzi Feb 12, 2025
c9f29b0
be able to get frame time
JsGjKJzi Feb 12, 2025
13c9648
merge main into feature/vdo
JsGjKJzi Feb 14, 2025
bcb98b6
remove extra remote-test.sh
JsGjKJzi Feb 14, 2025
bb2d7f2
remove unused imports
JsGjKJzi Feb 14, 2025
bae84d6
clean up unused variables
JsGjKJzi Feb 14, 2025
44191df
add functions for Frame
JsGjKJzi Feb 19, 2025
7615a3b
use NewType enum
JsGjKJzi Apr 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
[build]
target = "aarch64-unknown-linux-gnu"

[target.'cfg(all(not(miri), not(target_arch = "x86_64")))']
runner = ["remote-test.sh"]
28 changes: 26 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ licensekey = { path = "crates/licensekey" }
licensekey-sys = { path = "crates/licensekey-sys" }
mdb = { path = "crates/mdb" }
mdb-sys = { path = "crates/mdb-sys" }
vdo = { path = "crates/vdo" }
vdo-sys = { path = "crates/vdo-sys" }

[workspace.package]
edition = "2021"
Expand Down
12 changes: 12 additions & 0 deletions crates/vdo-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "vdo-sys"
version = "0.0.0"
edition.workspace = true

[build-dependencies]
bindgen = { workspace = true }
pkg-config = { workspace = true }

[dependencies]
glib-sys = { workspace = true }
gobject-sys = "0.19.5"
29 changes: 29 additions & 0 deletions crates/vdo-sys/build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
use std::{env, path};

fn populated_bindings(dst: &path::PathBuf) {
let library = pkg_config::Config::new().probe("vdo").unwrap();
let mut bindings = bindgen::Builder::default()
.header("wrapper.h")
.allowlist_recursively(false)
.allowlist_function("^(vdo.*)$")
.allowlist_type("^(_?Vdo.*)$")
.allowlist_var("^(VDO_ERROR.*)$")
.blocklist_function("vdo_stream_enqueue_buffer")
.default_enum_style(bindgen::EnumVariation::NewType {
is_global: false,
is_bitfield: true,
})
.parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
.layout_tests(false);
for path in library.include_paths {
bindings = bindings.clang_args(&["-F", path.to_str().unwrap()]);
}
bindings.generate().unwrap().write_to_file(dst).unwrap();
}

fn main() {
let dst = path::PathBuf::from(env::var("OUT_DIR").unwrap()).join("bindings.rs");
if env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default() != "x86_64" {
populated_bindings(&dst);
}
}
Loading