summaryrefslogtreecommitdiffstats
path: root/thirdparties/win32/include/cuda/types.h
diff options
context:
space:
mode:
authorMamadou DIOP <bossiel@yahoo.fr>2015-08-17 01:56:35 +0200
committerMamadou DIOP <bossiel@yahoo.fr>2015-08-17 01:56:35 +0200
commit631fffee8a28b1bec5ed1f1d26a20e0135967f99 (patch)
tree74afe3bf3efe15aa82bcd0272b2b0f4d48c2d837 /thirdparties/win32/include/cuda/types.h
parent7908865936604036e6f200f1b5e069f8752f3a3a (diff)
downloaddoubango-631fffee8a28b1bec5ed1f1d26a20e0135967f99.zip
doubango-631fffee8a28b1bec5ed1f1d26a20e0135967f99.tar.gz
-
Diffstat (limited to 'thirdparties/win32/include/cuda/types.h')
-rw-r--r--thirdparties/win32/include/cuda/types.h241
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
OpenPOWER on IntegriCloud