@@ -32,55 +32,57 @@ static const char *sws_context_to_name(void *ptr)
32
32
#define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
33
33
34
34
static const AVOption swscale_options [] = {
35
- { "sws_flags" , "scaler flags" , OFFSET (flags ), AV_OPT_TYPE_FLAGS , { .i64 = SWS_BICUBIC }, 0 , UINT_MAX , VE , .unit = "sws_flags" },
36
- { "fast_bilinear" , "fast bilinear" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_FAST_BILINEAR }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
37
- { "bilinear" , "bilinear" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BILINEAR }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
38
- { "bicubic" , "bicubic" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BICUBIC }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
39
- { "experimental" , "experimental" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_X }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
40
- { "neighbor" , "nearest neighbor" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_POINT }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
41
- { "area" , "averaging area" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_AREA }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
42
- { "bicublin" , "luma bicubic, chroma bilinear" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BICUBLIN }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
43
- { "gauss" , "Gaussian " , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_GAUSS }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
44
- { "sinc" , "sinc" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_SINC }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
45
- { "lanczos" , "Lanczos " , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_LANCZOS }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
46
- { "spline" , "natural bicubic spline" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_SPLINE }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
47
- { "print_info" , "print info" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_PRINT_INFO }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
48
- { "accurate_rnd" , "accurate rounding" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ACCURATE_RND }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
49
- { "full_chroma_int" , "full chroma interpolation" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_FULL_CHR_H_INT }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
50
- { "full_chroma_inp" , "full chroma input" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_FULL_CHR_H_INP }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
51
- { "bitexact" , "" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BITEXACT }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
52
- { "error_diffusion" , "error diffusion dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ERROR_DIFFUSION }, INT_MIN , INT_MAX , VE , .unit = "sws_flags" },
35
+ { "sws_flags" , "swscale flags" , OFFSET (flags ), AV_OPT_TYPE_FLAGS , { .i64 = SWS_BICUBIC }, . flags = VE , .unit = "sws_flags" , . max = UINT_MAX },
36
+ { "fast_bilinear" , "fast bilinear" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_FAST_BILINEAR }, . flags = VE , .unit = "sws_flags" },
37
+ { "bilinear" , "bilinear" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BILINEAR }, . flags = VE , .unit = "sws_flags" },
38
+ { "bicubic" , "bicubic" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BICUBIC }, . flags = VE , .unit = "sws_flags" },
39
+ { "experimental" , "experimental" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_X }, . flags = VE , .unit = "sws_flags" },
40
+ { "neighbor" , "nearest neighbor" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_POINT }, . flags = VE , .unit = "sws_flags" },
41
+ { "area" , "averaging area" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_AREA }, . flags = VE , .unit = "sws_flags" },
42
+ { "bicublin" , "luma bicubic, chroma bilinear" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BICUBLIN }, . flags = VE , .unit = "sws_flags" },
43
+ { "gauss" , "gaussian approximation " , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_GAUSS }, . flags = VE , .unit = "sws_flags" },
44
+ { "sinc" , "sinc" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_SINC }, . flags = VE , .unit = "sws_flags" },
45
+ { "lanczos" , "lanczos (sinc/sinc) " , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_LANCZOS }, . flags = VE , .unit = "sws_flags" },
46
+ { "spline" , "natural bicubic spline" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_SPLINE }, . flags = VE , .unit = "sws_flags" },
47
+ { "print_info" , "print info" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_PRINT_INFO }, . flags = VE , .unit = "sws_flags" },
48
+ { "accurate_rnd" , "accurate rounding" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ACCURATE_RND }, . flags = VE , .unit = "sws_flags" },
49
+ { "full_chroma_int" , "full chroma interpolation" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_FULL_CHR_H_INT }, . flags = VE , .unit = "sws_flags" },
50
+ { "full_chroma_inp" , "full chroma input" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_FULL_CHR_H_INP }, . flags = VE , .unit = "sws_flags" },
51
+ { "bitexact" , "bit-exact mode " , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_BITEXACT }, . flags = VE , .unit = "sws_flags" },
52
+ { "error_diffusion" , "error diffusion dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ERROR_DIFFUSION }, . flags = VE , .unit = "sws_flags" },
53
53
54
- { "srcw" , "source width" , OFFSET (srcW ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
55
- { "srch" , "source height" , OFFSET (srcH ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
56
- { "dstw" , "destination width" , OFFSET (dstW ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
57
- { "dsth" , "destination height" , OFFSET (dstH ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
54
+ { "param0" , "scaler param 0" , OFFSET (param [0 ]), AV_OPT_TYPE_DOUBLE , { .dbl = SWS_PARAM_DEFAULT }, INT_MIN , INT_MAX , VE },
55
+ { "param1" , "scaler param 1" , OFFSET (param [1 ]), AV_OPT_TYPE_DOUBLE , { .dbl = SWS_PARAM_DEFAULT }, INT_MIN , INT_MAX , VE },
56
+
57
+ { "srcw" , "source width" , OFFSET (srcW ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
58
+ { "srch" , "source height" , OFFSET (srcH ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
59
+ { "dstw" , "destination width" , OFFSET (dstW ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
60
+ { "dsth" , "destination height" , OFFSET (dstH ), AV_OPT_TYPE_INT , { .i64 = 16 }, 1 , INT_MAX , VE },
58
61
{ "src_format" , "source format" , OFFSET (srcFormat ), AV_OPT_TYPE_PIXEL_FMT ,{ .i64 = DEFAULT }, 0 , INT_MAX , VE },
59
62
{ "dst_format" , "destination format" , OFFSET (dstFormat ), AV_OPT_TYPE_PIXEL_FMT ,{ .i64 = DEFAULT }, 0 , INT_MAX , VE },
60
- { "src_range" , "source is full range" , OFFSET (srcRange ), AV_OPT_TYPE_BOOL , { .i64 = DEFAULT }, 0 , 1 , VE },
61
- { "dst_range" , "destination is full range" , OFFSET (dstRange ), AV_OPT_TYPE_BOOL , { .i64 = DEFAULT }, 0 , 1 , VE },
62
- { "param0" , "scaler param 0" , OFFSET (param [0 ]), AV_OPT_TYPE_DOUBLE , { .dbl = SWS_PARAM_DEFAULT }, INT_MIN , INT_MAX , VE },
63
- { "param1" , "scaler param 1" , OFFSET (param [1 ]), AV_OPT_TYPE_DOUBLE , { .dbl = SWS_PARAM_DEFAULT }, INT_MIN , INT_MAX , VE },
63
+ { "src_range" , "source is full range" , OFFSET (srcRange ), AV_OPT_TYPE_BOOL , { .i64 = DEFAULT }, 0 , 1 , VE },
64
+ { "dst_range" , "destination is full range" , OFFSET (dstRange ), AV_OPT_TYPE_BOOL , { .i64 = DEFAULT }, 0 , 1 , VE },
65
+ { "gamma" , "gamma correct scaling" , OFFSET (gamma_flag ),AV_OPT_TYPE_BOOL , { .i64 = 0 }, 0 , 1 , VE },
66
+
67
+ { "src_v_chr_pos" , "source vertical chroma position in luma grid/256" , OFFSET (src_v_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
68
+ { "src_h_chr_pos" , "source horizontal chroma position in luma grid/256" , OFFSET (src_h_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
69
+ { "dst_v_chr_pos" , "destination vertical chroma position in luma grid/256" , OFFSET (dst_v_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
70
+ { "dst_h_chr_pos" , "destination horizontal chroma position in luma grid/256" , OFFSET (dst_h_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
64
71
65
- { "src_v_chr_pos" , "source vertical chroma position in luma grid/256" , OFFSET (src_v_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
66
- { "src_h_chr_pos" , "source horizontal chroma position in luma grid/256" , OFFSET (src_h_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
67
- { "dst_v_chr_pos" , "destination vertical chroma position in luma grid/256" , OFFSET (dst_v_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
68
- { "dst_h_chr_pos" , "destination horizontal chroma position in luma grid/256" , OFFSET (dst_h_chr_pos ), AV_OPT_TYPE_INT , { .i64 = -513 }, -513 , 1024 , VE },
72
+ { "sws_dither" , "set dithering algorithm" , OFFSET (dither ), AV_OPT_TYPE_INT , { .i64 = SWS_DITHER_AUTO }, .flags = VE , .unit = "sws_dither" , .max = SWS_DITHER_NB - 1 },
73
+ { "auto" , "automatic selection" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_AUTO }, .flags = VE , .unit = "sws_dither" },
74
+ { "bayer" , "ordered matrix dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_BAYER }, .flags = VE , .unit = "sws_dither" },
75
+ { "ed" , "full error diffusion" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_ED }, .flags = VE , .unit = "sws_dither" },
76
+ { "a_dither" , "arithmetic addition dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_A_DITHER }, .flags = VE , .unit = "sws_dither" },
77
+ { "x_dither" , "arithmetic xor dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_X_DITHER }, .flags = VE , .unit = "sws_dither" },
69
78
70
- { "sws_dither" , "set dithering algorithm" , OFFSET (dither ), AV_OPT_TYPE_INT , { .i64 = SWS_DITHER_AUTO }, 0 , SWS_DITHER_NB , VE , .unit = "sws_dither" },
71
- { "auto" , "leave choice to sws" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_AUTO }, INT_MIN , INT_MAX , VE , .unit = "sws_dither" },
72
- { "bayer" , "bayer dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_BAYER }, INT_MIN , INT_MAX , VE , .unit = "sws_dither" },
73
- { "ed" , "error diffusion" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_ED }, INT_MIN , INT_MAX , VE , .unit = "sws_dither" },
74
- { "a_dither" , "arithmetic addition dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_A_DITHER }, INT_MIN , INT_MAX , VE , .unit = "sws_dither" },
75
- { "x_dither" , "arithmetic xor dither" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_DITHER_X_DITHER }, INT_MIN , INT_MAX , VE , .unit = "sws_dither" },
76
- { "gamma" , "gamma correct scaling" , OFFSET (gamma_flag ),AV_OPT_TYPE_BOOL , { .i64 = 0 }, 0 , 1 , VE },
77
- { "alphablend" , "mode for alpha -> non alpha" , OFFSET (alphablend ),AV_OPT_TYPE_INT , { .i64 = SWS_ALPHA_BLEND_NONE }, 0 , SWS_ALPHA_BLEND_NB - 1 , VE , .unit = "alphablend" },
78
- { "none" , "ignore alpha" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ALPHA_BLEND_NONE }, INT_MIN , INT_MAX , VE , .unit = "alphablend" },
79
- { "uniform_color" , "blend onto a uniform color" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ALPHA_BLEND_UNIFORM },INT_MIN , INT_MAX , VE , .unit = "alphablend" },
80
- { "checkerboard" , "blend onto a checkerboard" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ALPHA_BLEND_CHECKERBOARD },INT_MIN , INT_MAX , VE , .unit = "alphablend" },
79
+ { "alphablend" , "mode for alpha -> non alpha" , OFFSET (alphablend ), AV_OPT_TYPE_INT , { .i64 = SWS_ALPHA_BLEND_NONE }, .flags = VE , .unit = "alphablend" , .max = SWS_ALPHA_BLEND_NB - 1 },
80
+ { "none" , "ignore alpha" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ALPHA_BLEND_NONE }, .flags = VE , .unit = "alphablend" },
81
+ { "uniform_color" , "blend onto a uniform color" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ALPHA_BLEND_UNIFORM }, .flags = VE , .unit = "alphablend" },
82
+ { "checkerboard" , "blend onto a checkerboard" , 0 , AV_OPT_TYPE_CONST , { .i64 = SWS_ALPHA_BLEND_CHECKERBOARD }, .flags = VE , .unit = "alphablend" },
81
83
82
84
{ "threads" , "number of threads" , OFFSET (nb_threads ), AV_OPT_TYPE_INT , {.i64 = 1 }, 0 , INT_MAX , VE , .unit = "threads" },
83
- { "auto" , NULL , 0 , AV_OPT_TYPE_CONST , {.i64 = 0 }, .flags = VE , .unit = "threads" },
85
+ { "auto" , "automatic selection" , 0 , AV_OPT_TYPE_CONST , {.i64 = 0 }, .flags = VE , .unit = "threads" },
84
86
85
87
{ NULL }
86
88
};
0 commit comments