25 #include <absl/types/optional.h>
26 #include <api/notifier.h>
27 #include <api/sequence_checker.h>
28 #include <api/video/recordable_encoded_frame.h>
29 #include <api/video/video_frame.h>
30 #include <api/video/video_sink_interface.h>
31 #include <api/video/video_source_interface.h>
32 #include <media/base/media_channel.h>
37 namespace visualization {
38 namespace webrtc_server {
58 virtual void OnFrame(
const std::shared_ptr<core::Tensor>&
frame) = 0;
64 void SetState(webrtc::MediaSourceInterface::SourceState new_state);
65 webrtc::MediaSourceInterface::SourceState
state()
const override {
68 bool remote()
const override {
return remote_; }
73 bool GetStats(Stats* stats)
override {
return false; }
75 const rtc::VideoSinkWants& wants)
override;
76 void RemoveSink(rtc::VideoSinkInterface<webrtc::VideoFrame>* sink)
override;
82 rtc::VideoSinkInterface<webrtc::RecordableEncodedFrame>* sink)
85 virtual void OnFrame(
const std::shared_ptr<core::Tensor>&
frame)
override {
91 virtual rtc::VideoSourceInterface<webrtc::VideoFrame>*
source() = 0;
94 webrtc::SequenceChecker worker_thread_checker_;
95 webrtc::MediaSourceInterface::SourceState state_;
virtual void OnFrame(const std::shared_ptr< core::Tensor > &frame)=0
bool remote() const override
bool is_screencast() const override
webrtc::MediaSourceInterface::SourceState state() const override
void GenerateKeyFrame() override
void AddEncodedSink(rtc::VideoSinkInterface< webrtc::RecordableEncodedFrame > *sink) override
void RemoveSink(rtc::VideoSinkInterface< webrtc::VideoFrame > *sink) override
bool GetStats(Stats *stats) override
void SetState(webrtc::MediaSourceInterface::SourceState new_state)
absl::optional< bool > needs_denoising() const override
void AddOrUpdateSink(rtc::VideoSinkInterface< webrtc::VideoFrame > *sink, const rtc::VideoSinkWants &wants) override
virtual void OnFrame(const std::shared_ptr< core::Tensor > &frame) override
virtual rtc::VideoSourceInterface< webrtc::VideoFrame > * source()=0
void RemoveEncodedSink(rtc::VideoSinkInterface< webrtc::RecordableEncodedFrame > *sink) override
bool SupportsEncodedOutput() const override
BitmapTrackSource(bool remote)
constexpr nullopt_t nullopt
Generic file read and write utility for python interface.