QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
VideoBackend Namespace Reference

Classes

struct  EnvPrepResult
 

Functions

VideoReceivercreateReceiver (QObject *parent)
 
void * createSink (QQuickItem *widget, QObject *parent)
 
void releaseSink (void *sink)
 
bool gpuZeroCopyAllowedForCurrentGraphicsApi (bool forceCpuVideoPath, bool forceSoftwareDecoder)
 Applies backend-wide sink policy before constructing the GStreamer sink.
 
constexpr bool needsAsyncInit () noexcept
 
bool disabledForUnitTests ()
 True when the backend should be skipped under unit tests (opt back in with QGC_TEST_ENABLE_GSTREAMER).
 
EnvPrepResult prepareEnvironment ()
 
bool initialize (const QStringList &arguments, const EnvPrepResult &envResult)
 
void applyDecoderPriorities (int rawOption)
 
void onMainWindowReady (QQuickWindow *window)
 
void bindDebugLevelFact (Fact *fact, QObject *context)
 
void attachSink (QObject *receiver, void *sink, QQuickItem *widget)
 

Detailed Description

Backend-neutral video backend facade: object creation plus process/runtime lifecycle. Selects GStreamer or QtMultimedia at compile time via QGC_GST_STREAMING so callers (VideoManager, QGCCorePlugin) never name a concrete backend.

Function Documentation

◆ applyDecoderPriorities()

void VideoBackend::applyDecoderPriorities ( int  rawOption)

Definition at line 110 of file VideoBackend.cc.

References GStreamer::setCodecPriorities().

◆ attachSink()

void VideoBackend::attachSink ( QObject *  receiver,
void *  sink,
QQuickItem *  widget 
)

Definition at line 138 of file VideoBackend.cc.

References GStreamer::attachAppSink().

◆ bindDebugLevelFact()

void VideoBackend::bindDebugLevelFact ( Fact fact,
QObject *  context 
)

Definition at line 128 of file VideoBackend.cc.

References GStreamer::bindDebugLevelFact().

Referenced by VideoManager::init().

◆ createReceiver()

VideoReceiver * VideoBackend::createReceiver ( QObject *  parent)

◆ createSink()

◆ disabledForUnitTests()

bool VideoBackend::disabledForUnitTests ( )

True when the backend should be skipped under unit tests (opt back in with QGC_TEST_ENABLE_GSTREAMER).

Definition at line 84 of file VideoBackend.cc.

References qgcApp, and QGC::runningUnitTests().

Referenced by VideoManager::VideoManager().

◆ gpuZeroCopyAllowedForCurrentGraphicsApi()

bool VideoBackend::gpuZeroCopyAllowedForCurrentGraphicsApi ( bool  forceCpuVideoPath,
bool  forceSoftwareDecoder 
)

Applies backend-wide sink policy before constructing the GStreamer sink.

Definition at line 35 of file VideoBackend.cc.

Referenced by createSink().

◆ initialize()

bool VideoBackend::initialize ( const QStringList &  arguments,
const EnvPrepResult envResult 
)

◆ needsAsyncInit()

constexpr bool VideoBackend::needsAsyncInit ( )
constexprnoexcept

True when a streaming backend that requires asynchronous global init is compiled in (GStreamer). QtMultimedia needs no global init, so callers treat it as ready immediately.

Definition at line 27 of file VideoBackend.h.

Referenced by VideoManager::init(), VideoManager::startVideoBackendInit(), VideoManager::VideoManager(), and VideoManager::waitForVideoBackendReady().

◆ onMainWindowReady()

void VideoBackend::onMainWindowReady ( QQuickWindow *  window)

Definition at line 119 of file VideoBackend.cc.

References GStreamer::onMainWindowReady().

Referenced by VideoManager::init().

◆ prepareEnvironment()

◆ releaseSink()

void VideoBackend::releaseSink ( void *  sink)