123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- /*
- * 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
|