#pragma once #include "IVrFFMediaPuller.h" #include #include #include #if !defined(FFMEDIA_PLATFORM_DUMMY) #include "module/vi/module_rtspClient.hpp" #include "module/vp/module_mppdec.hpp" #include "module/vp/module_rga.hpp" #endif class CVrFFMediaPuller : public IVrFFMediaPuller { public: CVrFFMediaPuller(); ~CVrFFMediaPuller() override; int Init(const VrFFPullConfig& config) override; void SetFrameCallback(FFPulledFrameCallback callback) override; int Start() override; int Stop() override; int UnInit() override; bool IsStreaming() const override; private: VrFFPullConfig m_config; std::atomic m_bStarted{false}; std::atomic m_bInited{false}; FFPulledFrameCallback m_callback; std::mutex m_mutex; #if !defined(FFMEDIA_PLATFORM_DUMMY) std::shared_ptr m_rtspClient; std::shared_ptr m_decoder; std::shared_ptr m_rga; #endif };