#ifndef TGCALLS_VIDEO_CAPTURER_INTERFACE_H #define TGCALLS_VIDEO_CAPTURER_INTERFACE_H #include "Instance.h" #include #include namespace rtc { template class VideoSinkInterface; } // namespace rtc namespace webrtc { class VideoFrame; } // namespace webrtc namespace tgcalls { class VideoCapturerInterface { public: virtual ~VideoCapturerInterface() = default; virtual void setState(VideoState state) = 0; virtual void setPreferredCaptureAspectRatio(float aspectRatio) = 0; virtual void setUncroppedOutput(std::shared_ptr> sink) = 0; virtual int getRotation() = 0; virtual void setOnFatalError(std::function error) { // TODO: make this function pure virtual when everybody implements it. } virtual void setOnPause(std::function pause) { // TODO: make this function pure virtual when everybody implements it. } virtual void withNativeImplementation(std::function completion) { completion(nullptr); } }; } // namespace tgcalls #endif