Sunshine master
Self-hosted game stream host for Moonlight.
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345]
 Cutil::__either< V, X, Y >
 Cutil::__either< false, X, Y >Type selector that chooses the second type when the condition is false
 Cutil::__either< true, X, Y >Type selector that chooses the first type when the condition is true
 Cutil::__false_v< T, V >
 Cutil::__false_v< T, std::enable_if_t< instantiation_of_v< std::optional, T > > >Helper specialization for optional values
 Cutil::__false_v< T, std::enable_if_t< is_pointer_v< T > > >Enables an overload only when the provided type is a pointer
 Cutil::__false_v< T, std::enable_if_t< std::is_same_v< T, bool > > >Type trait comparing a value with a boolean template argument
 Cplatf::dxgi::display_base_t::_D3DKMT_CLOSEADAPTERWin32 D3DKMT adapter-close request structure
 Cplatf::dxgi::display_base_t::_D3DKMT_OPENADAPTERFROMLUIDWin32 D3DKMT adapter-open request structure
 Cplatf::dxgi::display_base_t::_D3DKMT_QUERYADAPTERINFOWin32 D3DKMT adapter information query
 Cplatf::dxgi::display_base_t::_D3DKMT_WDDM_2_7_CAPSWin32 D3DKMT WDDM 2.7 capability flags
 C_DNS_SERVICE_CANCELWindows DNS-SD cancellation request data
 C_DNS_SERVICE_INSTANCEWindows DNS-SD service instance registration data
 C_DNS_SERVICE_REGISTER_REQUESTWindows DNS-SD service registration request data
 Ctask_pool_util::_ImplBaseType-erased task interface stored by the task pool
 Cplatf::pa::add_const_helper< B, T >
 Cplatf::pa::add_const_helper< false, T >Template helper that leaves non-const inputs mutable
 Cplatf::pa::add_const_helper< true, T >Template helper that preserves constness for const inputs
 Cnlohmann::adl_serializer< data_t >JSON serializer specialization for undo-data records
 Cnlohmann::adl_serializer< opengl_swapchain_t >JSON serializer specialization for OpenGL swapchain settings
 Cnlohmann::adl_serializer< std::optional< T > >Helper specialization for optional values
 Csafe::alarm_raw_t< T >Alarm primitive used to wait for and raise shutdown-style signals
 Cargument_type< T >
 Cargument_type< T(U)>Extracts the argument type from a single-argument function signature
 Cargument_type< void(UPNPUrls)>
 Cplatf::audio_control_tPlatform audio controller that manages sinks and microphone capture
 Caudio::audio_ctx_tShared audio device state used while streams are active
 Cstream::audio_fec_packet_tPacked RTP and FEC headers for an audio recovery packet
 Cstream::audio_packet_tPacked RTP header for an audio packet
 Cconfig::audio_tAudio capture and encoder settings loaded from configuration
 CAudioConverterInputDataData structure for AudioConverter input callback. Contains audio data and metadata needed for format conversion during audio processing
 Cplatf::av_pixel_buf_tCoreVideo pixel buffer retained by an AV image wrapper
 Cplatf::av_sample_buf_tCoreMedia sample buffer retained by an AV image wrapper
 CAVAudioIOProcDataIOProc client data structure for Core Audio system taps. Contains configuration and conversion data for real-time audio processing
 C<AVCaptureAudioDataOutputSampleBufferDelegate>
 C<AVCaptureVideoDataOutputSampleBufferDelegate>
 Cvideo::avcodec_colorspace_tFFmpeg colorimetry values used by AVCodec encoders
 Cva::AVVAAPIDeviceContext
 Cboost::process::v1::basic_environment< Char >
 Cplatf::batched_send_info_tBuffers and native metadata for one batched send operation
 Cstream::broadcast_ctx_tUDP broadcast socket and target address state
 Cplatf::buffer_descriptor_tPlatform buffer pointer and size for batched socket sends
 Cgl::buffer_tEGL image buffer with plane descriptors and imported GL textures
 Cutil::buffer_t< T >Owning contiguous buffer with an explicit logical element count
 Cutil::buffer_t< char >
 Cutil::buffer_t< float >
 Cutil::buffer_t< GLint >
 Cutil::buffer_t< GLuint >
 Cutil::buffer_t< std::uint8_t >
 Cutil::buffer_t< uint8_t * >
 Cplatf::kms::cap_sys_adminTemporarily owns CAP_SYS_ADMIN while opening DRM capture resources
 Cvideo::capture_ctx_tCapture thread context shared with the encoder session
 Cvideo::capture_thread_async_ctx_tAsynchronous capture thread state
 Cvideo::capture_thread_sync_ctx_tSynchronous capture thread state
 CCaptureSessionMacOS capture session and video output handles
 Cplatf::kms::card_descriptor_tDRM card, device path, and render-node metadata
 Cplatf::kms::card_tDRM card, render node, and plane metadata used for KMS capture
 Ccrypto::cert_chain_tOwns the certificate chain returned by Sunshine's TLS certificate loader
 Ccrypto::cipher::cipher_tAES-GCM encrypt/decrypt context pair used for GameStream messages
 Cnvhttp::client_tPersisted pairing data for one Moonlight client
 Cconfig::sunshine_t::cmd_tCommand-line options parsed before configuration loading
 Cvideo::encoder_t::codec_tCodec capabilities for AV1, HEVC, or H.264
 CCodedBitstreamFragment
 Cvideo::color_tPair of Sunshine and AVCodec colorimetry descriptions
 Cnvhttp::conf_intern_tInternal HTTPS credential paths for the configuration server
 Caudio::config_tAudio capture and encoder settings for a stream
 Cstream::config_tStream configuration shared by capture and network senders
 Cvideo::config_tEncoding configuration requested by a remote client
 Cdisplay_device::configuration_disabled_tag_tA tag structure indicating that configuration is disabled
 Cplatf::kms::connector_tDRM connector and mode information for one display
 Cstream::control_adaptive_triggers_tControl payload that configures DualSense adaptive triggers
 Cstream::control_encrypted_tPacked encrypted control-channel envelope
 Cstream::control_hdr_mode_tControl payload that toggles HDR mode and carries metadata
 Cstream::control_header_v2Packed control-channel header used before control payloads
 Cstream::control_rumble_tControl payload that sets controller rumble motors
 Cstream::control_rumble_triggers_tControl payload that sets trigger rumble motors
 Cstream::control_server_tENet control server that routes incoming control packets to stream sessions
 Cstream::control_set_motion_event_tControl payload that enables or disables motion reports
 Cstream::control_set_rgb_led_tControl payload that sets controller RGB LED color
 Cstream::control_terminate_tControl-channel termination message payload
 Ccrypto::creds_tPEM-encoded certificate and private key pair
 Cconfighttp::csrf_token_tCSRF token value and its expiration deadline
 Ccuda::nvfbc::ctx_tNvFBC CUDA context selected for a capture session
 Cproc::ctx_t
 Ccuda::cu_resourcesCUDA frame resources registered for interop conversion
 Cplatf::dxgi::cursor_tCursor position and visibility for the current capture frame
 Cplatf::kms::cursor_tCursor position and visibility for the current capture frame
 Cplatf::x11::cursor_tX11 cursor image and positioning state used during capture
 Cplatf::dxgi::d3d_base_encode_deviceShared D3D11 conversion resources for AVCodec and NVENC encode devices
 Cnvprefs::undo_data_t::data_tNVIDIA profile settings captured for undo
 Cportal::dbus_response_tDBus response loop and response variant for portal calls
 Cportal::dbus_tDBus connection and portal request helpers for screencast setup
 Cconfig::video_t::dd_tDisplay-device integration settings
 Clogging::deinit_tRAII helper that runs shutdown cleanup when destroyed
 Cplatf::deinit_tRAII helper that runs shutdown cleanup when destroyed
 Cutil::Destroy< T, ReturnType, function >Deleter adapter that destroys the wrapped pointer
 Cplatf::display_tAbstract display capture backend used by the streaming pipeline
 Cwl::display_tWayland display connection used to dispatch capture events
 Cpipewire::dmabuf_format_info_tDMA-BUF format and modifier list advertised by PipeWire
 Cwl::dmabuf_tListener state for Wayland screencopy frames backed by DMA-BUFs
 Cnvprefs::driver_settings_tNVIDIA driver profile settings loaded for inspection or modification
 Cva::DRMPRIMESurfaceDescriptorDRM PRIME descriptor imported from a VAAPI surface
 Cplatf::dxgi::duplication_t
 Cstd::enable_shared_from_this
 Cplatf::encode_device_tBase interface for hardware or software frame conversion
 Cvideo::encode_session_tEncoder session state shared by capture and encoding threads
 Cplatf::dxgi::d3d_base_encode_device::encoder_img_ctx_tD3D texture and format information for encoder input
 Cvideo::encoder_platform_formats_tPixel formats supported by one encoder backend
 Cvideo::encoder_tEncoder name and feature flags advertised by Sunshine
 Crtsp_stream::encrypted_rtsp_header_tEncrypted RTSP message header used by GameStream
 Cutil::endian::endian_helper< T, S >
 Cutil::endian::endian_helper< T, std::enable_if_t< instantiation_of_v< std::optional, T > > >Helper specialization for optional values
 Cutil::endian::endian_helper< T, std::enable_if_t<!(instantiation_of_v< std::optional, T >)> >Helper specialization for optional values
 Cutil::endian::endianness< T >Describes the byte order used when serializing values
 Cplatf::enum_wnd_context_tStores state while enumerating top-level Windows windows
 Csafe::event_t< T >Thread-safe event value that blocks readers until a value is raised
 Csafe::event_t< std::shared_ptr< rtsp_stream::launch_session_t > >
 Cdisplay_device::failed_to_parse_tag_tA tag structure indicating that configuration parsing has failed
 Cutil::FailGuard< T >Scope guard that runs a cleanup action unless it is disabled
 Cstd::false_type
 Cstream::fec::fec_tReed-Solomon FEC encoder state for video packets
 Cpipewire::format_map_tPipeWire SPA format mapped to Sunshine pixel format
 Cplatf::audio::format_tWindows audio format details selected for capture
 Cwl::frame_tCaptured Wayland frame metadata and DMA-BUF surface state
 Cutil::Function< ReturnType, Args >Callable wrapper used by utility metaprogramming helpers
 Cplatf::gamepad_arrival_tCapabilities reported when a controller is connected
 Cplatf::gamepad_battery_tBattery state reported by a virtual gamepad
 Cplatf::gamepad_context_tViGEm target and report buffers for one virtual gamepad
 Cplatf::gamepad_feedback_msg_tFeedback command sent from Sunshine to a virtual gamepad
 Cplatf::gamepad_id_tGlobal and client-relative identifiers for a virtual gamepad
 Cplatf::gamepad_motion_tAccelerometer or gyroscope sample from a controller
 Cplatf::gamepad_state_tButton and axis state received for a virtual gamepad
 Cinput::gamepad_tPer-client gamepad slot and feedback state
 Cplatf::gamepad_touch_tTouchpad contact data reported by a controller
 Cplatf::gp_touch_context_tLast touch coordinates reported by a virtual gamepad
 Cplatf::dxgi::gpu_cursor_tGPU resources used to render a captured cursor shape
 Ccbs::h264_tH.264 parameter set before and after VUI rewriting
 Ccuda::nvfbc::handle_tNvFBC dynamic-library handle and function table
 Cutil::hash< T >Hash functor that hashes the raw bytes of trivially-copyable values
 Cvideo::hdr_info_raw_tRaw HDR metadata fields parsed from the display backend
 Ccbs::hevc_tHEVC parameter sets before and after VUI rewriting
 Cutil::Hex< T >Formatter that exposes a value's bytes as hexadecimal text
 CSimpleWeb::HTTPS
 CIMMNotificationClient
 Cnvprefs::nvprefs_interface::implPrivate state owned by the NVIDIA preferences interface
 Cplatf::input_raw_tGlobal inputtino device handles shared by clients
 Cconfig::input_tInput emulation settings loaded from configuration
 Cinput::input_tInput emulation settings loaded from configuration
 Cwl::interface_tWayland registry state for screencopy, DMA-BUF, and output globals
 Cround_robin_util::it_wrap_t< V, T >CRTP base that provides iterator operators for round-robin iterators
 Cround_robin_util::it_wrap_t< plane_t::element_type, plane_it_t >
 Cround_robin_util::it_wrap_t< V, round_robin_t< V, It > >
 CIUnknown
 Cplatf::joypad_stateInputtino joypad collection and its ownership state
 Cplatf::KeyCodeMapMapping from Sunshine key symbols to macOS virtual key codes
 Crtsp_stream::launch_session_tRTSP launch session state shared with stream setup
 Cplatf::macos_input_tMacOS input source and target display state
 Cupnp::mapping_tUPnP port mapping description and lease state
 Cplatf::mic_tAudio capture source used by the streaming pipeline
 Clogging::min_max_avg_periodic_logger< T >A helper class for tracking and logging numerical values across a period of time
 Clogging::min_max_avg_periodic_logger< double >
 Cstat_trackers::min_max_avg_tracker< T >Accumulates minimum, maximum, and average values between periodic callbacks
 Cstat_trackers::min_max_avg_tracker< double >
 Cconfig::video_t::dd_t::mode_remapping_entry_tSingle display mode remapping rule from configuration
 Cconfig::video_t::dd_t::mode_remapping_tCollection of display mode remapping rules
 Cplatf::modifier_flags_tMacOS modifier flags split into generic and device-specific bits
 Cplatf::kms::monitor_tKMS monitor capture state and DRM resources
 Cwl::monitor_tWayland output metadata used to match a configured display name
 Cmove_by_copy_util::MoveByCopy< T >
 Ccbs::nal_tOriginal and rewritten bytes for one codec NAL unit
 Cnvhttp::named_cert_tCertificate entry associated with a client name and UUID
 Cboost::noncopyable
 CNSObject
 Cplatf::sink_t::null_tOptional virtual sink names for each supported channel layout
 Cegl::nv12_img_tNV12 capture image backed by EGL and OpenGL resources
 Cnvenc::nvenc_baseAbstract platform-agnostic base of standalone NVENC encoder. Derived classes perform platform-specific operations
 Cnvenc::nvenc_colorspace_tYUV colorspace and color range
 Cnvenc::nvenc_configNVENC encoder configuration
 Cnvenc::nvenc_encoded_frameEncoded NVENC output frame and metadata needed by the packetizer
 Cconfig::nvhttp_tHTTP and HTTPS settings used by the GameStream pairing server
 Cnvprefs::nvprefs_interfaceHigh-level NVIDIA profile preferences interface with undo support
 Cnvprefs::nvprefs_optionsParsed command-line options for the NVIDIA preferences helper
 Cnvprefs::undo_data_t::data_t::opengl_swapchain_tOpenGL swapchain setting values captured from the driver
 Cvideo::encoder_t::option_tRuntime encoder option exposed to configuration parsing
 Caudio::opus_stream_config_tStatic Opus encoder layout for one advertised audio mode
 Ckwin::output_parameter_tKWin screencast output name and geometry
 Cvideo::packet_raw_tEncoded packet wrapper used by the streaming pipeline
 Cnvhttp::pair_session_tPairing handshake state exchanged with a Moonlight client
 Cplatf::pen_input_tPen tablet event data from the client
 Cportal::pipewire_streaminfo_tPipeWire stream node and negotiated capture size
 Cpipewire::pipewire_tPipeWire core, context, and stream setup used for screencast capture
 Cegl::plane_attr_tEGL attribute pair describing one DMA-BUF plane
 Cutil::point_tTwo-dimensional integer point
 Cconfig::prep_cmd_tExternal preparation command plus its privilege requirement
 Cproc::proc_tTracks launched child processes and terminates them during shutdown
 Cgl::program_tOpenGL shader program with attached shader stages
 Cplatf::audio::prop_var_tRAII wrapper that initializes and clears a Windows PROPVARIANT
 Csafe::shared_t< T >::ptr_tPointer wrapper state protected by synchronization
 Cvk::PushConstantsVulkan shader constants used by the conversion pass
 Csafe::queue_t< T >Thread-safe queue with blocking and shutdown-aware consumers
 Csafe::queue_t< sync_session_ctx_t >
 Cvideo::packet_raw_t::replace_tPacket byte-range replacement descriptor
 Cportal::restore_token_tPersistent portal restore token used to reuse screencast permission
 Cegl::rgb_img_tRGB capture image backed by EGL and OpenGL resources
 Crtsp_stream::rtsp_server_tRTSP listener that matches incoming clients to pending launch sessions
 Cnvprefs::safe_hlocal_deleterDeleter for memory allocated by Windows LocalAlloc APIs
 Ckwin::screencast_permission_helper_t
 Ckwin::screencast_t
 Cplatf::send_info_tDestination address and payload data for one UDP send
 CSimpleWeb::ServerBase
 Cservice_ctrl::service_controllerOwns Windows service-manager handles for the Sunshine service
 Cstream::session_tRuntime state for one audio/video streaming session
 Cgl::shader_tOpenGL shader object that compiles GLSL source
 Cpipewire::shared_state_tPipeWire capture state shared with callback threads
 Csafe::shared_t< T >Shared object storage with custom construction and destruction hooks
 Csafe::shared_t< stream::broadcast_ctx_t >
 Cplatf::shm_data_tRAII wrapper that detaches mapped SysV shared memory
 Cplatf::shm_id_tRAII wrapper that removes a SysV shared-memory segment
 Cplatf::sink_tHost and virtual audio sink names for audio routing
 Cca::detail::StatusViewSmall wrapper for displaying CoreAudio OSStatus values
 Cpipewire::stream_data_tPipeWire stream handle, format, and shared state pointer
 Caudio::stream_params_tCustom Opus channel layout supplied by configuration
 Cconfig::stream_tNetwork stream settings shared by audio, video, and control channels
 Cvideo::sunshine_colorspace_tSunshine colorimetry values derived from stream configuration
 Cconfig::sunshine_tTop-level Sunshine configuration and credential state
 Cplatf::supported_gamepad_tGamepad type exposed to clients and why it may be disabled
 Cegl::surface_descriptor_tEGL surface descriptor used to import a captured DMA-BUF
 Cegl::sws_tEGL/OpenGL scaler and colorspace conversion pipeline
 Cvideo::sync_session_ctx_tContext object used while synchronizing encode sessions
 Cvideo::sync_session_tSynchronization state for one encode session
 Csync_util::sync_t< T, M >Value wrapper that pairs an object with the mutex protecting it
 Csync_util::sync_t< std::map< net::peer_t, stream::session_t * > >
 Csync_util::sync_t< std::set< std::shared_ptr< stream::session_t > > >
 Csync_util::sync_t< std::vector< stream::session_t * > >
 Csync_util::sync_t< std::weak_ptr< platf::display_t > >
 CT
 Ctask_pool_util::TaskPoolQueue of immediate and delayed tasks executed by worker threads
 Cplatf::temp_retain_av_img_tTemporary retain wrapper used while AV image data is borrowed
 Cplatf::dxgi::texture_lock_helperKeyed-mutex guard used while sharing a D3D texture
 Clogging::time_delta_periodic_loggerA helper class for tracking and logging short time intervals across a period of time
 Ctask_pool_util::TaskPool::timer_task_t< R >Queued delayed task identifier paired with its future result
 Cplatf::touch_input_tAbsolute touchscreen event data from the client
 Cplatf::touch_port_tTouchscreen coordinate bounds used to scale absolute input
 Cstd::true_type
 CTs...
 Cnvhttp::tunnel< T >
 Cnvhttp::tunnel< SimpleWeb::HTTP >Plain HTTP server wrapper used for non-TLS endpoints
 Cnvhttp::tunnel< SunshineHTTPS >HTTPS tunnel session used for encrypted client requests
 Cnvprefs::undo_data_tSerializable NVIDIA profile state saved before preference changes
 Cnvprefs::undo_file_tFile-backed storage for NVIDIA preference undo data
 Cutil::uniq_ptr< T, D >Unique pointer wrapper with customizable pointer and deleter types
 Cutil::uniq_ptr< _VIGEM_CLIENT_T, vigem_free >
 Cutil::uniq_ptr< _VIGEM_TARGET_T, vigem_target_free >
 Cutil::uniq_ptr< _XDisplay, freeDisplay >
 Cutil::uniq_ptr< AVCodecContext, free_ctx >
 Cutil::uniq_ptr< AVFrame, free_frame >
 Cutil::uniq_ptr< CUgraphicsResource_st, unregisterResource >
 Cutil::uniq_ptr< cursor_ctx_raw_t, freeCursorCtx >
 Cutil::uniq_ptr< device, &device_destroy >
 Cutil::uniq_ptr< drmModePlaneRes, drmModeFreePlaneResources >
 Cutil::uniq_ptr< ENetHost, free_host >
 Cutil::uniq_ptr< EVP_CIPHER_CTX, EVP_CIPHER_CTX_free >
 Cutil::uniq_ptr< FILE, int, fclose >
 Cutil::uniq_ptr< IAudioCaptureClient, Release< IAudioCaptureClient > >
 Cutil::uniq_ptr< IAudioClient, Release< IAudioClient > >
 Cutil::uniq_ptr< ID3D11BlendState, Release< ID3D11BlendState > >
 Cutil::uniq_ptr< ID3D11Buffer, Release< ID3D11Buffer > >
 Cutil::uniq_ptr< ID3D11Device, Release< ID3D11Device > >
 Cutil::uniq_ptr< ID3D11DeviceContext, Release< ID3D11DeviceContext > >
 Cutil::uniq_ptr< ID3D11PixelShader, Release< ID3D11PixelShader > >
 Cutil::uniq_ptr< ID3D11RenderTargetView, Release< ID3D11RenderTargetView > >
 Cutil::uniq_ptr< ID3D11SamplerState, Release< ID3D11SamplerState > >
 Cutil::uniq_ptr< ID3D11ShaderResourceView, Release< ID3D11ShaderResourceView > >
 Cutil::uniq_ptr< ID3D11Texture2D, Release< ID3D11Texture2D > >
 Cutil::uniq_ptr< ID3D11VertexShader, Release< ID3D11VertexShader > >
 Cutil::uniq_ptr< IDXGIAdapter1, Release< IDXGIAdapter1 > >
 Cutil::uniq_ptr< IDXGIFactory1, Release< IDXGIFactory1 > >
 Cutil::uniq_ptr< IDXGIKeyedMutex, Release< IDXGIKeyedMutex > >
 Cutil::uniq_ptr< IDXGIOutput, Release< IDXGIOutput > >
 Cutil::uniq_ptr< IDXGIOutputDuplication, Release< IDXGIOutputDuplication > >
 Cutil::uniq_ptr< IMMDevice, Release< IMMDevice > >
 Cutil::uniq_ptr< IMMDeviceEnumerator, Release< IMMDeviceEnumerator > >
 Cutil::uniq_ptr< IPolicyConfig, Release< IPolicyConfig > >
 Cutil::uniq_ptr< pa_context, pa_context_unref >
 Cutil::uniq_ptr< pa_mainloop, pa_mainloop_free >
 Cutil::uniq_ptr< pa_simple, pa_simple_free >
 Cutil::uniq_ptr< SwsContext, sws_freeContext >
 Cutil::uniq_ptr< void, BOOL, CloseHandle >
 Cutil::uniq_ptr< void, EGLBoolean, &eglTerminate >
 Cutil::uniq_ptr< wl_display, wl_display_disconnect >
 Cutil::uniq_ptr< X509_STORE_CTX, X509_STORE_CTX_free >
 Cutil::uniq_ptr< xcb_connection_t, &xcb::disconnect >
 Cutil::uniq_ptr< XImage, freeImage >
 Cstd::unique_ptr
 Cupnp::urls_tMove-only RAII wrapper generated by KITTY_USING_MOVE_T.
Alias for element type
 Cuuid_util::uuid_tUUID value exposed through multiple integer views
 Cva::VAAPIDevicePriv
 Cstd::variant
 Cstream::video_packet_enc_prefix_tAES-GCM prefix written before encrypted video packet payloads
 Cstream::video_packet_raw_tPacked RTP and video headers for an unencrypted video packet
 Cstream::video_short_frame_header_tPacked short video frame header sent before video payload bytes
 Cconfig::video_tVideo encoder, capture, and color settings loaded from configuration
 Cplatf::vigem_tViGEm client connection and virtual gamepad collection
 Cplatf::dxgi::wgc_capture_t
 Cconfig::video_t::dd_t::workarounds_tCompatibility workarounds for display-device control
 Cutil::wrap_ptr< T >Pointer wrapper that may borrow or own the pointee
 Cplatf::kms::wrapper_fbRAII wrapper for DRM framebuffer metadata and GEM handles
 Cegl::yuv444_img_tYUV 4:4:4 capture image backed by EGL and OpenGL resources