} NvencDynLoadFunctions;
+enum {
+ PRESET_DEFAULT = 0,
+ PRESET_SLOW,
+ PRESET_MEDIUM,
+ PRESET_FAST,
+ PRESET_HP,
+ PRESET_HQ,
+ PRESET_BD ,
+ PRESET_LOW_LATENCY_DEFAULT ,
+ PRESET_LOW_LATENCY_HQ ,
+ PRESET_LOW_LATENCY_HP,
+ PRESET_LOSSLESS_DEFAULT, // lossless presets must be the last ones
+ PRESET_LOSSLESS_HP,
+};
+
+enum {
+ NV_ENC_H264_PROFILE_BASELINE,
+ NV_ENC_H264_PROFILE_MAIN,
+ NV_ENC_H264_PROFILE_HIGH,
+ NV_ENC_H264_PROFILE_HIGH_444P,
+};
+
+enum {
+ NVENC_LOWLATENCY = 1,
+ NVENC_LOSSLESS = 2,
+ NVENC_ONE_PASS = 4,
+ NVENC_TWO_PASSES = 8,
+};
+
typedef struct NvencContext
{
AVClass *avclass;
void *nvencoder;
- char *preset;
- char *profile;
- char *level;
- char *tier;
+ int preset;
+ int profile;
+ int level;
+ int tier;
+ int rc;
int cbr;
int twopass;
int gpu;
+ int flags;
int buffer_delay;
} NvencContext;