Sunshine master
Self-hosted game stream host for Moonlight.
pipewire.cpp File Reference

Shared classes for pipewire-based capture methods. More...

#include <fstream>
#include <gio/gio.h>
#include <gio/gunixfdlist.h>
#include <libdrm/drm_fourcc.h>
#include <pipewire/pipewire.h>
#include <spa/param/video/format-utils.h>
#include <spa/param/video/type-info.h>
#include <spa/pod/builder.h>
#include "cuda.h"
#include "graphics.h"
#include "src/main.h"
#include "src/platform/common.h"
#include "src/video.h"
#include "vaapi.h"
#include "vulkan_encode.h"
#include "wayland.h"
Include dependency graph for pipewire.cpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pipewire::dmabuf_format_info_t
 DMA-BUF format and modifier list advertised by PipeWire. More...
 
struct  pipewire::format_map_t
 PipeWire SPA format mapped to Sunshine pixel format. More...
 
struct  pipewire::img_descriptor_t
 Pipewire image assembled for encoding. More...
 
class  pipewire::pipewire_display_t
 Display capture backend that consumes frames from a PipeWire stream. More...
 
class  pipewire::pipewire_t
 PipeWire core, context, and stream setup used for screencast capture. More...
 
struct  pipewire::shared_state_t
 PipeWire capture state shared with callback threads. More...
 
struct  pipewire::stream_data_t
 PipeWire stream handle, format, and shared state pointer. More...
 

Macros

#define PW_KEY_TARGET_OBJECT   "target.object"
 Macro for PW KEY TARGET OBJECT.
 

Variables

constexpr int SPA_VIDEO_TRANSFER_SMPTE2084 = 14
 Protocol or platform constant for spa video transfer smpte2084.
 
constexpr bool SUNSHINE_USE_PIPEWIRE_OBJECT_SERIAL = false
 Whether PipeWire object serials should be used for matching.
 

Detailed Description

Shared classes for pipewire-based capture methods.