
#ifndef _H_CUDA_CORE_TYPES_H_
#define _H_CUDA_CORE_TYPES_H_

typedef void* CudaCoreContext;
typedef void* ResourceHandle;

typedef struct _CudaDecodeParam
{
	int iSize;
	int iEncodeType; // 21 H.264; 23 H.265
}CudaDecodeParam; 

typedef struct _CudaDecodeIn
{
	int iSize;
	char* pcData;
	int iLen;
	long long lTimestamp;
}CudaDecodeIn;

typedef struct _CudaDecodeOut
{
	int iSize;
	void* pvDevicePtr;
	int iWidth;
	int iHeight;
	int iPitch;
	long long lTimestamp;
}CudaDecodeOut;

#define CUDACORE_MEMORYTYPE_HOST 0x01
#define CUDACORE_MEMORYTYPE_DEVICE 0x02

typedef struct _CudaCoreMem2D
{
	int iSize;
	int iSrcMemoryType; //CUDACORE_MEMORYTYPE_HOST or CUDACORE_MEMORYTYPE_DEVICE
	void* pvSrc;
	int iSrcPitch;          
	int iDstMemoryType; //CUDACORE_MEMORYTYPE_HOST or CUDACORE_MEMORYTYPE_DEVICE
	void* pvDst;           
	int iDstPitch;          
	int iWidth;      
	int iHeight;             
} CudaCoreMem2D;

#endif



