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

#include <camera_streamer.h>

Inheritance diagram for cuttlefish::webrtc_streaming::CameraStreamer:
Inheritance graph
[legend]
Collaboration diagram for cuttlefish::webrtc_streaming::CameraStreamer:
Collaboration graph
[legend]

Public Member Functions

 CameraStreamer (unsigned int port, unsigned int cid, bool vhost_user)
 
 ~CameraStreamer ()
 
 CameraStreamer (const CameraStreamer &other)=delete
 
CameraStreameroperator= (const CameraStreamer &other)=delete
 
void OnFrame (const webrtc::VideoFrame &frame) override
 
void HandleMessage (const Json::Value &message) override
 
void HandleMessage (const std::vector< char > &message) override
 
- Public Member Functions inherited from cuttlefish::CameraController
virtual ~CameraController ()=default
 
virtual void HandleMessage (const std::vector< char > &message)=0
 
virtual void HandleMessage (const Json::Value &message)=0
 
virtual void SendMessage (const Json::Value &msg)
 
virtual void SetMessageSender (std::function< bool(const Json::Value &msg)> sender)
 

Private Types

using Resolution = { int32_t width
 

Private Member Functions

bool ForwardClientMessage (const Json::Value &message)
 
Resolution GetResolutionFromSettings (const Json::Value &settings)
 
bool VsockSendYUVFrame (const webrtc::I420BufferInterface *frame)
 
bool IsConnectionReady ()
 
void StartReadLoop ()
 
void Disconnect ()
 

Private Attributes

int32_t height
 
std::future< bool > pending_connection_
 
VsockClientConnection cvd_connection_
 
std::atomic< Resolutionresolution_
 
std::mutex settings_mutex_
 
std::string settings_buffer_
 
std::mutex frame_mutex_
 
std::mutex onframe_mutex_
 
rtc::scoped_refptr< webrtc::I420Buffer > scaled_frame_
 
unsigned int cid_
 
unsigned int port_
 
bool vhost_user_
 
std::thread reader_thread_
 
std::atomic< bool > camera_session_active_
 

Additional Inherited Members

- Protected Attributes inherited from cuttlefish::CameraController
std::function< bool(const Json::Value &msg)> message_sender_
 

Member Typedef Documentation

◆ Resolution

Constructor & Destructor Documentation

◆ CameraStreamer() [1/2]

cuttlefish::webrtc_streaming::CameraStreamer::CameraStreamer ( unsigned int  port,
unsigned int  cid,
bool  vhost_user 
)

◆ ~CameraStreamer()

cuttlefish::webrtc_streaming::CameraStreamer::~CameraStreamer ( )

◆ CameraStreamer() [2/2]

cuttlefish::webrtc_streaming::CameraStreamer::CameraStreamer ( const CameraStreamer other)
delete

Member Function Documentation

◆ Disconnect()

void cuttlefish::webrtc_streaming::CameraStreamer::Disconnect ( )
private

◆ ForwardClientMessage()

bool cuttlefish::webrtc_streaming::CameraStreamer::ForwardClientMessage ( const Json::Value &  message)
private

◆ GetResolutionFromSettings()

CameraStreamer::Resolution cuttlefish::webrtc_streaming::CameraStreamer::GetResolutionFromSettings ( const Json::Value &  settings)
private

◆ HandleMessage() [1/2]

void cuttlefish::webrtc_streaming::CameraStreamer::HandleMessage ( const Json::Value &  message)
overridevirtual

◆ HandleMessage() [2/2]

void cuttlefish::webrtc_streaming::CameraStreamer::HandleMessage ( const std::vector< char > &  message)
overridevirtual

◆ IsConnectionReady()

bool cuttlefish::webrtc_streaming::CameraStreamer::IsConnectionReady ( )
private

◆ OnFrame()

void cuttlefish::webrtc_streaming::CameraStreamer::OnFrame ( const webrtc::VideoFrame &  frame)
override

◆ operator=()

CameraStreamer & cuttlefish::webrtc_streaming::CameraStreamer::operator= ( const CameraStreamer other)
delete

◆ StartReadLoop()

void cuttlefish::webrtc_streaming::CameraStreamer::StartReadLoop ( )
private

◆ VsockSendYUVFrame()

bool cuttlefish::webrtc_streaming::CameraStreamer::VsockSendYUVFrame ( const webrtc::I420BufferInterface *  frame)
private

Member Data Documentation

◆ camera_session_active_

std::atomic<bool> cuttlefish::webrtc_streaming::CameraStreamer::camera_session_active_
private

◆ cid_

unsigned int cuttlefish::webrtc_streaming::CameraStreamer::cid_
private

◆ cvd_connection_

VsockClientConnection cuttlefish::webrtc_streaming::CameraStreamer::cvd_connection_
private

◆ frame_mutex_

std::mutex cuttlefish::webrtc_streaming::CameraStreamer::frame_mutex_
private

◆ height

int32_t cuttlefish::webrtc_streaming::CameraStreamer::height
private

◆ onframe_mutex_

std::mutex cuttlefish::webrtc_streaming::CameraStreamer::onframe_mutex_
private

◆ pending_connection_

std::future<bool> cuttlefish::webrtc_streaming::CameraStreamer::pending_connection_
private

◆ port_

unsigned int cuttlefish::webrtc_streaming::CameraStreamer::port_
private

◆ reader_thread_

std::thread cuttlefish::webrtc_streaming::CameraStreamer::reader_thread_
private

◆ resolution_

std::atomic<Resolution> cuttlefish::webrtc_streaming::CameraStreamer::resolution_
private

◆ scaled_frame_

rtc::scoped_refptr<webrtc::I420Buffer> cuttlefish::webrtc_streaming::CameraStreamer::scaled_frame_
private

◆ settings_buffer_

std::string cuttlefish::webrtc_streaming::CameraStreamer::settings_buffer_
private

◆ settings_mutex_

std::mutex cuttlefish::webrtc_streaming::CameraStreamer::settings_mutex_
private

◆ vhost_user_

bool cuttlefish::webrtc_streaming::CameraStreamer::vhost_user_
private

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