13#include <api/scoped_refptr.h>
14#include <libyuv/convert.h>
15#include <libyuv/video_common.h>
16#include <media/base/video_broadcaster.h>
17#include <media/base/video_common.h>
18#include <rtc_base/ref_counted_object.h>
27namespace visualization {
28namespace webrtc_server {
30class ImageCapturer :
public webrtc::VideoSourceInterface<webrtc::VideoFrame> {
33 const std::map<std::string, std::string>& opts);
37 const std::string& url,
38 const std::map<std::string, std::string>& opts);
40 ImageCapturer(
const std::map<std::string, std::string>& opts);
43 webrtc::VideoSinkInterface<webrtc::VideoFrame>* sink,
44 const webrtc::VideoSinkWants& wants)
override;
47 webrtc::VideoSinkInterface<webrtc::VideoFrame>* sink)
override;
59 static webrtc::scoped_refptr<BitmapTrackSourceInterface>
Create(
60 const std::string& window_uid,
61 const std::map<std::string, std::string>& opts) {
62 std::unique_ptr<ImageCapturer> capturer =
67 return webrtc::scoped_refptr<BitmapTrackSourceInterface>(
68 new webrtc::RefCountedObject<ImageTrackSource>(
69 std::move(capturer)));
72 void OnFrame(
const std::shared_ptr<core::Tensor>&
frame)
final override {
73 capturer_->OnCaptureResult(
frame);
81 webrtc::VideoSourceInterface<webrtc::VideoFrame>* source()
override {
82 return capturer_.get();
84 std::unique_ptr<ImageCapturer> capturer_;
Rect frame
Definition BitmapWindowSystem.cpp:31
Definition BitmapTrackSource.h:61
Definition ImageCapturer.h:30
int width_
Definition ImageCapturer.h:52
int height_
Definition ImageCapturer.h:53
virtual ~ImageCapturer()
Definition ImageCapturer.cpp:32
static ImageCapturer * Create(const std::string &url, const std::map< std::string, std::string > &opts)
Definition ImageCapturer.cpp:34
virtual void RemoveSink(webrtc::VideoSinkInterface< webrtc::VideoFrame > *sink) override
Definition ImageCapturer.cpp:113
void OnCaptureResult(const std::shared_ptr< core::Tensor > &frame)
Definition ImageCapturer.cpp:51
virtual void AddOrUpdateSink(webrtc::VideoSinkInterface< webrtc::VideoFrame > *sink, const webrtc::VideoSinkWants &wants) override
Definition ImageCapturer.cpp:107
webrtc::VideoBroadcaster broadcaster_
Definition ImageCapturer.h:54
Definition ImageCapturer.h:57
void OnFrame(const std::shared_ptr< core::Tensor > &frame) final override
Definition ImageCapturer.h:72
ImageTrackSource(std::unique_ptr< ImageCapturer > capturer)
Definition ImageCapturer.h:77
static webrtc::scoped_refptr< BitmapTrackSourceInterface > Create(const std::string &window_uid, const std::map< std::string, std::string > &opts)
Definition ImageCapturer.h:59
Definition PinholeCameraIntrinsic.cpp:16