FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations
dynlink_cuviddec.h File Reference

Go to the source code of this file.

Data Structures

struct  CUVIDDECODECAPS
 This structure is used in cuvidGetDecoderCaps API. More...
 
struct  CUVIDDECODECREATEINFO
 This structure is used in cuvidCreateDecoder API. More...
 
struct  CUVIDH264DPBENTRY
 H.264 DPB entry This structure is used in CUVIDH264PICPARAMS structure. More...
 
struct  CUVIDH264MVCEXT
 H.264 MVC picture parameters ext This structure is used in CUVIDH264PICPARAMS structure. More...
 
struct  CUVIDH264SVCEXT
 H.264 SVC picture parameters ext This structure is used in CUVIDH264PICPARAMS structure. More...
 
struct  CUVIDH264PICPARAMS
 H.264 picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDMPEG2PICPARAMS
 MPEG-2 picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDMPEG4PICPARAMS
 MPEG-4 picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDVC1PICPARAMS
 VC1 picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDJPEGPICPARAMS
 JPEG picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDHEVCPICPARAMS
 HEVC picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDVP8PICPARAMS
 VP8 picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDVP9PICPARAMS
 VP9 picture parameters This structure is used in CUVIDPICPARAMS structure. More...
 
struct  CUVIDPICPARAMS
 Picture parameters for decoding This structure is used in cuvidDecodePicture API IN for cuvidDecodePicture. More...
 
struct  CUVIDPROCPARAMS
 Picture parameters for postprocessing This structure is used in cuvidMapVideoFrame API. More...
 

Macros

#define I_VOP   0
 
#define P_VOP   1
 
#define B_VOP   2
 
#define S_VOP   3
 

Typedefs

typedef unsigned long tcu_ulong
 
typedef voidCUvideodecoder
 
typedef struct _CUcontextlock_st * CUvideoctxlock
 
typedef CUresult CUDAAPI tcuvidGetDecoderCaps (CUVIDDECODECAPS *pdc)
 
typedef CUresult CUDAAPI tcuvidCreateDecoder (CUvideodecoder *phDecoder, CUVIDDECODECREATEINFO *pdci)
 
typedef CUresult CUDAAPI tcuvidDestroyDecoder (CUvideodecoder hDecoder)
 
typedef CUresult CUDAAPI tcuvidDecodePicture (CUvideodecoder hDecoder, CUVIDPICPARAMS *pPicParams)
 
typedef CUresult CUDAAPI tcuvidMapVideoFrame (CUvideodecoder hDecoder, int nPicIdx, unsigned int *pDevPtr, unsigned int *pPitch, CUVIDPROCPARAMS *pVPP)
 
typedef CUresult CUDAAPI tcuvidUnmapVideoFrame (CUvideodecoder hDecoder, unsigned int DevPtr)
 
typedef CUresult CUDAAPI tcuvidCtxLockCreate (CUvideoctxlock *pLock, CUcontext ctx)
 
typedef CUresult CUDAAPI tcuvidCtxLockDestroy (CUvideoctxlock lck)
 
typedef CUresult CUDAAPI tcuvidCtxLock (CUvideoctxlock lck, unsigned int reserved_flags)
 
typedef CUresult CUDAAPI tcuvidCtxUnlock (CUvideoctxlock lck, unsigned int reserved_flags)
 

Enumerations

enum  cudaVideoCodec {
  cudaVideoCodec_MPEG1 =0, cudaVideoCodec_MPEG2, cudaVideoCodec_MPEG4, cudaVideoCodec_VC1,
  cudaVideoCodec_H264, cudaVideoCodec_JPEG, cudaVideoCodec_H264_SVC, cudaVideoCodec_H264_MVC,
  cudaVideoCodec_HEVC, cudaVideoCodec_VP8, cudaVideoCodec_VP9, cudaVideoCodec_NumCodecs,
  cudaVideoCodec_YUV420 = (('I'<<24)|('Y'<<16)|('U'<<8)|('V')), cudaVideoCodec_YV12 = (('Y'<<24)|('V'<<16)|('1'<<8)|('2')), cudaVideoCodec_NV12 = (('N'<<24)|('V'<<16)|('1'<<8)|('2')), cudaVideoCodec_YUYV = (('Y'<<24)|('U'<<16)|('Y'<<8)|('V')),
  cudaVideoCodec_UYVY = (('U'<<24)|('Y'<<16)|('V'<<8)|('Y'))
}
 Video codec enums These enums are used in CUVIDDECODECREATEINFO and CUVIDDECODECAPS structures. More...
 
enum  cudaVideoSurfaceFormat { cudaVideoSurfaceFormat_NV12 =0, cudaVideoSurfaceFormat_P016 =1 }
 Video surface format enums used for output format of decoded output These enums are used in CUVIDDECODECREATEINFO structure. More...
 
enum  cudaVideoDeinterlaceMode { cudaVideoDeinterlaceMode_Weave =0, cudaVideoDeinterlaceMode_Bob, cudaVideoDeinterlaceMode_Adaptive }
 Deinterlacing mode enums These enums are used in CUVIDDECODECREATEINFO structure Use cudaVideoDeinterlaceMode_Weave for progressive content and for content that doesn't need deinterlacing cudaVideoDeinterlaceMode_Adaptive needs more video memory than other DImodes. More...
 
enum  cudaVideoChromaFormat { cudaVideoChromaFormat_Monochrome =0, cudaVideoChromaFormat_420, cudaVideoChromaFormat_422, cudaVideoChromaFormat_444 }
 Chroma format enums These enums are used in CUVIDDECODECREATEINFO and CUVIDDECODECAPS structures JPEG supports Monochrome, YUV 4:2:0, YUV 4:2:2 and YUV 4:4:4 chroma formats. More...
 
enum  cudaVideoCreateFlags { cudaVideoCreate_Default = 0x00, cudaVideoCreate_PreferCUDA = 0x01, cudaVideoCreate_PreferDXVA = 0x02, cudaVideoCreate_PreferCUVID = 0x04 }
 Decoder flag enums to select preferred decode path cudaVideoCreate_Default and cudaVideoCreate_PreferCUVID are most optimized, use these whenever possible. More...
 

Macro Definition Documentation

#define I_VOP   0

Definition at line 367 of file dynlink_cuviddec.h.

#define P_VOP   1

Definition at line 368 of file dynlink_cuviddec.h.

#define B_VOP   2

Definition at line 369 of file dynlink_cuviddec.h.

#define S_VOP   3

Definition at line 370 of file dynlink_cuviddec.h.

Typedef Documentation

typedef unsigned long tcu_ulong

Definition at line 51 of file dynlink_cuviddec.h.

typedef void* CUvideodecoder

Definition at line 54 of file dynlink_cuviddec.h.

typedef struct _CUcontextlock_st* CUvideoctxlock

Definition at line 55 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidGetDecoderCaps(CUVIDDECODECAPS *pdc)

Definition at line 777 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidCreateDecoder(CUvideodecoder *phDecoder, CUVIDDECODECREATEINFO *pdci)

Definition at line 783 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidDestroyDecoder(CUvideodecoder hDecoder)

Definition at line 788 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidDecodePicture(CUvideodecoder hDecoder, CUVIDPICPARAMS *pPicParams)

Definition at line 795 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidMapVideoFrame(CUvideodecoder hDecoder, int nPicIdx, unsigned int *pDevPtr, unsigned int *pPitch, CUVIDPROCPARAMS *pVPP)

Definition at line 805 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidUnmapVideoFrame(CUvideodecoder hDecoder, unsigned int DevPtr)

Definition at line 813 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidCtxLockCreate(CUvideoctxlock *pLock, CUcontext ctx)

Definition at line 860 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidCtxLockDestroy(CUvideoctxlock lck)

Definition at line 866 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidCtxLock(CUvideoctxlock lck, unsigned int reserved_flags)

Definition at line 872 of file dynlink_cuviddec.h.

typedef CUresult CUDAAPI tcuvidCtxUnlock(CUvideoctxlock lck, unsigned int reserved_flags)

Definition at line 878 of file dynlink_cuviddec.h.

Enumeration Type Documentation

Video codec enums These enums are used in CUVIDDECODECREATEINFO and CUVIDDECODECAPS structures.

Enumerator
cudaVideoCodec_MPEG1 

MPEG1.

cudaVideoCodec_MPEG2 

MPEG2.

cudaVideoCodec_MPEG4 

MPEG4.

cudaVideoCodec_VC1 

VC1.

cudaVideoCodec_H264 

H264.

cudaVideoCodec_JPEG 

JPEG.

cudaVideoCodec_H264_SVC 

H264-SVC.

cudaVideoCodec_H264_MVC 

H264-MVC.

cudaVideoCodec_HEVC 

HEVC.

cudaVideoCodec_VP8 

VP8.

cudaVideoCodec_VP9 

VP9.

cudaVideoCodec_NumCodecs 

Max codecs.

cudaVideoCodec_YUV420 

Y,U,V (4:2:0)

cudaVideoCodec_YV12 

Y,V,U (4:2:0)

cudaVideoCodec_NV12 

Y,UV (4:2:0)

cudaVideoCodec_YUYV 

YUYV/YUY2 (4:2:2)

cudaVideoCodec_UYVY 

UYVY (4:2:2)

Definition at line 62 of file dynlink_cuviddec.h.

Video surface format enums used for output format of decoded output These enums are used in CUVIDDECODECREATEINFO structure.

Enumerator
cudaVideoSurfaceFormat_NV12 

NV12 format.

cudaVideoSurfaceFormat_P016 

16 bit semiplaner format.

Can be used for 10 bit(6LSB bits 0), 12 bit (4LSB bits 0)

Definition at line 88 of file dynlink_cuviddec.h.

Deinterlacing mode enums These enums are used in CUVIDDECODECREATEINFO structure Use cudaVideoDeinterlaceMode_Weave for progressive content and for content that doesn't need deinterlacing cudaVideoDeinterlaceMode_Adaptive needs more video memory than other DImodes.

Enumerator
cudaVideoDeinterlaceMode_Weave 

Weave both fields (no deinterlacing)

cudaVideoDeinterlaceMode_Bob 

Drop one field.

cudaVideoDeinterlaceMode_Adaptive 

Adaptive deinterlacing.

Definition at line 101 of file dynlink_cuviddec.h.

Chroma format enums These enums are used in CUVIDDECODECREATEINFO and CUVIDDECODECAPS structures JPEG supports Monochrome, YUV 4:2:0, YUV 4:2:2 and YUV 4:4:4 chroma formats.

H264, HEVC, VP9, VP8, VC1, MPEG1, MPEG2 and MPEG4 support YUV 4:2:0 chroma format only.

Enumerator
cudaVideoChromaFormat_Monochrome 

MonoChrome.

cudaVideoChromaFormat_420 

YUV 4:2:0.

cudaVideoChromaFormat_422 

YUV 4:2:2.

cudaVideoChromaFormat_444 

YUV 4:4:4.

Definition at line 114 of file dynlink_cuviddec.h.

Decoder flag enums to select preferred decode path cudaVideoCreate_Default and cudaVideoCreate_PreferCUVID are most optimized, use these whenever possible.

Enumerator
cudaVideoCreate_Default 

Default operation mode: use dedicated video engines.

cudaVideoCreate_PreferCUDA 

Use CUDA-based decoder (requires valid vidLock object for multi-threading)

cudaVideoCreate_PreferDXVA 

Go through DXVA internally if possible (requires D3D9 interop)

cudaVideoCreate_PreferCUVID 

Use dedicated video engines directly.

Definition at line 126 of file dynlink_cuviddec.h.