QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
GstHwVideoBufferFactory.h File Reference
#include <QtCore/qglobal.h>
#include <QtMultimedia/QVideoFrameFormat>
#include <gst/gst.h>
#include <gst/video/video-info.h>
#include <memory>
+ Include dependency graph for GstHwVideoBufferFactory.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum class  HwVideoBufferPath {
  None , DmaBuf , GlMemory , D3D11 ,
  D3D12 , IOSurface , AHardwareBuffer
}
 Identifies which GPU path was chosen; used by the adapter to increment the right counter. More...
 

Functions

std::unique_ptr< QHwVideoBuffer > makeHwVideoBuffer (GstSample *sample, const GstVideoInfo &info, QVideoFrameFormat format, bool gpuEnabled, void *eglDisplay, void *ahbEglDisplay, HwVideoBufferPath &matchedPath)
 

Enumeration Type Documentation

◆ HwVideoBufferPath

enum class HwVideoBufferPath
strong

Identifies which GPU path was chosen; used by the adapter to increment the right counter.

Enumerator
None 
DmaBuf 
GlMemory 
D3D11 
D3D12 
IOSurface 
AHardwareBuffer 

Definition at line 18 of file GstHwVideoBufferFactory.h.

Function Documentation

◆ makeHwVideoBuffer()

std::unique_ptr< QHwVideoBuffer > makeHwVideoBuffer ( GstSample *  sample,
const GstVideoInfo &  info,
QVideoFrameFormat  format,
bool  gpuEnabled,
void *  eglDisplay,
void *  ahbEglDisplay,
HwVideoBufferPath matchedPath 
)

Factory that selects the appropriate zero-copy QHwVideoBuffer for a GstSample.

Returns nullptr if no compiled GPU path matches the buffer's memory type, in which case the caller should fall back to the CPU memcpy path. gpuEnabled must be true for any GPU path to be attempted.

Definition at line 40 of file GstHwVideoBufferFactory.cc.

References AHardwareBuffer, D3D11, D3D12, DmaBuf, GlMemory, IOSurface, and None.