Sunshine master
Self-hosted game stream host for Moonlight.
portal::portal_t Class Reference
Inheritance diagram for portal::portal_t:
[legend]
Collaboration diagram for portal::portal_t:
[legend]

Public Member Functions

bool check_stream_dead (platf::capture_e &out_status) override
 
int configure_stream (const std::string &display_name, int &out_pipewire_fd, uint32_t &out_pipewire_node, uint64_t &out_pipewire_object_serial) override
 Configure the pipewire stream.
 
- Public Member Functions inherited from pipewire::pipewire_display_t
std::shared_ptr< platf::img_talloc_img () override
 
platf::capture_e capture (const push_captured_image_cb_t &push_captured_image_cb, const pull_free_image_cb_t &pull_free_image_cb, bool *cursor) override
 Capture a frame.
 
int dummy_img (platf::img_t *img) override
 
bool get_hdr_metadata (SS_HDR_METADATA &metadata) override
 
int init (platf::mem_type_e hwdevice_type, const std::string &display_name, const ::video::config_t &config)
 
bool is_hdr () override
 
std::unique_ptr< platf::avcodec_encode_device_tmake_avcodec_encode_device (platf::pix_fmt_e pix_fmt) override
 
platf::capture_e snapshot (const pull_free_image_cb_t &pull_free_image_cb, std::shared_ptr< platf::img_t > &img_out, std::chrono::milliseconds timeout, bool show_cursor)
 
virtual void verify_and_update_display_parameters ()
 Verify and update display parameters for logical dimensions, desktop dimensions and logical desktop dimensions (default is adapted from wlgrab)
 
- Public Member Functions inherited from platf::display_t
virtual bool is_codec_supported (std::string_view name, const ::video::config_t &config)
 Check that a given codec is supported by the display device.
 
virtual std::unique_ptr< nvenc_encode_device_tmake_nvenc_encode_device (pix_fmt_e pix_fmt)
 

Public Attributes

dbus_t dbus
 
- Public Attributes inherited from platf::display_t
int env_height {0}
 
int env_logical_height {0}
 
int env_logical_width {0}
 
int env_width {0}
 
int height {0}
 
int logical_height {0}
 
int logical_width {0}
 
int offset_x {0}
 
int offset_y {0}
 
int width {0}
 

Static Public Attributes

static std::atomic< bool > negotiate_maxframerate {true}
 

Additional Inherited Members

- Public Types inherited from platf::display_t
using pull_free_image_cb_t = std::function<bool(std::shared_ptr<img_t> &img_out)>
 Get free image from pool. Calls must be synchronized. Blocks until there is free image in the pool or capture is interrupted.
 
using push_captured_image_cb_t = std::function<bool(std::shared_ptr<img_t> &&img, bool frame_captured)>
 Callback for when a new image is ready. When display has a new image ready or a timeout occurs, this callback will be called with the image. If a frame was captured, frame_captured will be true. If a timeout occurred, it will be false.
 
- Static Public Member Functions inherited from pipewire::pipewire_display_t
static bool init_pipewire_and_check_hwdevice_type (platf::mem_type_e hwdevice_type)
 
- Protected Attributes inherited from pipewire::pipewire_display_t
pipewire_t pipewire
 
std::shared_ptr< shared_state_tshared_state
 
- Protected Attributes inherited from platf::display_t
logging::time_delta_periodic_logger sleep_overshoot_logger = {debug, "Frame capture sleep overshoot"}
 

Member Function Documentation

◆ check_stream_dead()

bool portal::portal_t::check_stream_dead ( platf::capture_e & out_status)
inlineoverridevirtual

Reimplemented from pipewire::pipewire_display_t.

◆ configure_stream()

int portal::portal_t::configure_stream ( const std::string & display_name,
int & out_pipewire_fd,
uint32_t & out_pipewire_node,
uint64_t & out_pipewire_objectserial )
inlineoverridevirtual

Configure the pipewire stream.

Parameters
display_nameprovide a stream for this display_name
out_pipewire_fdset to the pipewire fd for the stream during function call (or -1 for using the local context)
out_pipewire_nodeset to the pipewire node of the stream during function call (or PW_ID_ANY to refer to object_serial)
out_pipewire_objectserialset the pipewire object serial of the stream during function call
Returns
0 if the stream successfully configured

Implements pipewire::pipewire_display_t.


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