1#ifndef MYTHNVDECINTEROP_H
2#define MYTHNVDECINTEROP_H
8#include <ffnvcodec/dynlink_cuda.h>
18 CUcontext& CudaContext);
20 CUcontext& CudaContext);
25 std::vector<MythVideoTextureOpenGL*>
38 CUcontext& CudaContext,
bool& Retry);
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.
CUcontext GetCUDAContext()
static bool CreateCUDAPriv(MythRenderOpenGL *GLContext, CudaFunctions *&CudaFuncs, CUcontext &CudaContext, bool &Retry)
bool InitialiseCuda()
Initialise a CUDA context.
CudaFunctions * m_cudaFuncs
MythNVDECInterop(MythPlayerUI *Player, MythRenderOpenGL *Context)
static bool CreateCUDAContext(MythRenderOpenGL *GLContext, CudaFunctions *&CudaFuncs, CUcontext &CudaContext)
~MythNVDECInterop() override
void RotateReferenceFrames(CUdeviceptr Buffer)
static MythNVDECInterop * CreateNVDEC(MythPlayerUI *Player, MythRenderOpenGL *Context)
static void GetNVDECTypes(MythRenderOpenGL *Render, MythInteropGPU::InteropMap &Types)
void DeleteTextures() override
QVector< CUdeviceptr > m_referenceFrames
static void CleanupContext(MythRenderOpenGL *GLContext, CudaFunctions *&CudaFuncs, CUcontext &CudaContext)
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.