33class CompositionManager;
45 std::unique_ptr<VideoFrameBuffer>
buf_;
46 std::unique_ptr<WebRtcScProcessedFrame>
Clone() {
48 auto cloned_frame = std::make_unique<WebRtcScProcessedFrame>();
50 cloned_frame->buf_ =
buf_->Clone();
56namespace webrtc_streaming {
70 std::optional<std::unique_ptr<CompositionManager>> composition_manager);
73 [[noreturn]]
void Loop();
83 std::shared_ptr<VideoFrameBuffer>
buffer;
90 void SendBuffers(std::map<uint32_t, std::shared_ptr<BufferInfo>> buffers);
94 std::map<uint32_t, std::shared_ptr<webrtc_streaming::VideoSink>>
Definition: display_handler.h:60
void SendLastFrame(std::optional< uint32_t > display_number)
Definition: display_handler.cpp:149
std::mutex last_buffers_mutex_
Definition: display_handler.h:100
std::optional< std::unique_ptr< CompositionManager > > composition_manager_
Definition: display_handler.h:93
void SendBuffers(std::map< uint32_t, std::shared_ptr< BufferInfo > > buffers)
Definition: display_handler.cpp:181
std::condition_variable repeater_state_condvar_
Definition: display_handler.h:108
int num_active_clients_
Definition: display_handler.h:106
RepeaterState repeater_state_
Definition: display_handler.h:104
void RemoveDisplayClient()
Definition: display_handler.cpp:277
void AddDisplayClient()
Definition: display_handler.cpp:270
void RepeatFramesPeriodically()
Definition: display_handler.cpp:204
webrtc_streaming::Streamer & streamer_
Definition: display_handler.h:96
void Loop()
Definition: display_handler.cpp:128
RepeaterState
Definition: display_handler.h:85
DisplayHandler(webrtc_streaming::Streamer &streamer, ScreenshotHandler &screenshot_handler, ScreenConnector &screen_connector, std::optional< std::unique_ptr< CompositionManager > > composition_manager)
Definition: display_handler.cpp:37
GenerateProcessedFrameCallback GetScreenConnectorCallback()
Definition: display_handler.cpp:98
std::map< uint32_t, std::shared_ptr< webrtc_streaming::VideoSink > > display_sinks_
Definition: display_handler.h:95
~DisplayHandler()
Definition: display_handler.cpp:88
std::mutex repeater_state_mutex_
Definition: display_handler.h:107
std::map< uint32_t, std::shared_ptr< BufferInfo > > display_last_buffers_
Definition: display_handler.h:99
std::thread frame_repeater_
Definition: display_handler.h:102
ScreenConnector::GenerateProcessedFrameCallback GenerateProcessedFrameCallback
Definition: display_handler.h:64
ScreenConnector & screen_connector_
Definition: display_handler.h:98
ScreenshotHandler & screenshot_handler_
Definition: display_handler.h:97
std::mutex send_mutex_
Definition: display_handler.h:101
Definition: screen_connector.h:45
std::function< void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint8_t *, ProcessedFrameType &msg)> GenerateProcessedFrameCallback
Definition: screen_connector.h:95
Definition: screenshot_handler.h:32
Definition: streamer.h:74
Definition: alloc_driver.h:20
Definition: display_handler.h:81
std::shared_ptr< VideoFrameBuffer > buffer
Definition: display_handler.h:83
std::chrono::system_clock::time_point last_sent_time_stamp
Definition: display_handler.h:82
Definition: screen_connector_common.h:63
Definition: display_handler.h:43
std::unique_ptr< WebRtcScProcessedFrame > Clone()
Definition: display_handler.h:46
std::unique_ptr< VideoFrameBuffer > buf_
Definition: display_handler.h:45