Go to the documentation of this file. 1 #ifndef MYTHNVDECINTEROP_H
2 #define MYTHNVDECINTEROP_H
9 #include "compat/cuda/dynlink_loader.h"
10 #include "libavutil/hwcontext_cuda.h"
19 CUcontext& CudaContext);
21 CUcontext& CudaContext);
26 std::vector<MythVideoTextureOpenGL*>
39 CUcontext& CudaContext,
bool& Retry);
static void GetNVDECTypes(MythRenderOpenGL *Render, MythInteropGPU::InteropMap &Types)
QVector< CUdeviceptr > m_referenceFrames
void RotateReferenceFrames(CUdeviceptr Buffer)
std::map< VideoFrameType, InteropTypes > InteropMap
std::vector< MythVideoTextureOpenGL * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
Map CUDA video memory to OpenGL textures.
static bool CreateCUDAContext(MythRenderOpenGL *GLContext, CudaFunctions *&CudaFuncs, CUcontext &CudaContext)
static bool CreateCUDAPriv(MythRenderOpenGL *GLContext, CudaFunctions *&CudaFuncs, CUcontext &CudaContext, bool &Retry)
void DeleteTextures() override
CUcontext GetCUDAContext()
bool InitialiseCuda()
Initialise a CUDA context.
static MythNVDECInterop * CreateNVDEC(MythPlayerUI *Player, MythRenderOpenGL *Context)
static void CleanupContext(MythRenderOpenGL *GLContext, CudaFunctions *&CudaFuncs, CUcontext &CudaContext)
~MythNVDECInterop() override
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
CudaFunctions * m_cudaFuncs
MythNVDECInterop(MythPlayerUI *Player, MythRenderOpenGL *Context)