2020-08-14 16:58:22 +00:00
|
|
|
#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:
|
2020-08-15 21:06:36 +00:00
|
|
|
void configurePlatformAudio() override;
|
2020-08-21 23:59:49 +00:00
|
|
|
std::unique_ptr<webrtc::VideoEncoderFactory> makeVideoEncoderFactory(std::shared_ptr<PlatformContext> platformContext) override;
|
|
|
|
std::unique_ptr<webrtc::VideoDecoderFactory> makeVideoDecoderFactory(std::shared_ptr<PlatformContext> platformContext) override;
|
|
|
|
bool supportsEncoding(const std::string &codecName, std::shared_ptr<PlatformContext> platformContext) override;
|
2020-08-14 16:58:22 +00:00
|
|
|
rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> makeVideoSource(rtc::Thread *signalingThread, rtc::Thread *workerThread) override;
|
2020-08-15 21:06:36 +00:00
|
|
|
void adaptVideoSource(rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> videoSource, int width, int height, int fps) override;
|
2020-10-01 01:59:32 +00:00
|
|
|
std::unique_ptr<VideoCapturerInterface> makeVideoCapturer(rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> source, std::string deviceId, std::function<void(VideoState)> stateUpdated, std::function<void(PlatformCaptureInfo)> captureInfoUpdated, std::shared_ptr<PlatformContext> platformContext, std::pair<int, int> &outResolution) override;
|
2020-08-14 16:58:22 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
rtc::scoped_refptr<webrtc::JavaVideoTrackSourceInterface> _source;
|
|
|
|
std::unique_ptr<webrtc::VideoEncoderFactory> hardwareVideoEncoderFactory;
|
|
|
|
std::unique_ptr<webrtc::VideoEncoderFactory> softwareVideoEncoderFactory;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace tgcalls
|
|
|
|
|
|
|
|
#endif
|