33class CompositionManager;
45 std::unique_ptr<CvdVideoFrameBuffer>
buf_;
46 std::unique_ptr<WebRtcScProcessedFrame>
Clone() {
49 auto cloned_frame = std::make_unique<WebRtcScProcessedFrame>();
50 cloned_frame->buf_ = std::unique_ptr<CvdVideoFrameBuffer>(new_buffer);
55namespace webrtc_streaming {
69 std::optional<std::unique_ptr<CompositionManager>> composition_manager);
72 [[noreturn]]
void Loop();
82 std::shared_ptr<VideoFrameBuffer>
buffer;
89 void SendBuffers(std::map<uint32_t, std::shared_ptr<BufferInfo>> buffers);
93 std::map<uint32_t, std::shared_ptr<webrtc_streaming::VideoSink>>
Definition: cvd_video_frame_buffer.h:26
Definition: display_handler.h:59
void SendLastFrame(std::optional< uint32_t > display_number)
Definition: display_handler.cpp:155
std::mutex last_buffers_mutex_
Definition: display_handler.h:99
std::optional< std::unique_ptr< CompositionManager > > composition_manager_
Definition: display_handler.h:92
void SendBuffers(std::map< uint32_t, std::shared_ptr< BufferInfo > > buffers)
Definition: display_handler.cpp:187
std::condition_variable repeater_state_condvar_
Definition: display_handler.h:107
int num_active_clients_
Definition: display_handler.h:105
RepeaterState repeater_state_
Definition: display_handler.h:103
void RemoveDisplayClient()
Definition: display_handler.cpp:280
void AddDisplayClient()
Definition: display_handler.cpp:273
void RepeatFramesPeriodically()
Definition: display_handler.cpp:210
webrtc_streaming::Streamer & streamer_
Definition: display_handler.h:95
void Loop()
Definition: display_handler.cpp:133
RepeaterState
Definition: display_handler.h:84
DisplayHandler(webrtc_streaming::Streamer &streamer, ScreenshotHandler &screenshot_handler, ScreenConnector &screen_connector, std::optional< std::unique_ptr< CompositionManager > > composition_manager)
Definition: display_handler.cpp:31
GenerateProcessedFrameCallback GetScreenConnectorCallback()
Definition: display_handler.cpp:92
std::map< uint32_t, std::shared_ptr< webrtc_streaming::VideoSink > > display_sinks_
Definition: display_handler.h:94
~DisplayHandler()
Definition: display_handler.cpp:82
std::mutex repeater_state_mutex_
Definition: display_handler.h:106
std::map< uint32_t, std::shared_ptr< BufferInfo > > display_last_buffers_
Definition: display_handler.h:98
std::thread frame_repeater_
Definition: display_handler.h:101
ScreenConnector::GenerateProcessedFrameCallback GenerateProcessedFrameCallback
Definition: display_handler.h:63
ScreenConnector & screen_connector_
Definition: display_handler.h:97
ScreenshotHandler & screenshot_handler_
Definition: display_handler.h:96
std::mutex send_mutex_
Definition: display_handler.h:100
Definition: screen_connector.h:45
std::function< void(std::uint32_t, std::uint32_t, std::uint32_t, std::uint32_t, std::uint32_t, std::uint8_t *, ProcessedFrameType &msg)> GenerateProcessedFrameCallback
Definition: screen_connector.h:93
Definition: screenshot_handler.h:29
Definition: streamer.h:74
Definition: alloc_utils.cpp:23
Definition: display_handler.h:80
std::shared_ptr< VideoFrameBuffer > buffer
Definition: display_handler.h:82
std::chrono::system_clock::time_point last_sent_time_stamp
Definition: display_handler.h:81
Definition: screen_connector_common.h:63
Definition: display_handler.h:43
std::unique_ptr< WebRtcScProcessedFrame > Clone()
Definition: display_handler.h:46
std::unique_ptr< CvdVideoFrameBuffer > buf_
Definition: display_handler.h:45