Android-cuttlefish cvd tool
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
cuttlefish::DisplayHandler Class Reference

#include <display_handler.h>

Collaboration diagram for cuttlefish::DisplayHandler:
Collaboration graph
[legend]

Classes

struct  BufferInfo
 

Public Types

using ScreenConnector = cuttlefish::ScreenConnector< WebRtcScProcessedFrame >
 
using GenerateProcessedFrameCallback = ScreenConnector::GenerateProcessedFrameCallback
 
using WebRtcScProcessedFrame = cuttlefish::WebRtcScProcessedFrame
 

Public Member Functions

 DisplayHandler (webrtc_streaming::Streamer &streamer, ScreenshotHandler &screenshot_handler, ScreenConnector &screen_connector, std::optional< std::unique_ptr< CompositionManager > > composition_manager)
 
 ~DisplayHandler ()
 
void Loop ()
 
void SendLastFrame (std::optional< uint32_t > display_number)
 
void AddDisplayClient ()
 
void RemoveDisplayClient ()
 

Private Types

enum class  RepeaterState { RUNNING , STOPPED }
 

Private Member Functions

GenerateProcessedFrameCallback GetScreenConnectorCallback ()
 
void SendBuffers (std::map< uint32_t, std::shared_ptr< BufferInfo > > buffers)
 
void RepeatFramesPeriodically ()
 

Private Attributes

std::optional< std::unique_ptr< CompositionManager > > composition_manager_
 
std::map< uint32_t, std::shared_ptr< webrtc_streaming::VideoSink > > display_sinks_
 
webrtc_streaming::Streamerstreamer_
 
ScreenshotHandlerscreenshot_handler_
 
ScreenConnectorscreen_connector_
 
std::map< uint32_t, std::shared_ptr< BufferInfo > > display_last_buffers_
 
std::mutex last_buffers_mutex_
 
std::mutex send_mutex_
 
std::thread frame_repeater_
 
RepeaterState repeater_state_ = RepeaterState::RUNNING
 
int num_active_clients_ = 0
 
std::mutex repeater_state_mutex_
 
std::condition_variable repeater_state_condvar_
 

Member Typedef Documentation

◆ GenerateProcessedFrameCallback

◆ ScreenConnector

◆ WebRtcScProcessedFrame

Member Enumeration Documentation

◆ RepeaterState

Enumerator
RUNNING 
STOPPED 

Constructor & Destructor Documentation

◆ DisplayHandler()

cuttlefish::DisplayHandler::DisplayHandler ( webrtc_streaming::Streamer streamer,
ScreenshotHandler screenshot_handler,
ScreenConnector screen_connector,
std::optional< std::unique_ptr< CompositionManager > >  composition_manager 
)

◆ ~DisplayHandler()

cuttlefish::DisplayHandler::~DisplayHandler ( )

Member Function Documentation

◆ AddDisplayClient()

void cuttlefish::DisplayHandler::AddDisplayClient ( )

◆ GetScreenConnectorCallback()

DisplayHandler::GenerateProcessedFrameCallback cuttlefish::DisplayHandler::GetScreenConnectorCallback ( )
private

◆ Loop()

void cuttlefish::DisplayHandler::Loop ( )

◆ RemoveDisplayClient()

void cuttlefish::DisplayHandler::RemoveDisplayClient ( )

◆ RepeatFramesPeriodically()

void cuttlefish::DisplayHandler::RepeatFramesPeriodically ( )
private

◆ SendBuffers()

void cuttlefish::DisplayHandler::SendBuffers ( std::map< uint32_t, std::shared_ptr< BufferInfo > >  buffers)
private

◆ SendLastFrame()

void cuttlefish::DisplayHandler::SendLastFrame ( std::optional< uint32_t >  display_number)

Member Data Documentation

◆ composition_manager_

std::optional<std::unique_ptr<CompositionManager> > cuttlefish::DisplayHandler::composition_manager_
private

◆ display_last_buffers_

std::map<uint32_t, std::shared_ptr<BufferInfo> > cuttlefish::DisplayHandler::display_last_buffers_
private

◆ display_sinks_

std::map<uint32_t, std::shared_ptr<webrtc_streaming::VideoSink> > cuttlefish::DisplayHandler::display_sinks_
private

◆ frame_repeater_

std::thread cuttlefish::DisplayHandler::frame_repeater_
private

◆ last_buffers_mutex_

std::mutex cuttlefish::DisplayHandler::last_buffers_mutex_
private

◆ num_active_clients_

int cuttlefish::DisplayHandler::num_active_clients_ = 0
private

◆ repeater_state_

RepeaterState cuttlefish::DisplayHandler::repeater_state_ = RepeaterState::RUNNING
private

◆ repeater_state_condvar_

std::condition_variable cuttlefish::DisplayHandler::repeater_state_condvar_
private

◆ repeater_state_mutex_

std::mutex cuttlefish::DisplayHandler::repeater_state_mutex_
private

◆ screen_connector_

ScreenConnector& cuttlefish::DisplayHandler::screen_connector_
private

◆ screenshot_handler_

ScreenshotHandler& cuttlefish::DisplayHandler::screenshot_handler_
private

◆ send_mutex_

std::mutex cuttlefish::DisplayHandler::send_mutex_
private

◆ streamer_

webrtc_streaming::Streamer& cuttlefish::DisplayHandler::streamer_
private

The documentation for this class was generated from the following files: