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:

  • CVCUDAResizeOperator
  • TensorRTInferenceOperator

Each class follows the existing IOperator contract and provides:

  • initialize() that returns cudaErrorNotSupported when 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.