#include "modules/desktop_capture/linux/wayland/base_capturer_pipewire.h"
#include "modules/desktop_capture/desktop_capture_options.h"
#include "modules/desktop_capture/desktop_capturer.h"
#include "modules/desktop_capture/linux/wayland/restore_token_manager.h"
#include "modules/portal/pipewire_utils.h"
#include "modules/portal/xdg_desktop_portal_utils.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/time_utils.h"
#include "rtc_base/trace_event.h"
namespace webrtc {
namespace {
RequestResponse;
ScreenCapturePortalInterface;
SessionDetails;
}
bool BaseCapturerPipeWire::IsSupported() { … }
BaseCapturerPipeWire::BaseCapturerPipeWire(const DesktopCaptureOptions& options,
CaptureType type)
: … { … }
BaseCapturerPipeWire::BaseCapturerPipeWire(
const DesktopCaptureOptions& options,
std::unique_ptr<ScreenCapturePortalInterface> portal)
: … { … }
BaseCapturerPipeWire::~BaseCapturerPipeWire() { … }
void BaseCapturerPipeWire::OnScreenCastRequestResult(RequestResponse result,
uint32_t stream_node_id,
int fd) { … }
void BaseCapturerPipeWire::OnScreenCastSessionClosed() { … }
void BaseCapturerPipeWire::UpdateResolution(uint32_t width, uint32_t height) { … }
void BaseCapturerPipeWire::SetMaxFrameRate(uint32_t max_frame_rate) { … }
void BaseCapturerPipeWire::Start(Callback* callback) { … }
void BaseCapturerPipeWire::CaptureFrame() { … }
bool BaseCapturerPipeWire::GetSourceList(SourceList* sources) { … }
bool BaseCapturerPipeWire::SelectSource(SourceId id) { … }
DelegatedSourceListController*
BaseCapturerPipeWire::GetDelegatedSourceListController() { … }
void BaseCapturerPipeWire::Observe(Observer* observer) { … }
void BaseCapturerPipeWire::EnsureVisible() { … }
void BaseCapturerPipeWire::EnsureHidden() { … }
SessionDetails BaseCapturerPipeWire::GetSessionDetails() { … }
ScreenCastPortal* BaseCapturerPipeWire::GetScreenCastPortal() { … }
void BaseCapturerPipeWire::SendFramesImmediately(bool send_frames_immediately) { … }
}