4#ifndef QSCKSCREENCAPTURE_P_H
5#define QSCKSCREENCAPTURE_P_H
18#include <QtMultimedia/private/qplatformsurfacecapture_p.h>
20#include <QtFFmpegMediaPluginImpl/private/qmacscreencapturekit_p.h>
24class QFFmpegMediaCaptureSession;
55 int64_t m_streamIdAllocator = 0;
56 [[nodiscard]] QMacScreenCaptureKit::StreamId allocateStreamId() {
57 return QMacScreenCaptureKit::StreamId { m_streamIdAllocator++ };
61 QMacScreenCaptureKit::StreamId streamId = {};
62 AVFScopedPointer<SCDisplay> scDisplay;
63 std::unique_ptr<QMacScreenCaptureKit> macScreenCaptureKit;
66 std::unique_ptr<ActiveData> m_activeData;
68 std::optional<QVideoFrameFormat> m_videoFrameFormat;
70 [[nodiscard]] std::optional<QMacScreenCaptureKit::StreamId> activeStreamId()
const noexcept {
72 return m_activeData->streamId;
std::optional< int > ffmpegHWPixelFormat() const override
void setCaptureSession(QPlatformMediaCaptureSession *) override
bool setActiveInternal(bool active) override
~QSckScreenCapture() override=default
void onNewFrameFormatReceived(QMacScreenCaptureKit::StreamId streamId, const QVideoFrameFormat &)
QVideoFrameFormat frameFormat() const override
void onStreamStoppedWithErrorEvent(QMacScreenCaptureKit::StreamId streamId, const QString &)
static q23::expected< AVFScopedPointer< SCDisplay >, QString > findScDisplay(CGDirectDisplayID input)
static void setupQMacScreenCaptureKitConnections(QSckScreenCapture &screenCapture, const QMacScreenCaptureKit &macScreenCaptureKit)
static CGDirectDisplayID displayIDForScreen(NSScreen *screen)
QT_MANGLE_NAMESPACE(QMacScreenCaptureStreamDelegate) QMacScreenCaptureStreamDelegate
std::unique_ptr< QPlatformSurfaceCapture > makeQSckScreenCapture()