#pragma once #include #include #include #include "hw/i_decoder.h" #include "hw/i_encoder.h" #include "hw/i_image_processor.h" #include "hw/i_infer_backend.h" #include "utils/result.h" namespace rk3588 { class JetsonInferBackend : public IInferBackend { public: ModelHandle LoadModel(const std::string& /*model_path*/, std::string& err) override { err = "jetson infer backend not supported"; return kInvalidModelHandle; } void UnloadModel(ModelHandle /*handle*/) override {} bool GetModelInfo(ModelHandle /*handle*/, ModelInfo& /*info*/) const override { return false; } InferResult Infer(ModelHandle /*handle*/, const InferInput& /*input*/) override { InferResult res; res.success = false; res.error = "jetson infer backend not supported"; return res; } AiScheduler::BorrowedInferResult InferBorrowed(ModelHandle /*handle*/, const InferInput& /*input*/) override { AiScheduler::BorrowedInferResult res; res.success = false; res.error = "jetson infer backend not supported"; return res; } }; class JetsonImageProcessor : public IImageProcessor { public: Status Resize(const Frame& /*src*/, Frame& /*dst*/) override { return FailStatus("jetson image processor not supported"); } Status CvtColor(const Frame& /*src*/, Frame& /*dst*/, PixelFormat /*dst_format*/) override { return FailStatus("jetson image processor not supported"); } Status Normalize(const Frame& /*src*/, std::vector& /*out*/, const std::vector& /*mean*/, const std::vector& /*std*/) override { return FailStatus("jetson image processor not supported"); } }; class JetsonDecoder : public IDecoder { public: Status Open(const SimpleJson& /*config*/) override { return FailStatus("jetson decoder not supported"); } Status Send(const DecodePacket& /*packet*/) override { return FailStatus("jetson decoder not supported"); } Result> Receive() override { return MakeError>("jetson decoder not supported"); } void Close() override {} }; class JetsonEncoder : public IEncoder { public: Status Open(const SimpleJson& /*config*/) override { return FailStatus("jetson encoder not supported"); } Status Send(const std::shared_ptr& /*frame*/) override { return FailStatus("jetson encoder not supported"); } Result Receive() override { return MakeError("jetson encoder not supported"); } std::vector ExtraData() const override { return {}; } void Close() override {} }; } // namespace rk3588