Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 3 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,15 +160,14 @@ jobs:
colcon test-result --verbose || true

# ---------------------------------------------------------------------------
# Jazzy build (forward-compat). Jazzy ships GStreamer 1.24 where the Intel
# vapostproc GPU path is exercised; allowed to fail until officially
# supported, but surfaces API/dependency drift early.
# Jazzy build + test (blocking). Jazzy ships GStreamer 1.24 (where the Intel
# vapostproc GPU path is available) and cv_bridge's .hpp header; both are
# supported, so this is a real gate alongside Humble.
# ---------------------------------------------------------------------------
build-jazzy:
name: build + test (jazzy)
runs-on: ubuntu-24.04
container: ros:jazzy
continue-on-error: true
env:
DEBIAN_FRONTEND: noninteractive
ROS_DISTRO: jazzy
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ for the full audit, fixes, and remaining roadmap.
- **GStreamer teardown ordering** (NULL-state before element unref) and a
`gst_parse_launch` partial-parse pipeline leak.
- **Stereo `CameraInfo`** — `resize` now scales the projection `Tx`/`Ty` terms.
- **Cross-distro `cv_bridge` include** — use `cv_bridge.hpp` where present
(Jazzy) and fall back to `cv_bridge.h` (Humble), so the package builds on both;
ROS 2 Jazzy build + tests are now a blocking CI gate alongside Humble.

### Added

Expand Down
2 changes: 1 addition & 1 deletion docs/PRODUCTION_READINESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ durable record of the audit findings, what has been fixed, and what remains.
| `ament_export_targets/libraries/include_directories/dependencies` + `EXPORT` install so downstream packages can link `prism_core` | `missing-ament-export-for-prism-core` | `CMakeLists.txt` |
| Stereo `CameraInfo` correctness — `resize_camera_info` now scales `P[3]`/`P[7]` (Tx/Ty), fixing silent disparity-to-depth corruption on rectified stereo | `camera-info-stereo-tx-untested` | `src/pipeline_factory.cpp` |
| Tests — unit suite 11 → **21** (per-backend fragment build strings, `validate_platform`/`factory_exists`, vertical flip, stereo Tx, crop/encoding/flip throw paths) **plus** a `launch_testing` integration test that drives a live `ImageProcNode` in direct mode and asserts output dims/encoding + transformed CameraInfo | `no-integration-test-node-runtime`, `*-untested` | `test/` |
| CI rebuilt into a real gate: `rosdep`-driven deps, `--return-code-on-test-failure` (the old gate could not fail), least-privilege `permissions`, **+ jobs** for ASan/UBSan, advisory `ament_lint`, a Jazzy build, and a QEMU arm64 cross-build | `ci-test-result-no-exit-code`, `ci-no-sanitizer-run`, `ci-no-rosdep-install`, `ci-no-distro-matrix`, `ci-no-arm64-build` | `.github/workflows/ci.yml` |
| CI rebuilt into a real gate: `rosdep`-driven deps, `--return-code-on-test-failure` (the old gate could not fail), least-privilege `permissions`, **+ jobs** for ASan/UBSan, advisory `ament_lint`, a **blocking Jazzy build+test** (cross-distro `cv_bridge` include), and a QEMU arm64 cross-build | `ci-test-result-no-exit-code`, `ci-no-sanitizer-run`, `ci-no-rosdep-install`, `ci-no-distro-matrix`, `ci-no-arm64-build` | `.github/workflows/ci.yml` |
| Docs-vs-code drift — qualified the "drop-in / same parameters" claim (topics, CameraInfo derivation, QoS), corrected the `vaapipostproc`→direct-mode prose, documented the direct-mode action-dropping limitation and the CameraInfo-topic collision footgun | `drop-in-topic-param-mismatch`, `vaapipostproc-arch-claim-misleading`, `direct-mode-chain-silent-drop-undocumented` | `README.md` |

### Phase 3 — remaining (tracked follow-ups)
Expand Down
7 changes: 7 additions & 0 deletions src/media_streamer_node.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
#include "prism_image_proc/media_streamer_node.hpp"

// cv_bridge shipped the C++ API as cv_bridge.h through Humble and renamed it to
// cv_bridge.hpp in Jazzy (the .h was removed). Include whichever exists so the
// package builds across distros.
#if __has_include(<cv_bridge/cv_bridge.hpp>)
#include <cv_bridge/cv_bridge.hpp>
#else
#include <cv_bridge/cv_bridge.h>
#endif
#include <opencv2/imgproc.hpp>
#include <rclcpp_components/register_node_macro.hpp>

Expand Down
6 changes: 6 additions & 0 deletions src/synthetic_4k_pub_node.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
#include "prism_image_proc/synthetic_4k_pub_node.hpp"

// cv_bridge.h (Humble) was renamed to cv_bridge.hpp in Jazzy; include whichever
// the active distro provides.
#if __has_include(<cv_bridge/cv_bridge.hpp>)
#include <cv_bridge/cv_bridge.hpp>
#else
#include <cv_bridge/cv_bridge.h>
#endif
#include <opencv2/imgproc.hpp>
#include <rclcpp_components/register_node_macro.hpp>

Expand Down
Loading