32 #include <api/video/i420_buffer.h> 33 #include <libyuv/convert.h> 34 #include <libyuv/video_common.h> 35 #include <media/base/video_broadcaster.h> 36 #include <media/base/video_common.h> 45 namespace visualization {
46 namespace webrtc_server {
48 class ImageCapturer :
public rtc::VideoSourceInterface<webrtc::VideoFrame> {
51 const std::map<std::string, std::string>& opts);
55 const std::string& url,
56 const std::map<std::string, std::string>& opts);
58 ImageCapturer(
const std::map<std::string, std::string>& opts);
61 rtc::VideoSinkInterface<webrtc::VideoFrame>* sink,
62 const rtc::VideoSinkWants& wants)
override;
65 rtc::VideoSinkInterface<webrtc::VideoFrame>* sink)
override;
77 static rtc::scoped_refptr<BitmapTrackSourceInterface>
Create(
78 const std::string& window_uid,
79 const std::map<std::string, std::string>& opts) {
80 std::unique_ptr<ImageCapturer> capturer =
85 rtc::scoped_refptr<BitmapTrackSourceInterface> video_source =
86 new rtc::RefCountedObject<ImageTrackSource>(
91 void OnFrame(
const std::shared_ptr<core::Tensor>&
frame)
final override {
92 capturer_->OnCaptureResult(
frame);
100 rtc::VideoSourceInterface<webrtc::VideoFrame>* source()
override {
101 return capturer_.get();
103 std::unique_ptr<ImageCapturer> capturer_;
ImageTrackSource(std::unique_ptr< ImageCapturer > capturer)
Definition: ImageCapturer.h:96
int height_
Definition: ImageCapturer.h:71
virtual ~ImageCapturer()
Definition: ImageCapturer.cpp:48
Definition: ImageCapturer.h:48
Definition: BitmapTrackSource.h:80
Definition: Optional.h:912
int width_
Definition: ImageCapturer.h:70
virtual void AddOrUpdateSink(rtc::VideoSinkInterface< webrtc::VideoFrame > *sink, const rtc::VideoSinkWants &wants) override
Definition: ImageCapturer.cpp:116
rtc::VideoBroadcaster broadcaster_
Definition: ImageCapturer.h:72
ImageCapturer(const std::string &url_, const std::map< std::string, std::string > &opts)
Definition: ImageCapturer.cpp:44
void OnCaptureResult(const std::shared_ptr< core::Tensor > &frame)
Definition: ImageCapturer.cpp:67
void OnFrame(const std::shared_ptr< core::Tensor > &frame) final override
Definition: ImageCapturer.h:91
virtual void RemoveSink(rtc::VideoSinkInterface< webrtc::VideoFrame > *sink) override
Definition: ImageCapturer.cpp:122
Definition: PinholeCameraIntrinsic.cpp:35
Rect frame
Definition: BitmapWindowSystem.cpp:48
Definition: ImageCapturer.h:75
static rtc::scoped_refptr< BitmapTrackSourceInterface > Create(const std::string &window_uid, const std::map< std::string, std::string > &opts)
Definition: ImageCapturer.h:77
static ImageCapturer * Create(const std::string &url, const std::map< std::string, std::string > &opts)
Definition: ImageCapturer.cpp:50