diff options
Diffstat (limited to 'thirdparties/win32/include/cuda/types.h')
-rw-r--r-- | thirdparties/win32/include/cuda/types.h | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/thirdparties/win32/include/cuda/types.h b/thirdparties/win32/include/cuda/types.h new file mode 100644 index 0000000..c7be519 --- /dev/null +++ b/thirdparties/win32/include/cuda/types.h @@ -0,0 +1,241 @@ +/* + * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. + * + * Please refer to the NVIDIA end user license agreement (EULA) associated + * with this source code for terms and conditions that govern your use of + * this software. Any use, reproduction, disclosure, or distribution of + * this software and related documentation outside the terms of the EULA + * is strictly prohibited. + * + */ + +#ifndef TYPES_H +#define TYPES_H + +#include "NVEncodeDataTypes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct NVEncoderParams +{ + char configFile[256]; + char inputFile[256]; + char outputFile[256]; + int measure_psnr; + int measure_fps; + int force_device; + int iSurfaceFormat; + int iPictureType; + int nDeviceMemPitch; + + int iCodecType; // NVVE_CODEC_TYPE, + int GPU_count; // Choose the specific GPU count + int GPU_devID; // Choose the specific GPU device ID + int iUseDeviceMem; // CUDA with DEVICE_MEMORY_INPUT (for encoding) + int iForcedGPU; // NVVE_FORCE_GPU_SELECTION //F22 + int iOutputSize[2]; // NVVE_OUT_SIZE, + int iInputSize[2]; // NVVE_IN_SIZE, + float fAspectRatio; // + int iAspectRatio[3]; // NVVE_ASPECT_RATIO, + NVVE_FIELD_MODE Fieldmode; // NVVE_FIELD_ENC_MODE, + int iP_Interval; // NVVE_P_INTERVAL, + int iIDR_Period; // NVVE_IDR_PERIOD, + int iDynamicGOP; // NVVE_DYNAMIC_GOP, + NVVE_RateCtrlType RCType; // NVVE_RC_TYPE, + int iAvgBitrate; // NVVE_AVG_BITRATE, + int iPeakBitrate; // NVVE_PEAK_BITRATE, + int iQP_Level_Intra; // NVVE_QP_LEVEL_INTRA, + int iQP_Level_InterP; // NVVE_QP_LEVEL_INTER_P, + int iQP_Level_InterB; // NVVE_QP_LEVEL_INTER_B, + int iFrameRate[2]; // NVVE_FRAME_RATE, + int iDeblockMode; // NVVE_DEBLOCK_MODE, + int iProfileLevel; // NVVE_PROFILE_LEVEL, + int iForceIntra; // NVVE_FORCE_INTRA, + int iForceIDR; // NVVE_FORCE_IDR, + int iClearStat; // NVVE_CLEAR_STAT, + NVVE_DI_MODE DIMode; // NVVE_SET_DEINTERLACE, + NVVE_PRESETS_TARGET Presets; // NVVE_PRESETS, + int iDisableCabac; // NVVE_DISABLE_CABAC, + int iNaluFramingType; // NVVE_CONFIGURE_NALU_FRAMING_TYPE + int iDisableSPSPPS; // NVVE_DISABLE_SPS_PPS + NVVE_GPUOffloadLevel GPUOffloadLevel; // NVVE_GPU_OFFLOAD_LEVEL + NVVE_GPUOffloadLevel MaxOffloadLevel; // NVVE_GPU_OFFLOAD_LEVEL_MAX + int iSliceCnt; // NVVE_SLICE_COUNT //F19 + int iMultiGPU; // NVVE_MULTI_GPU //F21 + int iDeviceMemInput; // NVVE_DEVICE_MEMORY_INPUT //F23 + +// NVVE_STAT_NUM_CODED_FRAMES, +// NVVE_STAT_NUM_RECEIVED_FRAMES, +// NVVE_STAT_BITRATE, +// NVVE_STAT_NUM_BITS_GENERATED, +// NVVE_GET_PTS_DIFF_TIME, +// NVVE_GET_PTS_BASE_TIME, +// NVVE_GET_PTS_CODED_TIME, +// NVVE_GET_PTS_RECEIVED_TIME, +// NVVE_STAT_ELAPSED_TIME, +// NVVE_STAT_QBUF_FULLNESS, +// NVVE_STAT_PERF_FPS, +// NVVE_STAT_PERF_AVG_TIME, +}; + +typedef struct { + char *name; + char *yuv_type; + int bpp; +} _sYUVParams; + +static _sYUVParams sSurfaceFormat[] = +{ + { "UYVY", "4:2:2", 16 }, + { "YUY2", "4:2:2", 16 }, + { "YV12", "4:2:0", 12 }, + { "NV12", "4:2:0", 12 }, + { "IYUV", "4:2:0", 12 }, + { NULL , 0 } +}; + +typedef struct { + char *name; + int params; +} _sNVVEEncodeParams; + +static _sNVVEEncodeParams sNVVE_EncodeParams[] = +{ + { "UNDEFINED", 1 }, + { "NVVE_OUT_SIZE", 2 }, + { "NVVE_ASPECT_RATIO", 3 }, + { "NVVE_FIELD_ENC_MODE", 1 }, + { "NVVE_P_INTERVAL", 1 }, + { "NVVE_IDR_PERIOD", 1 }, + { "NVVE_DYNAMIC_GOP", 1 }, + { "NVVE_RC_TYPE", 1 }, + { "NVVE_AVG_BITRATE", 1 }, + { "NVVE_PEAK_BITRATE", 1 }, + { "NVVE_QP_LEVEL_INTRA", 1 }, + { "NVVE_QP_LEVEL_INTER_P", 1 }, + { "NVVE_QP_LEVEL_INTER_B", 1 }, + { "NVVE_FRAME_RATE", 2 }, + { "NVVE_DEBLOCK_MODE", 1 }, + { "NVVE_PROFILE_LEVEL", 1 }, + { "NVVE_FORCE_INTRA (DS)", 1 }, //DShow only + { "NVVE_FORCE_IDR (DS)", 1 }, //DShow only + { "NVVE_CLEAR_STAT (DS)", 1 }, //DShow only + { "NVVE_SET_DEINTERLACE", 1 }, + { "NVVE_PRESETS", 1 }, + { "NVVE_IN_SIZE", 2 }, + { "NVVE_STAT_NUM_CODED_FRAMES (DS)", 1 }, //DShow only + { "NVVE_STAT_NUM_RECEIVED_FRAMES (DS)", 1 }, //DShow only + { "NVVE_STAT_BITRATE (DS)", 1 }, //DShow only + { "NVVE_STAT_NUM_BITS_GENERATED (DS)", 1 }, //DShow only + { "NVVE_GET_PTS_DIFF_TIME (DS)", 1 }, //DShow only + { "NVVE_GET_PTS_BASE_TIME (DS)", 1 }, //DShow only + { "NVVE_GET_PTS_CODED_TIME (DS)", 1 }, //DShow only + { "NVVE_GET_PTS_RECEIVED_TIME (DS)", 1 }, //DShow only + { "NVVE_STAT_ELAPSED_TIME (DS)", 1 }, //DShow only + { "NVVE_STAT_QBUF_FULLNESS (DS)", 1 }, //DShow only + { "NVVE_STAT_PERF_FPS (DS)", 1 }, //DShow only + { "NVVE_STAT_PERF_AVG_TIME (DS)", 1 }, //DShow only + { "NVVE_DISABLE_CABAC", 1 }, + { "NVVE_CONFIGURE_NALU_FRAMING_TYPE", 1 }, + { "NVVE_DISABLE_SPS_PPS", 1 }, + { "NVVE_SLICE_COUNT", 1 }, + { "NVVE_GPU_OFFLOAD_LEVEL", 1 }, + { "NVVE_GPU_OFFLOAD_LEVEL_MAX", 1 }, + { "NVVE_MULTI_GPU", 1 }, + { "NVVE_GET_GPU_COUNT", 1 }, + { "NVVE_GET_GPU_ATTRIBUTES", 1 }, + { "NVVE_FORCE_GPU_SELECTION", 1 }, + { "NVVE_DEVICE_MEMORY_INPUT", 1 }, + { "NVVE_DEVICE_CTX_LOCK", 1 }, + { NULL, 0 } +}; + +static _sNVVEEncodeParams sProfileName[] = { + { "Baseline", 0x42 }, + { "Main" , 0x4d }, + { "High" , 0x64 }, + { NULL , 0 } +}; + +static _sNVVEEncodeParams sProfileLevel[] = { + { "1.0", 0x0a }, + { "1.1", 0x0b }, + { "1.2", 0x0c }, + { "1.3", 0x0d }, + { "2.0", 0x14 }, + { "2.1", 0x15 }, + { "2.2", 0x16 }, + { "3.0", 0x1e }, + { "3.1", 0x1f }, + { "3.2", 0x20 }, + { "4.0", 0x28 }, + { "4.1", 0x29 }, + { "4.2", 0x29 }, + { "5.0", 0x32 }, + { "5.1", 0x33 }, + { "Auto", 0xff }, + { NULL , 0 } +}; + +inline char * sProfileIDX2Char(_sNVVEEncodeParams *pProfile, int ID) +{ + int index; + for (index = 0; pProfile[index].name != NULL; index++) { + if (pProfile[index].params == ID) { + // found the profile return the string + return pProfile[index].name; + } + } + return NULL; +} + +static char *sVideoEncodePresets[] = { + "PSP ( 320x 240)", + "iPod/iPhone ( 320x 240)", + "AVCHD", + "BluRay", + "HDV_1440", + "ZuneHD", + "FlipCam", + NULL +}; + +static char *sGPUOffloadLevel[] = { + "CPU PEL processing", + "Motion Estimation", + "Full Encode", + NULL +}; + +static char *sPictureType[] = { + "Frame Mode", + "Field Mode (top first)", + "Field Mode (bottom first)", + "Field Mode (picaff) unsupported", + NULL +}; + +static char *sPictureStructure[] = { + "Unknown", + "Top Field", + "Bottom Field", + "Frame Picture", + NULL +}; + +// Rate Control Method (NVVE_RC_TYPE) +static char *sNVVE_RateCtrlType[] = { + "Rate Control CQP", + "Rate Control VBR", + "Rate Control CBR with QP", + "Rate Control VBR with Min QP", + NULL +}; + +#ifdef __cplusplus +} +#endif + +#endif |