|
|
|
@@ -56,6 +56,7 @@ static const enum AVPixelFormat supported_formats[] = { |
|
|
|
enum { |
|
|
|
INTERP_ALGO_DEFAULT, |
|
|
|
|
|
|
|
INTERP_ALGO_NEAREST, |
|
|
|
INTERP_ALGO_BILINEAR, |
|
|
|
INTERP_ALGO_BICUBIC, |
|
|
|
|
|
|
|
@@ -273,6 +274,12 @@ static av_cold int cudascale_config_props(AVFilterLink *outlink) |
|
|
|
extern char vf_scale_cuda_bicubic_ptx[]; |
|
|
|
|
|
|
|
switch(s->interp_algo) { |
|
|
|
case INTERP_ALGO_NEAREST: |
|
|
|
scaler_ptx = vf_scale_cuda_ptx; |
|
|
|
function_infix = "_Nearest"; |
|
|
|
s->interp_use_linear = 0; |
|
|
|
s->interp_as_integer = 1; |
|
|
|
break; |
|
|
|
case INTERP_ALGO_BILINEAR: |
|
|
|
scaler_ptx = vf_scale_cuda_ptx; |
|
|
|
function_infix = "_Bilinear"; |
|
|
|
@@ -591,6 +598,7 @@ static const AVOption options[] = { |
|
|
|
{ "w", "Output video width", OFFSET(w_expr), AV_OPT_TYPE_STRING, { .str = "iw" }, .flags = FLAGS }, |
|
|
|
{ "h", "Output video height", OFFSET(h_expr), AV_OPT_TYPE_STRING, { .str = "ih" }, .flags = FLAGS }, |
|
|
|
{ "interp_algo", "Interpolation algorithm used for resizing", OFFSET(interp_algo), AV_OPT_TYPE_INT, { .i64 = INTERP_ALGO_DEFAULT }, 0, INTERP_ALGO_COUNT - 1, FLAGS, "interp_algo" }, |
|
|
|
{ "nearest", "nearest neighbour", 0, AV_OPT_TYPE_CONST, { .i64 = INTERP_ALGO_NEAREST }, 0, 0, FLAGS, "interp_algo" }, |
|
|
|
{ "bilinear", "bilinear", 0, AV_OPT_TYPE_CONST, { .i64 = INTERP_ALGO_BILINEAR }, 0, 0, FLAGS, "interp_algo" }, |
|
|
|
{ "bicubic", "bicubic", 0, AV_OPT_TYPE_CONST, { .i64 = INTERP_ALGO_BICUBIC }, 0, 0, FLAGS, "interp_algo" }, |
|
|
|
{ "passthrough", "Do not process frames at all if parameters match", OFFSET(passthrough), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, FLAGS }, |
|
|
|
|