#pragma once #include #include #include #include "frame/frame.h" #include "utils/result.h" #include "utils/simple_json.h" namespace rk3588 { struct DecodePacket { const uint8_t* data = nullptr; size_t size = 0; uint64_t pts = 0; bool keyframe = false; }; class IDecoder { public: virtual ~IDecoder() = default; virtual Status Open(const SimpleJson& config) = 0; virtual Status Send(const DecodePacket& packet) = 0; virtual Result> Receive() = 0; virtual void Close() = 0; }; } // namespace rk3588