#ifndef TGCALLS_ANDROID_INTERFACE_H #define TGCALLS_ANDROID_INTERFACE_H #include "sdk/android/native_api/video/video_source.h" #include "platform/PlatformInterface.h" #include "VideoCapturerInterface.h" namespace tgcalls { class AndroidInterface : public PlatformInterface { public: void configurePlatformAudio() override; std::unique_ptr makeVideoEncoderFactory(std::shared_ptr platformContext) override; std::unique_ptr makeVideoDecoderFactory(std::shared_ptr platformContext) override; bool supportsEncoding(const std::string &codecName, std::shared_ptr platformContext) override; rtc::scoped_refptr makeVideoSource(rtc::Thread *signalingThread, rtc::Thread *workerThread, bool screencapture) 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; std::unique_ptr createNetworkMonitorFactory() override; private: rtc::scoped_refptr _source[2]; std::unique_ptr hardwareVideoEncoderFactory; std::unique_ptr softwareVideoEncoderFactory; }; } // namespace tgcalls #endif