The previous default sets the allocated surfaces to 32 unless it is
user-overridden or the lookahead parameter is set.
Change the surfaces calculation for default, B-frames and lookahead scenario.
{"ll_2pass_quality","Multi-pass optimized for image quality (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_QUALITY},0,0,VE,"rc"},
{"ll_2pass_size","Multi-pass optimized for constant frame size (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP},0,0,VE,"rc"},
{"surfaces","Number of concurrent surfaces",OFFSET(nb_surfaces),AV_OPT_TYPE_INT,{.i64=32},0,INT_MAX,VE},
{"surfaces","Number of concurrent surfaces",OFFSET(nb_surfaces),AV_OPT_TYPE_INT,{.i64=0},0,MAX_REGISTERED_FRAMES,VE},
{"device","Select a specific NVENC device",OFFSET(device),AV_OPT_TYPE_INT,{.i64=-1},-2,INT_MAX,VE,"device"},
{"any","Pick the first device available",0,AV_OPT_TYPE_CONST,{.i64=ANY_DEVICE},0,0,VE,"device"},
{"list","List the available devices",0,AV_OPT_TYPE_CONST,{.i64=LIST_DEVICES},0,0,VE,"device"},
{"async_depth","Delay frame output by the given amount of frames",OFFSET(async_depth),AV_OPT_TYPE_INT,{.i64=INT_MAX},0,INT_MAX,VE},
{"delay","Delay frame output by the given amount of frames",OFFSET(async_depth),AV_OPT_TYPE_INT,{.i64=INT_MAX},0,INT_MAX,VE},
#if NVENCAPI_MAJOR_VERSION >= 7
{"rc-lookahead","Number of frames to look ahead for rate-control",OFFSET(rc_lookahead),AV_OPT_TYPE_INT,{.i64=-1},-1,INT_MAX,VE},
{"rc-lookahead","Number of frames to look ahead for rate-control",OFFSET(rc_lookahead),AV_OPT_TYPE_INT,{.i64=0},-1,INT_MAX,VE},
{"no-scenecut","When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts",OFFSET(no_scenecut),AV_OPT_TYPE_INT,{.i64=0},0,1,VE},
{"b_adapt","When lookahead is enabled, set this to 0 to disable adaptive B-frame decision",OFFSET(b_adapt),AV_OPT_TYPE_INT,{.i64=1},0,1,VE},
{"spatial-aq","set to 1 to enable Spatial AQ",OFFSET(aq),AV_OPT_TYPE_INT,{.i64=0},0,1,VE},
{"ll_2pass_quality","Multi-pass optimized for image quality (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_QUALITY},0,0,VE,"rc"},
{"ll_2pass_size","Multi-pass optimized for constant frame size (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP},0,0,VE,"rc"},
{"surfaces","Number of concurrent surfaces",OFFSET(nb_surfaces),AV_OPT_TYPE_INT,{.i64=32},0,INT_MAX,VE},
{"surfaces","Number of concurrent surfaces",OFFSET(nb_surfaces),AV_OPT_TYPE_INT,{.i64=0},0,MAX_REGISTERED_FRAMES,VE},
{"device","Select a specific NVENC device",OFFSET(device),AV_OPT_TYPE_INT,{.i64=-1},-2,INT_MAX,VE,"device"},
{"any","Pick the first device available",0,AV_OPT_TYPE_CONST,{.i64=ANY_DEVICE},0,0,VE,"device"},
{"list","List the available devices",0,AV_OPT_TYPE_CONST,{.i64=LIST_DEVICES},0,0,VE,"device"},
{"async_depth","Delay frame output by the given amount of frames",OFFSET(async_depth),AV_OPT_TYPE_INT,{.i64=INT_MAX},0,INT_MAX,VE},
{"delay","Delay frame output by the given amount of frames",OFFSET(async_depth),AV_OPT_TYPE_INT,{.i64=INT_MAX},0,INT_MAX,VE},
#if NVENCAPI_MAJOR_VERSION >= 7
{"rc-lookahead","Number of frames to look ahead for rate-control",OFFSET(rc_lookahead),AV_OPT_TYPE_INT,{.i64=-1},-1,INT_MAX,VE},
{"rc-lookahead","Number of frames to look ahead for rate-control",OFFSET(rc_lookahead),AV_OPT_TYPE_INT,{.i64=0},-1,INT_MAX,VE},
{"no-scenecut","When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts",OFFSET(no_scenecut),AV_OPT_TYPE_INT,{.i64=0},0,1,VE},
{"spatial_aq","set to 1 to enable Spatial AQ",OFFSET(aq),AV_OPT_TYPE_INT,{.i64=0},0,1,VE},
{"zerolatency","Set 1 to indicate zero latency operation (no reordering delay)",OFFSET(zerolatency),AV_OPT_TYPE_INT,{.i64=0},0,1,VE},