Skip to content

fix(vdo): compile against firmware-11 SDK 1.15.1 (VDO_ERROR_NO_VIDEO) - #248

Open
fishloa wants to merge 1 commit into
AxisCommunications:mainfrom
fishloa:fix/vdo-fw11-compat
Open

fishloa wants to merge 1 commit into
AxisCommunications:mainfrom
fishloa:fix/vdo-fw11-compat

Conversation

@fishloa

@fishloa fishloa commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Fixes #245.

VdoError::code_name() referenced vdo_sys::VDO_ERROR_NO_VIDEO, which the firmware-11 Native SDK (1.15.1) vdo headers don't define (it was added in a later SDK), so the vdo crate failed to build against that sysroot:

error[E0425]: cannot find value `VDO_ERROR_NO_VIDEO` in crate `vdo_sys`
   --> crates/vdo/src/lib.rs:148:32

The arm is diagnostic-only and the _ => "VDO_ERROR_UNKNOWN" catch-all already covers the code, so dropping it lets vdo compile against both the fw11 (1.15.1) and fw12 (12.1.0) SDK sysroots.

Verified end-to-end: with this change the crate cross-compiles under axisecp/acap-native-sdk:1.15.1-{aarch64,armv7hf}-ubuntu22.04 and a real ACAP app (on-camera LL-HLS via VDO) runs on an ARTPEC-6 / firmware-11.11 camera.

If you'd rather keep the label for fw12+ instead of dropping it, a cfg/build-probe gate would also work — happy to switch this PR to that approach.

…ERROR_NO_VIDEO arm)

VdoError::code_name() referenced vdo_sys::VDO_ERROR_NO_VIDEO, which the
firmware-11 Native SDK (1.15.1) vdo headers don't define (added in a later
SDK), so the crate failed to build against that sysroot with E0425. The arm is
diagnostic-only and the '_ => "VDO_ERROR_UNKNOWN"' fallback already covers the
code, so dropping it lets vdo compile across both the fw11 (1.15.1) and fw12
(12.1.0) SDKs. If you'd rather keep the label for fw12+, a cfg/build-probe gate
works too. Closes AxisCommunications#245.
@fishloa
fishloa requested a review from a team as a code owner July 18, 2026 16:35
@apljungquist

ghost commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

I think we should find a way to compile conditionally with the error code because I don't think the bindings will be particularly useful if we reduce them to supporting only the greatest common denominator. I haven't thought much about exactly how to do this, so I'm happy to discuss options or just go with whatever you propose as long as it sounds reasonable (with the reservation that we may change it down the road if we come up with something that has tangible benefits). But I would like to use this as a starting point (feel free to challenge me if you disagree): We should support the latest minor/micro version within each major version of AXIS OS.

ghost left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing the verdict to request changes to make the status of the PR clearer, see earlier comment for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

vdo does not compile against firmware-11 Native SDK 1.15.1 (VDO_ERROR_NO_VIDEO)

2 participants