14 #include <api/video/i420_buffer.h>
15 #include <libyuv/convert.h>
16 #include <libyuv/video_common.h>
17 #include <media/base/video_broadcaster.h>
18 #include <media/base/video_common.h>
26 namespace visualization {
27 namespace webrtc_server {
29 class ImageCapturer :
public rtc::VideoSourceInterface<webrtc::VideoFrame> {
32 const std::map<std::string, std::string>& opts);
36 const std::string& url,
37 const std::map<std::string, std::string>& opts);
39 ImageCapturer(
const std::map<std::string, std::string>& opts);
42 rtc::VideoSinkInterface<webrtc::VideoFrame>* sink,
43 const rtc::VideoSinkWants& wants)
override;
46 rtc::VideoSinkInterface<webrtc::VideoFrame>* sink)
override;
58 static rtc::scoped_refptr<BitmapTrackSourceInterface>
Create(
59 const std::string& window_uid,
60 const std::map<std::string, std::string>& opts) {
61 std::unique_ptr<ImageCapturer> capturer =
66 rtc::scoped_refptr<BitmapTrackSourceInterface> video_source =
67 new rtc::RefCountedObject<ImageTrackSource>(
72 void OnFrame(
const std::shared_ptr<core::Tensor>&
frame)
final override {
73 capturer_->OnCaptureResult(
frame);
81 rtc::VideoSourceInterface<webrtc::VideoFrame>* source()
override {
82 return capturer_.get();
84 std::unique_ptr<ImageCapturer> capturer_;
static ImageCapturer * Create(const std::string &url, const std::map< std::string, std::string > &opts)
ImageCapturer(const std::string &url_, const std::map< std::string, std::string > &opts)
virtual void RemoveSink(rtc::VideoSinkInterface< webrtc::VideoFrame > *sink) override
virtual void AddOrUpdateSink(rtc::VideoSinkInterface< webrtc::VideoFrame > *sink, const rtc::VideoSinkWants &wants) override
rtc::VideoBroadcaster broadcaster_
void OnCaptureResult(const std::shared_ptr< core::Tensor > &frame)
ImageTrackSource(std::unique_ptr< ImageCapturer > capturer)
void OnFrame(const std::shared_ptr< core::Tensor > &frame) final override
static rtc::scoped_refptr< BitmapTrackSourceInterface > Create(const std::string &window_uid, const std::map< std::string, std::string > &opts)
Generic file read and write utility for python interface.