#ifndef TGCALLS_DESKTOP_INTERFACE_H #define TGCALLS_DESKTOP_INTERFACE_H #include "platform/PlatformInterface.h" #include "VideoCapturerInterface.h" namespace tgcalls { class DesktopInterface : public PlatformInterface { public: std::unique_ptr makeVideoEncoderFactory(bool preferHardwareEncoding = false, bool isScreencast = false) override; std::unique_ptr makeVideoDecoderFactory() override; bool supportsEncoding(const std::string &codecName) override; rtc::scoped_refptr makeVideoSource(rtc::Thread *signalingThread, rtc::Thread *workerThread) override; void adaptVideoSource(rtc::scoped_refptr videoSource, int width, int height, int fps) override; std::unique_ptr makeVideoCapturer(rtc::scoped_refptr source, std::string deviceId, std::function stateUpdated, std::function captureInfoUpdated, std::shared_ptr platformContext, std::pair &outResolution) override; }; } // namespace tgcalls #endif // TGCALLS_DESKTOP_INTERFACE_H