ecosystem-extensions-v2 Design
Overview
This phase adds a thin optional-backend layer on top of the runtime-v2 contracts. The design keeps Mini-ImagePipe’s default build free of CV-CUDA, TensorRT, and GStreamer dependencies while adding explicit capability reporting and optional operator/bridge surfaces that can be compiled in later.
Design
1. Capability Registry
Add a small ecosystem/backend_registry surface that reports, for each optional backend:
- whether support was compiled into the binary,
- whether the backend is considered runtime-available,
- a short human-readable availability reason.
This becomes the single source of truth for docs, tests, and optional wrapper classes.
2. Optional Operator Wrappers
Add operator classes for:
CVCUDAResizeOperatorTensorRTInferenceOperator
Each class follows the existing IOperator contract and provides:
initialize()that returnscudaErrorNotSupportedwhen the backend is unavailable,isBackendAvailable()helper,getUnavailableReason()helper.
The default build only compiles the explicit-unavailable implementation. A later environment with the real SDK can switch on the backend-specific implementation through CMake options.
3. Video Bridge Scaffolding
Add a GStreamerBridge surface that reports whether video-pipeline integration is available.
In the default build it behaves like the other optional integrations: explicit unavailability,
clear reason string, no silent fallback.
Verification
- Add tests for capability reporting and explicit-unavailable behavior.
- Validate the OpenSpec change with strict mode.
- Keep minimal/default builds green in the current environment.