node-av 6.2.0 → 7.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -733,9 +733,9 @@ export interface FilterOptionsMap {
733
733
  */
734
734
  afireqsrc: {
735
735
  /** set equalizer preset */
736
- preset?: 'custom';
736
+ preset?: 'custom' | 'flat' | 'acoustic' | 'bass' | 'beats' | 'classic' | 'clear' | 'deep bass' | 'dubstep' | 'electronic' | 'hardstyle' | 'hip-hop' | 'jazz' | 'metal' | 'movie' | 'pop' | 'r&b' | 'rock' | 'vocal booster';
737
737
  /** set equalizer preset */
738
- p?: 'custom';
738
+ p?: 'custom' | 'flat' | 'acoustic' | 'bass' | 'beats' | 'classic' | 'clear' | 'deep bass' | 'dubstep' | 'electronic' | 'hardstyle' | 'hip-hop' | 'jazz' | 'metal' | 'movie' | 'pop' | 'r&b' | 'rock' | 'vocal booster';
739
739
  /** set gain values per band */
740
740
  gains?: string | number;
741
741
  /** set gain values per band */
@@ -1029,6 +1029,48 @@ export interface FilterOptionsMap {
1029
1029
  /** compensate delay */
1030
1030
  latency?: boolean;
1031
1031
  };
1032
+ /**
1033
+ * Apply a two-pole all-pass filter.
1034
+ * @see https://ffmpeg.org/ffmpeg-filters.html#allpass
1035
+ */
1036
+ allpass: {
1037
+ /** set central frequency */
1038
+ frequency?: number;
1039
+ /** set central frequency */
1040
+ f?: number;
1041
+ /** set filter-width type */
1042
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
1043
+ /** set filter-width type */
1044
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
1045
+ /** set width */
1046
+ width?: number;
1047
+ /** set width */
1048
+ w?: number;
1049
+ /** set mix */
1050
+ mix?: number;
1051
+ /** set mix */
1052
+ m?: number;
1053
+ /** set channels to filter */
1054
+ channels?: string | number;
1055
+ /** set channels to filter */
1056
+ c?: string | number;
1057
+ /** normalize coefficients */
1058
+ normalize?: boolean;
1059
+ /** normalize coefficients */
1060
+ n?: boolean;
1061
+ /** set filter order */
1062
+ order?: number;
1063
+ /** set filter order */
1064
+ o?: number;
1065
+ /** set transform type */
1066
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
1067
+ /** set transform type */
1068
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
1069
+ /** set filtering precision */
1070
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
1071
+ /** set filtering precision */
1072
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
1073
+ };
1032
1074
  /**
1033
1075
  * Generate all RGB colors.
1034
1076
  * @see https://ffmpeg.org/ffmpeg-filters.html#allrgb
@@ -1153,7 +1195,7 @@ export interface FilterOptionsMap {
1153
1195
  inputs?: number;
1154
1196
  /** How to determine the end-of-stream. */
1155
1197
  duration?: 'longest' | 'shortest' | 'first';
1156
- /** Transition time, in seconds, for volume */
1198
+ /** Transition time, in seconds, for volume renormalization when an input stream ends. */
1157
1199
  dropout_transition?: number;
1158
1200
  /** Set weight for each input. */
1159
1201
  weights?: string | number;
@@ -1627,7 +1669,12 @@ export interface FilterOptionsMap {
1627
1669
  * Change the sample rate without
1628
1670
  * @see https://ffmpeg.org/ffmpeg-filters.html#asetrate
1629
1671
  */
1630
- asetrate: {};
1672
+ asetrate: {
1673
+ /** set the sample rate */
1674
+ sample_rate?: number;
1675
+ /** set the sample rate */
1676
+ r?: number;
1677
+ };
1631
1678
  /**
1632
1679
  * Set timebase for the audio output link.
1633
1680
  * @see https://ffmpeg.org/ffmpeg-filters.html#asettb
@@ -1897,25 +1944,25 @@ export interface FilterOptionsMap {
1897
1944
  * @see https://ffmpeg.org/ffmpeg-filters.html#atrim
1898
1945
  */
1899
1946
  atrim: {
1900
- /** Timestamp of the first frame that */
1947
+ /** Timestamp of the first frame that should be passed */
1901
1948
  start?: string | number;
1902
- /** Timestamp of the first frame that */
1949
+ /** Timestamp of the first frame that should be passed */
1903
1950
  starti?: string | number;
1904
- /** Timestamp of the first frame that */
1951
+ /** Timestamp of the first frame that should be dropped again */
1905
1952
  end?: string | number;
1906
- /** Timestamp of the first frame that */
1953
+ /** Timestamp of the first frame that should be dropped again */
1907
1954
  endi?: string | number;
1908
- /** Timestamp of the first frame that should be */
1955
+ /** Timestamp of the first frame that should be passed */
1909
1956
  start_pts?: number;
1910
- /** Timestamp of the first frame that should be */
1957
+ /** Timestamp of the first frame that should be dropped again */
1911
1958
  end_pts?: number;
1912
1959
  /** Maximum duration of the output */
1913
1960
  duration?: string | number;
1914
1961
  /** Maximum duration of the output */
1915
1962
  durationi?: string | number;
1916
- /** Number of the first audio sample that should be */
1963
+ /** Number of the first audio sample that should be passed to the output */
1917
1964
  start_sample?: number;
1918
- /** Number of the first audio sample that should be */
1965
+ /** Number of the first audio sample that should be dropped again */
1919
1966
  end_sample?: number;
1920
1967
  };
1921
1968
  /**
@@ -2074,6 +2121,142 @@ export interface FilterOptionsMap {
2074
2121
  /** set the blend value */
2075
2122
  blend?: number;
2076
2123
  };
2124
+ /**
2125
+ * Apply a two-pole Butterworth band-pass filter.
2126
+ * @see https://ffmpeg.org/ffmpeg-filters.html#bandpass
2127
+ */
2128
+ bandpass: {
2129
+ /** set central frequency */
2130
+ frequency?: number;
2131
+ /** set central frequency */
2132
+ f?: number;
2133
+ /** set filter-width type */
2134
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
2135
+ /** set filter-width type */
2136
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
2137
+ /** set width */
2138
+ width?: number;
2139
+ /** set width */
2140
+ w?: number;
2141
+ /** use constant skirt gain */
2142
+ csg?: boolean;
2143
+ /** set mix */
2144
+ mix?: number;
2145
+ /** set mix */
2146
+ m?: number;
2147
+ /** set channels to filter */
2148
+ channels?: string | number;
2149
+ /** set channels to filter */
2150
+ c?: string | number;
2151
+ /** normalize coefficients */
2152
+ normalize?: boolean;
2153
+ /** normalize coefficients */
2154
+ n?: boolean;
2155
+ /** set transform type */
2156
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2157
+ /** set transform type */
2158
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2159
+ /** set filtering precision */
2160
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2161
+ /** set filtering precision */
2162
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2163
+ /** set the block size */
2164
+ blocksize?: number;
2165
+ /** set the block size */
2166
+ b?: number;
2167
+ };
2168
+ /**
2169
+ * Apply a two-pole Butterworth band-reject filter.
2170
+ * @see https://ffmpeg.org/ffmpeg-filters.html#bandreject
2171
+ */
2172
+ bandreject: {
2173
+ /** set central frequency */
2174
+ frequency?: number;
2175
+ /** set central frequency */
2176
+ f?: number;
2177
+ /** set filter-width type */
2178
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
2179
+ /** set filter-width type */
2180
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
2181
+ /** set width */
2182
+ width?: number;
2183
+ /** set width */
2184
+ w?: number;
2185
+ /** set mix */
2186
+ mix?: number;
2187
+ /** set mix */
2188
+ m?: number;
2189
+ /** set channels to filter */
2190
+ channels?: string | number;
2191
+ /** set channels to filter */
2192
+ c?: string | number;
2193
+ /** normalize coefficients */
2194
+ normalize?: boolean;
2195
+ /** normalize coefficients */
2196
+ n?: boolean;
2197
+ /** set transform type */
2198
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2199
+ /** set transform type */
2200
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2201
+ /** set filtering precision */
2202
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2203
+ /** set filtering precision */
2204
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2205
+ /** set the block size */
2206
+ blocksize?: number;
2207
+ /** set the block size */
2208
+ b?: number;
2209
+ };
2210
+ /**
2211
+ * Boost or cut lower frequencies.
2212
+ * @see https://ffmpeg.org/ffmpeg-filters.html#bass
2213
+ */
2214
+ bass: {
2215
+ /** set central frequency */
2216
+ frequency?: number;
2217
+ /** set central frequency */
2218
+ f?: number;
2219
+ /** set filter-width type */
2220
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
2221
+ /** set filter-width type */
2222
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
2223
+ /** set width */
2224
+ width?: number;
2225
+ /** set width */
2226
+ w?: number;
2227
+ /** set gain */
2228
+ gain?: number;
2229
+ /** set gain */
2230
+ g?: number;
2231
+ /** set number of poles */
2232
+ poles?: number;
2233
+ /** set number of poles */
2234
+ p?: number;
2235
+ /** set mix */
2236
+ mix?: number;
2237
+ /** set mix */
2238
+ m?: number;
2239
+ /** set channels to filter */
2240
+ channels?: string | number;
2241
+ /** set channels to filter */
2242
+ c?: string | number;
2243
+ /** normalize coefficients */
2244
+ normalize?: boolean;
2245
+ /** normalize coefficients */
2246
+ n?: boolean;
2247
+ /** set transform type */
2248
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2249
+ /** set transform type */
2250
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2251
+ /** set filtering precision */
2252
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2253
+ /** set filtering precision */
2254
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2255
+ /** set the block size */
2256
+ blocksize?: number;
2257
+ /** set the block size */
2258
+ b?: number;
2259
+ };
2077
2260
  /**
2078
2261
  * Compute bounding box for each frame.
2079
2262
  * @see https://ffmpeg.org/ffmpeg-filters.html#bbox
@@ -2114,6 +2297,42 @@ export interface FilterOptionsMap {
2114
2297
  /** set neighbours window_size */
2115
2298
  window_size?: number;
2116
2299
  };
2300
+ /**
2301
+ * Apply a biquad IIR filter with the given coefficients.
2302
+ * @see https://ffmpeg.org/ffmpeg-filters.html#biquad
2303
+ */
2304
+ biquad: {
2305
+ a0?: number;
2306
+ a1?: number;
2307
+ a2?: number;
2308
+ b0?: number;
2309
+ b1?: number;
2310
+ b2?: number;
2311
+ /** set mix */
2312
+ mix?: number;
2313
+ /** set mix */
2314
+ m?: number;
2315
+ /** set channels to filter */
2316
+ channels?: string | number;
2317
+ /** set channels to filter */
2318
+ c?: string | number;
2319
+ /** normalize coefficients */
2320
+ normalize?: boolean;
2321
+ /** normalize coefficients */
2322
+ n?: boolean;
2323
+ /** set transform type */
2324
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2325
+ /** set transform type */
2326
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
2327
+ /** set filtering precision */
2328
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2329
+ /** set filtering precision */
2330
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
2331
+ /** set the block size */
2332
+ blocksize?: number;
2333
+ /** set the block size */
2334
+ b?: number;
2335
+ };
2117
2336
  /**
2118
2337
  * Measure bit plane noise.
2119
2338
  * @see https://ffmpeg.org/ffmpeg-filters.html#bitplanenoise
@@ -2169,7 +2388,7 @@ export interface FilterOptionsMap {
2169
2388
  * @see https://ffmpeg.org/ffmpeg-filters.html#blackframe
2170
2389
  */
2171
2390
  blackframe: {
2172
- /** percentage of the pixels that have to be below the threshold */
2391
+ /** percentage of the pixels that have to be below the threshold for the frame to be considered black */
2173
2392
  amount?: number;
2174
2393
  /** threshold below which a pixel value is considered black */
2175
2394
  threshold?: number;
@@ -2226,15 +2445,15 @@ export interface FilterOptionsMap {
2226
2445
  */
2227
2446
  blend_vulkan: {
2228
2447
  /** set component #0 blend mode */
2229
- c0_mode?: 'addition' | 'addition128' | 'grainmerge' | 'and' | 'average' | 'burn' | 'darken' | 'difference' | 'difference128' | 'grainextract' | 'divide' | 'dodge' | 'exclusion' | 'extremity' | 'freeze' | 'glow' | 'hardlight' | 'hardmix' | 'heat' | 'lighten' | 'linearlight' | 'multiply' | 'multiply128' | 'negation' | 'normal' | 'or' | 'overlay' | 'phoenix' | 'pinlight' | 'reflect' | 'screen' | 'softlight' | 'subtract' | 'vividlight' | 'xor' | 'softdifference' | 'geometric' | 'harmonic' | 'bleach' | 'stain' | 'interpolate' | 'hardoverlay';
2448
+ c0_mode?: 'normal' | 'multiply';
2230
2449
  /** set component #1 blend mode */
2231
- c1_mode?: 'addition' | 'addition128' | 'grainmerge' | 'and' | 'average' | 'burn' | 'darken' | 'difference' | 'difference128' | 'grainextract' | 'divide' | 'dodge' | 'exclusion' | 'extremity' | 'freeze' | 'glow' | 'hardlight' | 'hardmix' | 'heat' | 'lighten' | 'linearlight' | 'multiply' | 'multiply128' | 'negation' | 'normal' | 'or' | 'overlay' | 'phoenix' | 'pinlight' | 'reflect' | 'screen' | 'softlight' | 'subtract' | 'vividlight' | 'xor' | 'softdifference' | 'geometric' | 'harmonic' | 'bleach' | 'stain' | 'interpolate' | 'hardoverlay';
2450
+ c1_mode?: 'normal' | 'multiply';
2232
2451
  /** set component #2 blend mode */
2233
- c2_mode?: 'addition' | 'addition128' | 'grainmerge' | 'and' | 'average' | 'burn' | 'darken' | 'difference' | 'difference128' | 'grainextract' | 'divide' | 'dodge' | 'exclusion' | 'extremity' | 'freeze' | 'glow' | 'hardlight' | 'hardmix' | 'heat' | 'lighten' | 'linearlight' | 'multiply' | 'multiply128' | 'negation' | 'normal' | 'or' | 'overlay' | 'phoenix' | 'pinlight' | 'reflect' | 'screen' | 'softlight' | 'subtract' | 'vividlight' | 'xor' | 'softdifference' | 'geometric' | 'harmonic' | 'bleach' | 'stain' | 'interpolate' | 'hardoverlay';
2452
+ c2_mode?: 'normal' | 'multiply';
2234
2453
  /** set component #3 blend mode */
2235
- c3_mode?: 'addition' | 'addition128' | 'grainmerge' | 'and' | 'average' | 'burn' | 'darken' | 'difference' | 'difference128' | 'grainextract' | 'divide' | 'dodge' | 'exclusion' | 'extremity' | 'freeze' | 'glow' | 'hardlight' | 'hardmix' | 'heat' | 'lighten' | 'linearlight' | 'multiply' | 'multiply128' | 'negation' | 'normal' | 'or' | 'overlay' | 'phoenix' | 'pinlight' | 'reflect' | 'screen' | 'softlight' | 'subtract' | 'vividlight' | 'xor' | 'softdifference' | 'geometric' | 'harmonic' | 'bleach' | 'stain' | 'interpolate' | 'hardoverlay';
2454
+ c3_mode?: 'normal' | 'multiply';
2236
2455
  /** set blend mode for all components */
2237
- all_mode?: 'addition' | 'addition128' | 'grainmerge' | 'and' | 'average' | 'burn' | 'darken' | 'difference' | 'difference128' | 'grainextract' | 'divide' | 'dodge' | 'exclusion' | 'extremity' | 'freeze' | 'glow' | 'hardlight' | 'hardmix' | 'heat' | 'lighten' | 'linearlight' | 'multiply' | 'multiply128' | 'negation' | 'normal' | 'or' | 'overlay' | 'phoenix' | 'pinlight' | 'reflect' | 'screen' | 'softlight' | 'subtract' | 'vividlight' | 'xor' | 'softdifference' | 'geometric' | 'harmonic' | 'bleach' | 'stain' | 'interpolate' | 'hardoverlay';
2456
+ all_mode?: 'normal' | 'multiply';
2238
2457
  /** set color component #0 opacity */
2239
2458
  c0_opacity?: number;
2240
2459
  /** set color component #1 opacity */
@@ -2436,7 +2655,28 @@ export interface FilterOptionsMap {
2436
2655
  * Deinterlace CUDA frames
2437
2656
  * @see https://ffmpeg.org/ffmpeg-filters.html#bwdif_005fcuda
2438
2657
  */
2439
- bwdif_cuda: {};
2658
+ bwdif_cuda: {
2659
+ /** specify the interlacing mode */
2660
+ mode?: 'send_frame' | 'send_field' | 'send_frame_nospatial' | 'send_field_nospatial';
2661
+ /** specify the assumed picture field parity */
2662
+ parity?: 'tff' | 'bff' | 'auto';
2663
+ /** specify which frames to deinterlace */
2664
+ deint?: 'all' | 'interlaced';
2665
+ };
2666
+ /**
2667
+ * Deinterlace D3D11 frames using BWDIF
2668
+ * @see https://ffmpeg.org/ffmpeg-filters.html#bwdif_005fd3d11
2669
+ */
2670
+ bwdif_d3d11: {
2671
+ /** specify the interlacing mode */
2672
+ mode?: 'send_frame' | 'send_field' | 'send_frame_nospatial' | 'send_field_nospatial';
2673
+ /** specify the assumed picture field parity */
2674
+ parity?: 'tff' | 'bff' | 'auto';
2675
+ /** specify which frames to deinterlace */
2676
+ deint?: 'all' | 'interlaced';
2677
+ /** Force output through an internal unordered-access texture */
2678
+ force_output_copy?: boolean;
2679
+ };
2440
2680
  /**
2441
2681
  * Deinterlace (BWDIF) the video through OpenCL.
2442
2682
  * @see https://ffmpeg.org/ffmpeg-filters.html#bwdif_005fopencl
@@ -2449,11 +2689,30 @@ export interface FilterOptionsMap {
2449
2689
  /** specify which frames to deinterlace */
2450
2690
  deint?: 'all' | 'interlaced';
2451
2691
  };
2692
+ /**
2693
+ * BWDIF for VideoToolbox frames using Metal compute
2694
+ * @see https://ffmpeg.org/ffmpeg-filters.html#bwdif_005fvideotoolbox
2695
+ */
2696
+ bwdif_videotoolbox: {
2697
+ /** specify the interlacing mode */
2698
+ mode?: 'send_frame' | 'send_field';
2699
+ /** specify the assumed picture field parity */
2700
+ parity?: 'tff' | 'bff' | 'auto';
2701
+ /** specify which frames to deinterlace */
2702
+ deint?: 'all' | 'interlaced';
2703
+ };
2452
2704
  /**
2453
2705
  * Deinterlace Vulkan frames via bwdif
2454
2706
  * @see https://ffmpeg.org/ffmpeg-filters.html#bwdif_005fvulkan
2455
2707
  */
2456
- bwdif_vulkan: {};
2708
+ bwdif_vulkan: {
2709
+ /** specify the interlacing mode */
2710
+ mode?: 'send_frame' | 'send_field' | 'send_frame_nospatial' | 'send_field_nospatial';
2711
+ /** specify the assumed picture field parity */
2712
+ parity?: 'tff' | 'bff' | 'auto';
2713
+ /** specify which frames to deinterlace */
2714
+ deint?: 'all' | 'interlaced';
2715
+ };
2457
2716
  /**
2458
2717
  * Contrast Adaptive Sharpen.
2459
2718
  * @see https://ffmpeg.org/ffmpeg-filters.html#cas
@@ -3186,12 +3445,69 @@ export interface FilterOptionsMap {
3186
3445
  * Convolve first video stream with second video stream.
3187
3446
  * @see https://ffmpeg.org/ffmpeg-filters.html#convolve
3188
3447
  */
3189
- convolve: {};
3448
+ convolve: {
3449
+ /** set planes to convolve */
3450
+ planes?: number;
3451
+ /** when to process impulses */
3452
+ impulse?: 'first' | 'all';
3453
+ /** set noise */
3454
+ noise?: number;
3455
+ /** Action to take when encountering EOF from secondary input */
3456
+ eof_action?: 'repeat' | 'endall' | 'pass';
3457
+ /** force termination when the shortest input terminates */
3458
+ shortest?: boolean;
3459
+ /** extend last frame of secondary streams beyond EOF */
3460
+ repeatlast?: boolean;
3461
+ /** How strictly to sync streams based on secondary input timestamps */
3462
+ ts_sync_mode?: 'default' | 'nearest';
3463
+ };
3190
3464
  /**
3191
3465
  * Copy the input video unchanged to the output.
3192
3466
  * @see https://ffmpeg.org/ffmpeg-filters.html#copy
3193
3467
  */
3194
3468
  copy: {};
3469
+ /**
3470
+ * Video filtering using CoreImage API.
3471
+ * @see https://ffmpeg.org/ffmpeg-filters.html#coreimage
3472
+ */
3473
+ coreimage: {
3474
+ /** list available filters */
3475
+ list_filters?: boolean;
3476
+ /** list available generators */
3477
+ list_generators?: boolean;
3478
+ /** names and options of filters to apply */
3479
+ filter?: string | number;
3480
+ /** output rectangle within output image */
3481
+ output_rect?: string | number;
3482
+ };
3483
+ /**
3484
+ * Video source using image generators of CoreImage API.
3485
+ * @see https://ffmpeg.org/ffmpeg-filters.html#coreimagesrc
3486
+ */
3487
+ coreimagesrc: {
3488
+ /** set video size */
3489
+ size?: string | number;
3490
+ /** set video size */
3491
+ s?: string | number;
3492
+ /** set video rate */
3493
+ rate?: string | number;
3494
+ /** set video rate */
3495
+ r?: string | number;
3496
+ /** set video duration */
3497
+ duration?: string | number;
3498
+ /** set video duration */
3499
+ d?: string | number;
3500
+ /** set video sample aspect ratio */
3501
+ sar?: string | number;
3502
+ /** list available filters */
3503
+ list_filters?: boolean;
3504
+ /** list available generators */
3505
+ list_generators?: boolean;
3506
+ /** names and options of filters to apply */
3507
+ filter?: string | number;
3508
+ /** output rectangle within output image */
3509
+ output_rect?: string | number;
3510
+ };
3195
3511
  /**
3196
3512
  * Calculate the correlation between two video streams.
3197
3513
  * @see https://ffmpeg.org/ffmpeg-filters.html#corr
@@ -3502,7 +3818,22 @@ export interface FilterOptionsMap {
3502
3818
  * Deconvolve first video stream with second video stream.
3503
3819
  * @see https://ffmpeg.org/ffmpeg-filters.html#deconvolve
3504
3820
  */
3505
- deconvolve: {};
3821
+ deconvolve: {
3822
+ /** set planes to deconvolve */
3823
+ planes?: number;
3824
+ /** when to process impulses */
3825
+ impulse?: 'first' | 'all';
3826
+ /** set noise */
3827
+ noise?: number;
3828
+ /** Action to take when encountering EOF from secondary input */
3829
+ eof_action?: 'repeat' | 'endall' | 'pass';
3830
+ /** force termination when the shortest input terminates */
3831
+ shortest?: boolean;
3832
+ /** extend last frame of secondary streams beyond EOF */
3833
+ repeatlast?: boolean;
3834
+ /** How strictly to sync streams based on secondary input timestamps */
3835
+ ts_sync_mode?: 'default' | 'nearest';
3836
+ };
3506
3837
  /**
3507
3838
  * Reduce cross-luminance and cross-color.
3508
3839
  * @see https://ffmpeg.org/ffmpeg-filters.html#dedot
@@ -3533,6 +3864,20 @@ export interface FilterOptionsMap {
3533
3864
  /** set output mode */
3534
3865
  s?: 'i' | 'o' | 'e';
3535
3866
  };
3867
+ /**
3868
+ * Apply deflate effect.
3869
+ * @see https://ffmpeg.org/ffmpeg-filters.html#deflate
3870
+ */
3871
+ deflate: {
3872
+ /** set threshold for 1st plane */
3873
+ threshold0?: number;
3874
+ /** set threshold for 2nd plane */
3875
+ threshold1?: number;
3876
+ /** set threshold for 3rd plane */
3877
+ threshold2?: number;
3878
+ /** set threshold for 4th plane */
3879
+ threshold3?: number;
3880
+ };
3536
3881
  /**
3537
3882
  * Remove temporal frame luminance variations.
3538
3883
  * @see https://ffmpeg.org/ffmpeg-filters.html#deflicker
@@ -3561,6 +3906,16 @@ export interface FilterOptionsMap {
3561
3906
  /** Specify which frames to deinterlace */
3562
3907
  deint?: 'all' | 'interlaced';
3563
3908
  };
3909
+ /**
3910
+ * Quick Sync Video
3911
+ * @see https://ffmpeg.org/ffmpeg-filters.html#deinterlace_005fqsv
3912
+ */
3913
+ deinterlace_qsv: {
3914
+ /** set deinterlace mode */
3915
+ mode?: 'bob' | 'advanced';
3916
+ /** Internal parallelization depth, the higher the value the higher the latency. */
3917
+ async_depth?: number;
3918
+ };
3564
3919
  /**
3565
3920
  * Deinterlacing of VAAPI surfaces
3566
3921
  * @see https://ffmpeg.org/ffmpeg-filters.html#deinterlace_005fvaapi
@@ -3609,7 +3964,12 @@ export interface FilterOptionsMap {
3609
3964
  * Apply derain filter to the input.
3610
3965
  * @see https://ffmpeg.org/ffmpeg-filters.html#derain
3611
3966
  */
3612
- derain: {};
3967
+ derain: {
3968
+ /** filter type(derain/dehaze) */
3969
+ filter_type?: 'derain' | 'dehaze';
3970
+ /** DNN backend */
3971
+ dnn_backend?: 'tensorflow';
3972
+ };
3613
3973
  /**
3614
3974
  * Stabilize shaky video.
3615
3975
  * @see https://ffmpeg.org/ffmpeg-filters.html#deshake
@@ -3645,7 +4005,7 @@ export interface FilterOptionsMap {
3645
4005
  * @see https://ffmpeg.org/ffmpeg-filters.html#deshake_005fopencl
3646
4006
  */
3647
4007
  deshake_opencl: {
3648
- /** simulates a tripod by preventing any camera movement whatsoever */
4008
+ /** simulates a tripod by preventing any camera movement whatsoever from the original frame */
3649
4009
  tripod?: boolean;
3650
4010
  /** turn on additional debugging information */
3651
4011
  debug?: boolean;
@@ -3704,6 +4064,22 @@ export interface FilterOptionsMap {
3704
4064
  /** set voice detection factor */
3705
4065
  voice?: number;
3706
4066
  };
4067
+ /**
4068
+ * Apply dilation effect.
4069
+ * @see https://ffmpeg.org/ffmpeg-filters.html#dilation
4070
+ */
4071
+ dilation: {
4072
+ /** set coordinates */
4073
+ coordinates?: number;
4074
+ /** set threshold for 1st plane */
4075
+ threshold0?: number;
4076
+ /** set threshold for 2nd plane */
4077
+ threshold1?: number;
4078
+ /** set threshold for 3rd plane */
4079
+ threshold2?: number;
4080
+ /** set threshold for 4th plane */
4081
+ threshold3?: number;
4082
+ };
3707
4083
  /**
3708
4084
  * Apply dilation effect
3709
4085
  * @see https://ffmpeg.org/ffmpeg-filters.html#dilation_005fopencl
@@ -3732,17 +4108,46 @@ export interface FilterOptionsMap {
3732
4108
  * Apply DNN classify filter to the input.
3733
4109
  * @see https://ffmpeg.org/ffmpeg-filters.html#dnn_005fclassify
3734
4110
  */
3735
- dnn_classify: {};
4111
+ dnn_classify: {
4112
+ /** DNN backend */
4113
+ dnn_backend?: 'openvino';
4114
+ /** threshold of confidence */
4115
+ confidence?: number;
4116
+ /** path to labels file */
4117
+ labels?: string | number;
4118
+ /** which one to be classified */
4119
+ target?: string | number;
4120
+ };
3736
4121
  /**
3737
4122
  * Apply DNN detect filter to the input.
3738
4123
  * @see https://ffmpeg.org/ffmpeg-filters.html#dnn_005fdetect
3739
4124
  */
3740
- dnn_detect: {};
4125
+ dnn_detect: {
4126
+ /** DNN backend */
4127
+ dnn_backend?: 'tensorflow' | 'openvino';
4128
+ /** threshold of confidence */
4129
+ confidence?: number;
4130
+ /** path to labels file */
4131
+ labels?: string | number;
4132
+ /** DNN detection model type */
4133
+ model_type?: 'ssd' | 'yolo' | 'yolov3' | 'yolov4';
4134
+ /** cell width */
4135
+ cell_w?: number;
4136
+ /** cell height */
4137
+ cell_h?: number;
4138
+ /** The number of class */
4139
+ nb_classes?: number;
4140
+ /** anchors, split by '&' */
4141
+ anchors?: string | number;
4142
+ };
3741
4143
  /**
3742
4144
  * Apply DNN processing filter to the input.
3743
4145
  * @see https://ffmpeg.org/ffmpeg-filters.html#dnn_005fprocessing
3744
4146
  */
3745
- dnn_processing: {};
4147
+ dnn_processing: {
4148
+ /** DNN backend */
4149
+ dnn_backend?: 'tensorflow' | 'openvino' | 'torch';
4150
+ };
3746
4151
  /**
3747
4152
  * Weave input video fields into double number of frames.
3748
4153
  * @see https://ffmpeg.org/ffmpeg-filters.html#doubleweave
@@ -4157,11 +4562,73 @@ export interface FilterOptionsMap {
4157
4562
  eval?: 'init' | 'frame';
4158
4563
  };
4159
4564
  /**
4160
- * Apply erosion effect
4161
- * @see https://ffmpeg.org/ffmpeg-filters.html#erosion_005fopencl
4565
+ * Apply two-pole peaking equalization (EQ) filter.
4566
+ * @see https://ffmpeg.org/ffmpeg-filters.html#equalizer
4162
4567
  */
4163
- erosion_opencl: {
4164
- /** set threshold for 1st plane */
4568
+ equalizer: {
4569
+ /** set central frequency */
4570
+ frequency?: number;
4571
+ /** set central frequency */
4572
+ f?: number;
4573
+ /** set filter-width type */
4574
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
4575
+ /** set filter-width type */
4576
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
4577
+ /** set width */
4578
+ width?: number;
4579
+ /** set width */
4580
+ w?: number;
4581
+ /** set gain */
4582
+ gain?: number;
4583
+ /** set gain */
4584
+ g?: number;
4585
+ /** set mix */
4586
+ mix?: number;
4587
+ /** set mix */
4588
+ m?: number;
4589
+ /** set channels to filter */
4590
+ channels?: string | number;
4591
+ /** set channels to filter */
4592
+ c?: string | number;
4593
+ /** normalize coefficients */
4594
+ normalize?: boolean;
4595
+ /** normalize coefficients */
4596
+ n?: boolean;
4597
+ /** set transform type */
4598
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
4599
+ /** set transform type */
4600
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
4601
+ /** set filtering precision */
4602
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
4603
+ /** set filtering precision */
4604
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
4605
+ /** set the block size */
4606
+ blocksize?: number;
4607
+ /** set the block size */
4608
+ b?: number;
4609
+ };
4610
+ /**
4611
+ * Apply erosion effect.
4612
+ * @see https://ffmpeg.org/ffmpeg-filters.html#erosion
4613
+ */
4614
+ erosion: {
4615
+ /** set coordinates */
4616
+ coordinates?: number;
4617
+ /** set threshold for 1st plane */
4618
+ threshold0?: number;
4619
+ /** set threshold for 2nd plane */
4620
+ threshold1?: number;
4621
+ /** set threshold for 3rd plane */
4622
+ threshold2?: number;
4623
+ /** set threshold for 4th plane */
4624
+ threshold3?: number;
4625
+ };
4626
+ /**
4627
+ * Apply erosion effect
4628
+ * @see https://ffmpeg.org/ffmpeg-filters.html#erosion_005fopencl
4629
+ */
4630
+ erosion_opencl: {
4631
+ /** set threshold for 1st plane */
4165
4632
  threshold0?: number;
4166
4633
  /** set threshold for 2nd plane */
4167
4634
  threshold1?: number;
@@ -4576,26 +5043,6 @@ export interface FilterOptionsMap {
4576
5043
  /** set frame step */
4577
5044
  step?: number;
4578
5045
  };
4579
- /**
4580
- * AMF video Frame Rate Converter
4581
- * @see https://ffmpeg.org/ffmpeg-filters.html#frc_005famf
4582
- */
4583
- frc_amf: {
4584
- /** Engine type */
4585
- engine_type?: number;
4586
- /** Enable FRC */
4587
- enable?: boolean;
4588
- /** Fallback behavior in case of low interpolation confidence */
4589
- fallback_mode?: number;
4590
- /** Show FRC indicator square in the top left corner of the video. */
4591
- indicator?: boolean;
4592
- /** Level of hierarchical motion search */
4593
- profile?: number;
4594
- /** Performance mode of the motion search */
4595
- mv_search_mode?: number;
4596
- /** Enable dependency on future frame, improves quality for the cost of latency */
4597
- use_future_frame?: boolean;
4598
- };
4599
5046
  /**
4600
5047
  * Detects frozen video input.
4601
5048
  * @see https://ffmpeg.org/ffmpeg-filters.html#freezedetect
@@ -4738,7 +5185,7 @@ export interface FilterOptionsMap {
4738
5185
  * @see https://ffmpeg.org/ffmpeg-filters.html#gfxcapture
4739
5186
  */
4740
5187
  gfxcapture: {
4741
- /** ECMAScript regular expression to match against the window title. */
5188
+ /** ECMAScript regular expression to match against the window title. Supports PCRE style (?i) prefix for case-insensitivity. */
4742
5189
  window_title?: string | number;
4743
5190
  /** as window_title, but against the window class */
4744
5191
  window_class?: string | number;
@@ -4874,6 +5321,18 @@ export interface FilterOptionsMap {
4874
5321
  * @see https://ffmpeg.org/ffmpeg-filters.html#grayworld
4875
5322
  */
4876
5323
  grayworld: {};
5324
+ /**
5325
+ * Estimates scene illumination by grey edge assumption.
5326
+ * @see https://ffmpeg.org/ffmpeg-filters.html#greyedge
5327
+ */
5328
+ greyedge: {
5329
+ /** set differentiation order */
5330
+ difford?: number;
5331
+ /** set Minkowski norm */
5332
+ minknorm?: number;
5333
+ /** set sigma */
5334
+ sigma?: number;
5335
+ };
4877
5336
  /**
4878
5337
  * Apply Guided filter.
4879
5338
  * @see https://ffmpeg.org/ffmpeg-filters.html#guided
@@ -4929,8 +5388,6 @@ export interface FilterOptionsMap {
4929
5388
  * @see https://ffmpeg.org/ffmpeg-filters.html#haldclut
4930
5389
  */
4931
5390
  haldclut: {
4932
- /** set 3D LUT file name */
4933
- file?: string | number;
4934
5391
  /** when to process CLUT */
4935
5392
  clut?: 'first' | 'all';
4936
5393
  /** select interpolation mode */
@@ -5008,6 +5465,102 @@ export interface FilterOptionsMap {
5008
5465
  * @see https://ffmpeg.org/ffmpeg-filters.html#hflip_005fvulkan
5009
5466
  */
5010
5467
  hflip_vulkan: {};
5468
+ /**
5469
+ * Apply a high-pass filter with 3dB point frequency.
5470
+ * @see https://ffmpeg.org/ffmpeg-filters.html#highpass
5471
+ */
5472
+ highpass: {
5473
+ /** set frequency */
5474
+ frequency?: number;
5475
+ /** set frequency */
5476
+ f?: number;
5477
+ /** set filter-width type */
5478
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
5479
+ /** set filter-width type */
5480
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
5481
+ /** set width */
5482
+ width?: number;
5483
+ /** set width */
5484
+ w?: number;
5485
+ /** set number of poles */
5486
+ poles?: number;
5487
+ /** set number of poles */
5488
+ p?: number;
5489
+ /** set mix */
5490
+ mix?: number;
5491
+ /** set mix */
5492
+ m?: number;
5493
+ /** set channels to filter */
5494
+ channels?: string | number;
5495
+ /** set channels to filter */
5496
+ c?: string | number;
5497
+ /** normalize coefficients */
5498
+ normalize?: boolean;
5499
+ /** normalize coefficients */
5500
+ n?: boolean;
5501
+ /** set transform type */
5502
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
5503
+ /** set transform type */
5504
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
5505
+ /** set filtering precision */
5506
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
5507
+ /** set filtering precision */
5508
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
5509
+ /** set the block size */
5510
+ blocksize?: number;
5511
+ /** set the block size */
5512
+ b?: number;
5513
+ };
5514
+ /**
5515
+ * Apply a high shelf filter.
5516
+ * @see https://ffmpeg.org/ffmpeg-filters.html#highshelf
5517
+ */
5518
+ highshelf: {
5519
+ /** set central frequency */
5520
+ frequency?: number;
5521
+ /** set central frequency */
5522
+ f?: number;
5523
+ /** set filter-width type */
5524
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
5525
+ /** set filter-width type */
5526
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
5527
+ /** set width */
5528
+ width?: number;
5529
+ /** set width */
5530
+ w?: number;
5531
+ /** set gain */
5532
+ gain?: number;
5533
+ /** set gain */
5534
+ g?: number;
5535
+ /** set number of poles */
5536
+ poles?: number;
5537
+ /** set number of poles */
5538
+ p?: number;
5539
+ /** set mix */
5540
+ mix?: number;
5541
+ /** set mix */
5542
+ m?: number;
5543
+ /** set channels to filter */
5544
+ channels?: string | number;
5545
+ /** set channels to filter */
5546
+ c?: string | number;
5547
+ /** normalize coefficients */
5548
+ normalize?: boolean;
5549
+ /** normalize coefficients */
5550
+ n?: boolean;
5551
+ /** set transform type */
5552
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
5553
+ /** set transform type */
5554
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
5555
+ /** set filtering precision */
5556
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
5557
+ /** set filtering precision */
5558
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
5559
+ /** set the block size */
5560
+ blocksize?: number;
5561
+ /** set the block size */
5562
+ b?: number;
5563
+ };
5011
5564
  /**
5012
5565
  * Generate a Hilbert transform FIR coefficients.
5013
5566
  * @see https://ffmpeg.org/ffmpeg-filters.html#hilbert
@@ -5314,6 +5867,20 @@ export interface FilterOptionsMap {
5314
5867
  /** swap alpha fields */
5315
5868
  as?: boolean;
5316
5869
  };
5870
+ /**
5871
+ * Apply inflate effect.
5872
+ * @see https://ffmpeg.org/ffmpeg-filters.html#inflate
5873
+ */
5874
+ inflate: {
5875
+ /** set threshold for 1st plane */
5876
+ threshold0?: number;
5877
+ /** set threshold for 2nd plane */
5878
+ threshold1?: number;
5879
+ /** set threshold for 3rd plane */
5880
+ threshold2?: number;
5881
+ /** set threshold for 4th plane */
5882
+ threshold3?: number;
5883
+ };
5317
5884
  /**
5318
5885
  * Convert progressive video into interlaced.
5319
5886
  * @see https://ffmpeg.org/ffmpeg-filters.html#interlace
@@ -5353,9 +5920,9 @@ export interface FilterOptionsMap {
5353
5920
  join: {
5354
5921
  /** Number of input streams. */
5355
5922
  inputs?: number;
5356
- /** Channel layout of the */
5923
+ /** Channel layout of the output stream. */
5357
5924
  channel_layout?: string | number;
5358
- /** A comma-separated list of channels maps in the format */
5925
+ /** A comma-separated list of channels maps in the format 'input_stream.input_channel-output_channel. */
5359
5926
  map?: string | number;
5360
5927
  };
5361
5928
  /**
@@ -5552,7 +6119,7 @@ export interface FilterOptionsMap {
5552
6119
  /** select color primaries */
5553
6120
  color_primaries?: 'auto' | 'bt709' | 'unknown' | 'bt470m' | 'bt470bg' | 'smpte170m' | 'smpte240m' | 'film' | 'bt2020' | 'smpte428' | 'smpte431' | 'smpte432' | 'jedec-p22' | 'ebu3213' | 'vgamut';
5554
6121
  /** select color transfer */
5555
- color_trc?: 'auto' | 'bt709' | 'unknown' | 'gamma22' | 'bt470m' | 'gamma28' | 'bt470bg' | 'smpte170m' | 'smpte240m' | 'linear' | 'iec61966-2-4' | 'bt1361e' | 'iec61966-2-1' | 'bt2020-10' | 'bt2020-12' | 'smpte2084' | 'arib-std-b67' | 'vlog';
6122
+ color_trc?: 'auto' | 'bt709' | 'unknown' | 'bt470m' | 'bt470bg' | 'smpte170m' | 'smpte240m' | 'linear' | 'iec61966-2-4' | 'bt1361e' | 'iec61966-2-1' | 'bt2020-10' | 'bt2020-12' | 'smpte2084' | 'arib-std-b67' | 'vlog';
5556
6123
  /** select chroma location */
5557
6124
  chroma_location?: 'auto' | 'unspecified' | 'unknown' | 'left' | 'center' | 'topleft' | 'top' | 'bottomleft' | 'bottom';
5558
6125
  /** rotate the input clockwise */
@@ -5826,6 +6393,102 @@ export interface FilterOptionsMap {
5826
6393
  /** set stats output file */
5827
6394
  stats_file?: string | number;
5828
6395
  };
6396
+ /**
6397
+ * Apply a low-pass filter with 3dB point frequency.
6398
+ * @see https://ffmpeg.org/ffmpeg-filters.html#lowpass
6399
+ */
6400
+ lowpass: {
6401
+ /** set frequency */
6402
+ frequency?: number;
6403
+ /** set frequency */
6404
+ f?: number;
6405
+ /** set filter-width type */
6406
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
6407
+ /** set filter-width type */
6408
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
6409
+ /** set width */
6410
+ width?: number;
6411
+ /** set width */
6412
+ w?: number;
6413
+ /** set number of poles */
6414
+ poles?: number;
6415
+ /** set number of poles */
6416
+ p?: number;
6417
+ /** set mix */
6418
+ mix?: number;
6419
+ /** set mix */
6420
+ m?: number;
6421
+ /** set channels to filter */
6422
+ channels?: string | number;
6423
+ /** set channels to filter */
6424
+ c?: string | number;
6425
+ /** normalize coefficients */
6426
+ normalize?: boolean;
6427
+ /** normalize coefficients */
6428
+ n?: boolean;
6429
+ /** set transform type */
6430
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
6431
+ /** set transform type */
6432
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
6433
+ /** set filtering precision */
6434
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
6435
+ /** set filtering precision */
6436
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
6437
+ /** set the block size */
6438
+ blocksize?: number;
6439
+ /** set the block size */
6440
+ b?: number;
6441
+ };
6442
+ /**
6443
+ * Apply a low shelf filter.
6444
+ * @see https://ffmpeg.org/ffmpeg-filters.html#lowshelf
6445
+ */
6446
+ lowshelf: {
6447
+ /** set central frequency */
6448
+ frequency?: number;
6449
+ /** set central frequency */
6450
+ f?: number;
6451
+ /** set filter-width type */
6452
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
6453
+ /** set filter-width type */
6454
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
6455
+ /** set width */
6456
+ width?: number;
6457
+ /** set width */
6458
+ w?: number;
6459
+ /** set gain */
6460
+ gain?: number;
6461
+ /** set gain */
6462
+ g?: number;
6463
+ /** set number of poles */
6464
+ poles?: number;
6465
+ /** set number of poles */
6466
+ p?: number;
6467
+ /** set mix */
6468
+ mix?: number;
6469
+ /** set mix */
6470
+ m?: number;
6471
+ /** set channels to filter */
6472
+ channels?: string | number;
6473
+ /** set channels to filter */
6474
+ c?: string | number;
6475
+ /** normalize coefficients */
6476
+ normalize?: boolean;
6477
+ /** normalize coefficients */
6478
+ n?: boolean;
6479
+ /** set transform type */
6480
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
6481
+ /** set transform type */
6482
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
6483
+ /** set filtering precision */
6484
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
6485
+ /** set filtering precision */
6486
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
6487
+ /** set the block size */
6488
+ blocksize?: number;
6489
+ /** set the block size */
6490
+ b?: number;
6491
+ };
5829
6492
  /**
5830
6493
  * Turns a certain luma into transparency.
5831
6494
  * @see https://ffmpeg.org/ffmpeg-filters.html#lumakey
@@ -5838,6 +6501,34 @@ export interface FilterOptionsMap {
5838
6501
  /** set the softness value */
5839
6502
  softness?: number;
5840
6503
  };
6504
+ /**
6505
+ * Compute and apply a lookup table to the RGB/YUV input video.
6506
+ * @see https://ffmpeg.org/ffmpeg-filters.html#lut
6507
+ */
6508
+ lut: {
6509
+ /** set component #0 expression */
6510
+ c0?: string | number;
6511
+ /** set component #1 expression */
6512
+ c1?: string | number;
6513
+ /** set component #2 expression */
6514
+ c2?: string | number;
6515
+ /** set component #3 expression */
6516
+ c3?: string | number;
6517
+ /** set Y expression */
6518
+ y?: string | number;
6519
+ /** set U expression */
6520
+ u?: string | number;
6521
+ /** set V expression */
6522
+ v?: string | number;
6523
+ /** set R expression */
6524
+ r?: string | number;
6525
+ /** set G expression */
6526
+ g?: string | number;
6527
+ /** set B expression */
6528
+ b?: string | number;
6529
+ /** set A expression */
6530
+ a?: string | number;
6531
+ };
5841
6532
  /**
5842
6533
  * Adjust colors using a 1D LUT.
5843
6534
  * @see https://ffmpeg.org/ffmpeg-filters.html#lut1d
@@ -5853,6 +6544,16 @@ export interface FilterOptionsMap {
5853
6544
  * @see https://ffmpeg.org/ffmpeg-filters.html#lut2
5854
6545
  */
5855
6546
  lut2: {
6547
+ /** set component #0 expression */
6548
+ c0?: string | number;
6549
+ /** set component #1 expression */
6550
+ c1?: string | number;
6551
+ /** set component #2 expression */
6552
+ c2?: string | number;
6553
+ /** set component #3 expression */
6554
+ c3?: string | number;
6555
+ /** set output depth */
6556
+ d?: number;
5856
6557
  /** Action to take when encountering EOF from secondary input */
5857
6558
  eof_action?: 'repeat' | 'endall' | 'pass';
5858
6559
  /** force termination when the shortest input terminates */
@@ -5873,14 +6574,62 @@ export interface FilterOptionsMap {
5873
6574
  clut?: 'first' | 'all';
5874
6575
  /** select interpolation mode */
5875
6576
  interp?: 'nearest' | 'trilinear' | 'tetrahedral' | 'pyramid' | 'prism';
5876
- /** Action to take when encountering EOF from secondary input */
5877
- eof_action?: 'repeat' | 'endall' | 'pass';
5878
- /** force termination when the shortest input terminates */
5879
- shortest?: boolean;
5880
- /** extend last frame of secondary streams beyond EOF */
5881
- repeatlast?: boolean;
5882
- /** How strictly to sync streams based on secondary input timestamps */
5883
- ts_sync_mode?: 'default' | 'nearest';
6577
+ };
6578
+ /**
6579
+ * Compute and apply a lookup table to the RGB input video.
6580
+ * @see https://ffmpeg.org/ffmpeg-filters.html#lutrgb
6581
+ */
6582
+ lutrgb: {
6583
+ /** set component #0 expression */
6584
+ c0?: string | number;
6585
+ /** set component #1 expression */
6586
+ c1?: string | number;
6587
+ /** set component #2 expression */
6588
+ c2?: string | number;
6589
+ /** set component #3 expression */
6590
+ c3?: string | number;
6591
+ /** set Y expression */
6592
+ y?: string | number;
6593
+ /** set U expression */
6594
+ u?: string | number;
6595
+ /** set V expression */
6596
+ v?: string | number;
6597
+ /** set R expression */
6598
+ r?: string | number;
6599
+ /** set G expression */
6600
+ g?: string | number;
6601
+ /** set B expression */
6602
+ b?: string | number;
6603
+ /** set A expression */
6604
+ a?: string | number;
6605
+ };
6606
+ /**
6607
+ * Compute and apply a lookup table to the YUV input video.
6608
+ * @see https://ffmpeg.org/ffmpeg-filters.html#lutyuv
6609
+ */
6610
+ lutyuv: {
6611
+ /** set component #0 expression */
6612
+ c0?: string | number;
6613
+ /** set component #1 expression */
6614
+ c1?: string | number;
6615
+ /** set component #2 expression */
6616
+ c2?: string | number;
6617
+ /** set component #3 expression */
6618
+ c3?: string | number;
6619
+ /** set Y expression */
6620
+ y?: string | number;
6621
+ /** set U expression */
6622
+ u?: string | number;
6623
+ /** set V expression */
6624
+ v?: string | number;
6625
+ /** set R expression */
6626
+ r?: string | number;
6627
+ /** set G expression */
6628
+ g?: string | number;
6629
+ /** set B expression */
6630
+ b?: string | number;
6631
+ /** set A expression */
6632
+ a?: string | number;
5884
6633
  };
5885
6634
  /**
5886
6635
  * Apply LV2 effect.
@@ -6403,16 +7152,56 @@ export interface FilterOptionsMap {
6403
7152
  * @see https://ffmpeg.org/ffmpeg-filters.html#noise
6404
7153
  */
6405
7154
  noise: {
6406
- /** _seed */
6407
- all?: number;
6408
- /** _seed */
6409
- c0?: number;
6410
- /** _seed */
6411
- c1?: number;
6412
- /** _seed */
6413
- c2?: number;
6414
- /** _seed */
6415
- c3?: number;
7155
+ /** set component #0 noise seed */
7156
+ all_seed?: number;
7157
+ /** set component #0 strength */
7158
+ all_strength?: number;
7159
+ /** set component #0 strength */
7160
+ alls?: number;
7161
+ /** set component #0 flags */
7162
+ all_flags?: 'a' | 'p' | 't' | 'u' | (string & {});
7163
+ /** set component #0 flags */
7164
+ allf?: 'a' | 'p' | 't' | 'u' | (string & {});
7165
+ /** set component #0 noise seed */
7166
+ c0_seed?: number;
7167
+ /** set component #0 strength */
7168
+ c0_strength?: number;
7169
+ /** set component #0 strength */
7170
+ c0s?: number;
7171
+ /** set component #0 flags */
7172
+ c0_flags?: 'a' | 'p' | 't' | 'u' | (string & {});
7173
+ /** set component #0 flags */
7174
+ c0f?: 'a' | 'p' | 't' | 'u' | (string & {});
7175
+ /** set component #1 noise seed */
7176
+ c1_seed?: number;
7177
+ /** set component #1 strength */
7178
+ c1_strength?: number;
7179
+ /** set component #1 strength */
7180
+ c1s?: number;
7181
+ /** set component #1 flags */
7182
+ c1_flags?: 'a' | 'p' | 't' | 'u' | (string & {});
7183
+ /** set component #1 flags */
7184
+ c1f?: 'a' | 'p' | 't' | 'u' | (string & {});
7185
+ /** set component #2 noise seed */
7186
+ c2_seed?: number;
7187
+ /** set component #2 strength */
7188
+ c2_strength?: number;
7189
+ /** set component #2 strength */
7190
+ c2s?: number;
7191
+ /** set component #2 flags */
7192
+ c2_flags?: 'a' | 'p' | 't' | 'u' | (string & {});
7193
+ /** set component #2 flags */
7194
+ c2f?: 'a' | 'p' | 't' | 'u' | (string & {});
7195
+ /** set component #3 noise seed */
7196
+ c3_seed?: number;
7197
+ /** set component #3 strength */
7198
+ c3_strength?: number;
7199
+ /** set component #3 strength */
7200
+ c3s?: number;
7201
+ /** set component #3 flags */
7202
+ c3_flags?: 'a' | 'p' | 't' | 'u' | (string & {});
7203
+ /** set component #3 flags */
7204
+ c3f?: 'a' | 'p' | 't' | 'u' | (string & {});
6416
7205
  };
6417
7206
  /**
6418
7207
  * Normalize RGB video.
@@ -6460,6 +7249,30 @@ export interface FilterOptionsMap {
6460
7249
  /** set video sample aspect ratio */
6461
7250
  sar?: string | number;
6462
7251
  };
7252
+ /**
7253
+ * Apply OCIO Display/View transform
7254
+ * @see https://ffmpeg.org/ffmpeg-filters.html#ocio
7255
+ */
7256
+ ocio: {
7257
+ /** OCIO config path, overriding OCIO environment variable. */
7258
+ config?: string | number;
7259
+ /** Input color space */
7260
+ input?: string | number;
7261
+ /** Output color space */
7262
+ output?: string | number;
7263
+ /** Specify a File Transform */
7264
+ filetransform?: string | number;
7265
+ /** Output display, used instead of output color space. */
7266
+ display?: string | number;
7267
+ /** View, output view transform, used in combination with display. */
7268
+ view?: string | number;
7269
+ /** Invert output display/view transform. */
7270
+ inverse?: number;
7271
+ /** Output video format */
7272
+ format?: string | number;
7273
+ /** OCIO context parameters */
7274
+ context_params?: string | number;
7275
+ };
6463
7276
  /**
6464
7277
  * Optical Character Recognition.
6465
7278
  * @see https://ffmpeg.org/ffmpeg-filters.html#ocr
@@ -6580,6 +7393,30 @@ export interface FilterOptionsMap {
6580
7393
  /** How strictly to sync streams based on secondary input timestamps */
6581
7394
  ts_sync_mode?: 'default' | 'nearest';
6582
7395
  };
7396
+ /**
7397
+ * Overlay one D3D11 video on top of another
7398
+ * @see https://ffmpeg.org/ffmpeg-filters.html#overlay_005fd3d11
7399
+ */
7400
+ overlay_d3d11: {
7401
+ /** Overlay x position */
7402
+ x?: string | number;
7403
+ /** Overlay y position */
7404
+ y?: string | number;
7405
+ /** Overlay width */
7406
+ w?: string | number;
7407
+ /** Overlay height */
7408
+ h?: string | number;
7409
+ /** Overlay global alpha */
7410
+ alpha?: number;
7411
+ /** Force output through an internal unordered-access texture */
7412
+ force_output_copy?: boolean;
7413
+ /** Action to take when encountering EOF from secondary input */
7414
+ eof_action?: 'repeat' | 'endall' | 'pass';
7415
+ /** force termination when the shortest input terminates */
7416
+ shortest?: boolean;
7417
+ /** repeat overlay of the last overlay frame */
7418
+ repeatlast?: boolean;
7419
+ };
6583
7420
  /**
6584
7421
  * Overlay one video on top of another
6585
7422
  * @see https://ffmpeg.org/ffmpeg-filters.html#overlay_005fopencl
@@ -6667,8 +7504,24 @@ export interface FilterOptionsMap {
6667
7504
  h?: string | number;
6668
7505
  /** Overlay global alpha */
6669
7506
  alpha?: number;
6670
- /** alpha format */
6671
- alpha_format?: 'straight' | 'premultiplied';
7507
+ /** Action to take when encountering EOF from secondary input */
7508
+ eof_action?: 'repeat' | 'endall' | 'pass';
7509
+ /** force termination when the shortest input terminates */
7510
+ shortest?: boolean;
7511
+ /** repeat overlay of the last overlay frame */
7512
+ repeatlast?: boolean;
7513
+ /** How strictly to sync streams based on secondary input timestamps */
7514
+ ts_sync_mode?: 'default' | 'nearest';
7515
+ };
7516
+ /**
7517
+ * Overlay filter for VideoToolbox frames using Metal compute
7518
+ * @see https://ffmpeg.org/ffmpeg-filters.html#overlay_005fvideotoolbox
7519
+ */
7520
+ overlay_videotoolbox: {
7521
+ /** Overlay x position */
7522
+ x?: number;
7523
+ /** Overlay y position */
7524
+ y?: number;
6672
7525
  /** Action to take when encountering EOF from secondary input */
6673
7526
  eof_action?: 'repeat' | 'endall' | 'pass';
6674
7527
  /** force termination when the shortest input terminates */
@@ -6687,6 +7540,12 @@ export interface FilterOptionsMap {
6687
7540
  x?: number;
6688
7541
  /** Set vertical offset */
6689
7542
  y?: number;
7543
+ /** Action to take when encountering EOF from secondary input */
7544
+ eof_action?: 'repeat' | 'endall' | 'pass';
7545
+ /** force termination when the shortest input terminates */
7546
+ shortest?: boolean;
7547
+ /** repeat overlay of the last overlay frame */
7548
+ repeatlast?: boolean;
6690
7549
  };
6691
7550
  /**
6692
7551
  * Denoise using wavelets.
@@ -6949,7 +7808,7 @@ export interface FilterOptionsMap {
6949
7808
  */
6950
7809
  phase: {
6951
7810
  /** set phase mode */
6952
- mode?: 'p' | 't' | 'b' | 'T' | 'B' | 'U' | 'a' | 'A';
7811
+ mode?: 'p' | 't' | 'b' | 'T' | 'B' | 'u' | 'U' | 'a' | 'A';
6953
7812
  };
6954
7813
  /**
6955
7814
  * Filter out photosensitive epilepsy seizure-inducing flashes.
@@ -7598,6 +8457,14 @@ export interface FilterOptionsMap {
7598
8457
  param1?: number;
7599
8458
  /** specify when to evaluate expressions */
7600
8459
  eval?: 'init' | 'frame';
8460
+ /** Action to take when encountering EOF from secondary input */
8461
+ eof_action?: 'repeat' | 'endall' | 'pass';
8462
+ /** force termination when the shortest input terminates */
8463
+ shortest?: boolean;
8464
+ /** extend last frame of secondary streams beyond EOF */
8465
+ repeatlast?: boolean;
8466
+ /** How strictly to sync streams based on secondary input timestamps */
8467
+ ts_sync_mode?: 'default' | 'nearest';
7601
8468
  };
7602
8469
  /**
7603
8470
  * Scale the input video size and/or convert the image format to the given reference.
@@ -7710,16 +8577,22 @@ export interface FilterOptionsMap {
7710
8577
  reset_sar?: boolean;
7711
8578
  };
7712
8579
  /**
7713
- * Scale video using Direct3D11
8580
+ * Scale D3D11 video
7714
8581
  * @see https://ffmpeg.org/ffmpeg-filters.html#scale_005fd3d11
7715
8582
  */
7716
8583
  scale_d3d11: {
8584
+ /** Output video width */
8585
+ w?: string | number;
7717
8586
  /** Output video width */
7718
8587
  width?: string | number;
7719
8588
  /** Output video height */
8589
+ h?: string | number;
8590
+ /** Output video height */
7720
8591
  height?: string | number;
7721
8592
  /** Output video pixel format */
7722
8593
  format?: string | number;
8594
+ /** Force P010 shader output through an internal unordered-access texture */
8595
+ force_output_copy?: boolean;
7723
8596
  };
7724
8597
  /**
7725
8598
  * Scale video using Direct3D12
@@ -7771,19 +8644,31 @@ export interface FilterOptionsMap {
7771
8644
  /** Do not process frames at all if parameters match */
7772
8645
  passthrough?: boolean;
7773
8646
  /** Scaling algorithm */
7774
- algo?: 'area' | 'bicubic' | 'bilinear' | 'gauss' | 'lanczos' | 'neighbor' | 'sinc' | 'spline' | 'experimental';
8647
+ algo?: 'neighbor' | 'bilinear' | 'bicubic' | 'lanczos';
8648
+ /** Algorithm-Specific parameter */
8649
+ param?: number;
7775
8650
  /** Decrease or increase w/h if necessary to keep the original AR */
7776
8651
  force_original_aspect_ratio?: 'disable' | 'decrease' | 'increase';
7777
8652
  /** Enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used */
7778
8653
  force_divisible_by?: number;
7779
- /** Crop offset X */
7780
- cx?: number;
7781
- /** Crop offset Y */
7782
- cy?: number;
7783
- /** Crop width */
7784
- cw?: number;
7785
- /** Crop height */
7786
- ch?: number;
8654
+ /** Reset SAR to 1 and scale to square pixels if scaling proportionally */
8655
+ reset_sar?: boolean;
8656
+ };
8657
+ /**
8658
+ * Quick Sync Video
8659
+ * @see https://ffmpeg.org/ffmpeg-filters.html#scale_005fqsv
8660
+ */
8661
+ scale_qsv: {
8662
+ /** Output video width(0=input video width, -1=keep input video aspect) */
8663
+ w?: string | number;
8664
+ /** Output video height(0=input video height, -1=keep input video aspect) */
8665
+ h?: string | number;
8666
+ /** Output pixel format */
8667
+ format?: string | number;
8668
+ /** scaling & format conversion mode (mode compute(3), vd(4) and ve(5) are only available on some platforms) */
8669
+ mode?: 'low_power' | 'hq' | 'compute' | 'vd' | 've';
8670
+ /** Internal parallelization depth, the higher the value the higher the latency. */
8671
+ async_depth?: number;
7787
8672
  };
7788
8673
  /**
7789
8674
  * Rockchip RGA (2D Raster Graphic Acceleration) video resizer and format converter
@@ -7800,6 +8685,8 @@ export interface FilterOptionsMap {
7800
8685
  force_original_aspect_ratio?: 'disable' | 'decrease' | 'increase';
7801
8686
  /** Enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used */
7802
8687
  force_divisible_by?: number;
8688
+ /** Reset SAR to 1 and scale to square pixels if scaling proportionally */
8689
+ reset_sar?: boolean;
7803
8690
  /** Enforce planar YUV format output */
7804
8691
  force_yuv?: 'disable' | 'auto' | '8bit' | '10bit';
7805
8692
  /** Enforce chroma of planar YUV format output */
@@ -7968,24 +8855,24 @@ export interface FilterOptionsMap {
7968
8855
  selectivecolor: {
7969
8856
  /** select correction method */
7970
8857
  correction_method?: 'absolute' | 'relative';
7971
- /** s */
7972
- red?: string | number;
7973
- /** s */
7974
- yellow?: string | number;
7975
- /** s */
7976
- green?: string | number;
7977
- /** s */
7978
- cyan?: string | number;
7979
- /** s */
7980
- blue?: string | number;
7981
- /** s */
7982
- magenta?: string | number;
7983
- /** s */
7984
- white?: string | number;
7985
- /** s */
7986
- neutral?: string | number;
7987
- /** s */
7988
- black?: string | number;
8858
+ /** adjust red regions */
8859
+ reds?: string | number;
8860
+ /** adjust yellow regions */
8861
+ yellows?: string | number;
8862
+ /** adjust green regions */
8863
+ greens?: string | number;
8864
+ /** adjust cyan regions */
8865
+ cyans?: string | number;
8866
+ /** adjust blue regions */
8867
+ blues?: string | number;
8868
+ /** adjust magenta regions */
8869
+ magentas?: string | number;
8870
+ /** adjust white regions */
8871
+ whites?: string | number;
8872
+ /** adjust neutral regions */
8873
+ neutrals?: string | number;
8874
+ /** adjust black regions */
8875
+ blacks?: string | number;
7989
8876
  /** set Photoshop selectivecolor file name */
7990
8877
  psfile?: string | number;
7991
8878
  };
@@ -8748,7 +9635,26 @@ export interface FilterOptionsMap {
8748
9635
  * Generate sine wave audio signal.
8749
9636
  * @see https://ffmpeg.org/ffmpeg-filters.html#sine
8750
9637
  */
8751
- sine: {};
9638
+ sine: {
9639
+ /** set the sine frequency */
9640
+ frequency?: number;
9641
+ /** set the sine frequency */
9642
+ f?: number;
9643
+ /** set the beep frequency factor */
9644
+ beep_factor?: number;
9645
+ /** set the beep frequency factor */
9646
+ b?: number;
9647
+ /** set the sample rate */
9648
+ sample_rate?: number;
9649
+ /** set the sample rate */
9650
+ r?: number;
9651
+ /** set the audio duration */
9652
+ duration?: string | number;
9653
+ /** set the audio duration */
9654
+ d?: string | number;
9655
+ /** set the number of samples per frame */
9656
+ samples_per_frame?: string | number;
9657
+ };
8752
9658
  /**
8753
9659
  * Calculate spatial information (SI) and temporal information (TI).
8754
9660
  * @see https://ffmpeg.org/ffmpeg-filters.html#siti
@@ -8989,7 +9895,12 @@ export interface FilterOptionsMap {
8989
9895
  * Apply DNN-based image super resolution to the input.
8990
9896
  * @see https://ffmpeg.org/ffmpeg-filters.html#sr
8991
9897
  */
8992
- sr: {};
9898
+ sr: {
9899
+ /** DNN backend used for model execution */
9900
+ dnn_backend?: 'tensorflow';
9901
+ /** scale factor for SRCNN model */
9902
+ scale_factor?: number;
9903
+ };
8993
9904
  /**
8994
9905
  * AMF HQ video upscaling
8995
9906
  * @see https://ffmpeg.org/ffmpeg-filters.html#sr_005famf
@@ -9008,7 +9919,7 @@ export interface FilterOptionsMap {
9008
9919
  /** Fill */
9009
9920
  fill?: boolean;
9010
9921
  /** Scaling algorithm */
9011
- algorithm?: number;
9922
+ algorithm?: 'bilinear' | 'bicubic' | 'sr1-0' | 'point' | 'sr1-1';
9012
9923
  };
9013
9924
  /**
9014
9925
  * Calculate the SSIM between two video streams.
@@ -9391,14 +10302,6 @@ export interface FilterOptionsMap {
9391
10302
  c3_opacity?: number;
9392
10303
  /** set opacity for all color components */
9393
10304
  all_opacity?: number;
9394
- /** Action to take when encountering EOF from secondary input */
9395
- eof_action?: 'repeat' | 'endall' | 'pass';
9396
- /** force termination when the shortest input terminates */
9397
- shortest?: boolean;
9398
- /** extend last frame of secondary streams beyond EOF */
9399
- repeatlast?: boolean;
9400
- /** How strictly to sync streams based on secondary input timestamps */
9401
- ts_sync_mode?: 'default' | 'nearest';
9402
10305
  };
9403
10306
  /**
9404
10307
  * Apply a telecine pattern.
@@ -9554,6 +10457,56 @@ export interface FilterOptionsMap {
9554
10457
  /** Number of columns to pad at the end of the video */
9555
10458
  pad?: number;
9556
10459
  };
10460
+ /**
10461
+ * Apply a tilt shelf filter.
10462
+ * @see https://ffmpeg.org/ffmpeg-filters.html#tiltshelf
10463
+ */
10464
+ tiltshelf: {
10465
+ /** set central frequency */
10466
+ frequency?: number;
10467
+ /** set central frequency */
10468
+ f?: number;
10469
+ /** set filter-width type */
10470
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
10471
+ /** set filter-width type */
10472
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
10473
+ /** set width */
10474
+ width?: number;
10475
+ /** set width */
10476
+ w?: number;
10477
+ /** set gain */
10478
+ gain?: number;
10479
+ /** set gain */
10480
+ g?: number;
10481
+ /** set number of poles */
10482
+ poles?: number;
10483
+ /** set number of poles */
10484
+ p?: number;
10485
+ /** set mix */
10486
+ mix?: number;
10487
+ /** set mix */
10488
+ m?: number;
10489
+ /** set channels to filter */
10490
+ channels?: string | number;
10491
+ /** set channels to filter */
10492
+ c?: string | number;
10493
+ /** normalize coefficients */
10494
+ normalize?: boolean;
10495
+ /** normalize coefficients */
10496
+ n?: boolean;
10497
+ /** set transform type */
10498
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
10499
+ /** set transform type */
10500
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
10501
+ /** set filtering precision */
10502
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
10503
+ /** set filtering precision */
10504
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
10505
+ /** set the block size */
10506
+ blocksize?: number;
10507
+ /** set the block size */
10508
+ b?: number;
10509
+ };
9557
10510
  /**
9558
10511
  * Perform temporal field interlacing.
9559
10512
  * @see https://ffmpeg.org/ffmpeg-filters.html#tinterlace
@@ -9670,38 +10623,82 @@ export interface FilterOptionsMap {
9670
10623
  /** Scene detection threshold */
9671
10624
  threshold?: number;
9672
10625
  };
10626
+ /**
10627
+ * Perform HDR to SDR conversion with tonemapping on D3D11 frames.
10628
+ * @see https://ffmpeg.org/ffmpeg-filters.html#tonemap_005fd3d11
10629
+ */
10630
+ tonemap_d3d11: {
10631
+ /** Tonemap algorithm selection */
10632
+ tonemap?: 'none' | 'linear' | 'gamma' | 'clip' | 'reinhard' | 'hable' | 'mobius' | 'bt2390';
10633
+ /** Tonemap mode selection */
10634
+ tonemap_mode?: 'max' | 'rgb' | 'lum' | 'itp' | 'auto';
10635
+ /** Set transfer characteristic */
10636
+ transfer?: 'bt709' | 'bt2020' | 'smpte2084';
10637
+ /** Set transfer characteristic */
10638
+ t?: 'bt709' | 'bt2020' | 'smpte2084';
10639
+ /** Set colorspace matrix */
10640
+ matrix?: 'bt709' | 'bt2020';
10641
+ /** Set colorspace matrix */
10642
+ m?: 'bt709' | 'bt2020';
10643
+ /** Set color primaries */
10644
+ primaries?: 'bt709' | 'bt2020';
10645
+ /** Set color primaries */
10646
+ p?: 'bt709' | 'bt2020';
10647
+ /** Set color range */
10648
+ range?: 'tv' | 'pc' | 'limited' | 'full';
10649
+ /** Set color range */
10650
+ r?: 'tv' | 'pc' | 'limited' | 'full';
10651
+ /** Output pixel format */
10652
+ format?: string | number;
10653
+ /** Apply Dolby Vision metadata if possible */
10654
+ apply_dovi?: boolean;
10655
+ /** Force output through an internal unordered-access texture */
10656
+ force_output_copy?: boolean;
10657
+ /** Signal peak override */
10658
+ peak?: number;
10659
+ /** Tonemap parameter */
10660
+ param?: number;
10661
+ /** Desaturation parameter */
10662
+ desat?: number;
10663
+ };
9673
10664
  /**
9674
10665
  * Perform HDR to SDR conversion with tonemapping.
9675
10666
  * @see https://ffmpeg.org/ffmpeg-filters.html#tonemap_005fopencl
9676
10667
  */
9677
10668
  tonemap_opencl: {
9678
- /** tonemap algorithm selection */
9679
- tonemap?: 'none' | 'linear' | 'gamma' | 'clip' | 'reinhard' | 'hable' | 'mobius';
9680
- /** set transfer characteristic */
9681
- transfer?: 'bt709' | 'bt2020';
9682
- /** set transfer characteristic */
9683
- t?: 'bt709' | 'bt2020';
9684
- /** set colorspace matrix */
10669
+ /** Tonemap algorithm selection */
10670
+ tonemap?: 'none' | 'linear' | 'gamma' | 'clip' | 'reinhard' | 'hable' | 'mobius' | 'bt2390';
10671
+ /** Tonemap mode selection */
10672
+ tonemap_mode?: 'max' | 'rgb' | 'lum' | 'itp' | 'auto';
10673
+ /** Set transfer characteristic */
10674
+ transfer?: 'bt709' | 'bt2020' | 'smpte2084';
10675
+ /** Set transfer characteristic */
10676
+ t?: 'bt709' | 'bt2020' | 'smpte2084';
10677
+ /** Set colorspace matrix */
9685
10678
  matrix?: 'bt709' | 'bt2020';
9686
- /** set colorspace matrix */
10679
+ /** Set colorspace matrix */
9687
10680
  m?: 'bt709' | 'bt2020';
9688
- /** set color primaries */
10681
+ /** Set color primaries */
9689
10682
  primaries?: 'bt709' | 'bt2020';
9690
- /** set color primaries */
10683
+ /** Set color primaries */
9691
10684
  p?: 'bt709' | 'bt2020';
9692
- /** set color range */
10685
+ /** Set color range */
9693
10686
  range?: 'tv' | 'pc' | 'limited' | 'full';
9694
- /** set color range */
10687
+ /** Set color range */
9695
10688
  r?: 'tv' | 'pc' | 'limited' | 'full';
9696
- /** output pixel format */
10689
+ /** Output pixel format */
9697
10690
  format?: string | number;
9698
- /** signal peak override */
10691
+ /** Apply Dolby Vision metadata if possible */
10692
+ apply_dovi?: boolean;
10693
+ /** Apply tradeoffs to offload computing */
10694
+ tradeoff?: 'auto' | 'disabled' | 'enabled';
10695
+ /** Signal peak override */
9699
10696
  peak?: number;
9700
- /** tonemap parameter */
10697
+ /** Tonemap parameter */
9701
10698
  param?: number;
9702
- /** desaturation parameter */
10699
+ /** Desaturation parameter */
9703
10700
  desat?: number;
9704
- /** scene detection threshold */
10701
+ /** Scene detection threshold */
9705
10702
  threshold?: number;
9706
10703
  };
9707
10704
  /**
@@ -9728,6 +10725,44 @@ export interface FilterOptionsMap {
9728
10725
  /** set content light level information */
9729
10726
  light?: string | number;
9730
10727
  };
10728
+ /**
10729
+ * Perform HDR to SDR conversion with Metal.
10730
+ * @see https://ffmpeg.org/ffmpeg-filters.html#tonemap_005fvideotoolbox
10731
+ */
10732
+ tonemap_videotoolbox: {
10733
+ /** Tonemap algorithm selection */
10734
+ tonemap?: 'none' | 'linear' | 'gamma' | 'clip' | 'reinhard' | 'hable' | 'mobius' | 'bt2390';
10735
+ /** Tonemap mode selection */
10736
+ tonemap_mode?: 'max' | 'rgb' | 'lum' | 'itp';
10737
+ /** Set transfer characteristic */
10738
+ transfer?: 'bt709' | 'bt2020' | 'smpte2084';
10739
+ /** Set transfer characteristic */
10740
+ t?: 'bt709' | 'bt2020' | 'smpte2084';
10741
+ /** Set colorspace matrix */
10742
+ matrix?: 'bt709' | 'bt2020';
10743
+ /** Set colorspace matrix */
10744
+ m?: 'bt709' | 'bt2020';
10745
+ /** Set color primaries */
10746
+ primaries?: 'bt709' | 'bt2020';
10747
+ /** Set color primaries */
10748
+ p?: 'bt709' | 'bt2020';
10749
+ /** Set color range */
10750
+ range?: 'tv' | 'pc' | 'limited' | 'full';
10751
+ /** Set color range */
10752
+ r?: 'tv' | 'pc' | 'limited' | 'full';
10753
+ /** Output pixel format */
10754
+ format?: string | number;
10755
+ /** Apply Dolby Vision metadata if possible */
10756
+ apply_dovi?: boolean;
10757
+ /** Signal peak override */
10758
+ peak?: number;
10759
+ /** Tonemap parameter */
10760
+ param?: number;
10761
+ /** Desaturation parameter */
10762
+ desat?: number;
10763
+ /** Scene detection threshold */
10764
+ threshold?: number;
10765
+ };
9731
10766
  /**
9732
10767
  * SIMD optimized HDR to SDR tonemapping
9733
10768
  * @see https://ffmpeg.org/ffmpeg-filters.html#tonemapx
@@ -9802,6 +10837,16 @@ export interface FilterOptionsMap {
9802
10837
  /** do not apply transposition if the input matches the specified geometry */
9803
10838
  passthrough?: 'none' | 'landscape' | 'portrait';
9804
10839
  };
10840
+ /**
10841
+ * Transpose D3D11 video
10842
+ * @see https://ffmpeg.org/ffmpeg-filters.html#transpose_005fd3d11
10843
+ */
10844
+ transpose_d3d11: {
10845
+ /** set transpose direction */
10846
+ dir?: 'cclock_flip' | 'clock' | 'cclock' | 'clock_flip' | 'reversal' | 'hflip' | 'vflip';
10847
+ /** do not apply transposition if the input matches the specified geometry */
10848
+ passthrough?: 'none' | 'portrait' | 'landscape';
10849
+ };
9805
10850
  /**
9806
10851
  * NVIDIA Performance Primitives video transpose
9807
10852
  * @see https://ffmpeg.org/ffmpeg-filters.html#transpose_005fnpp
@@ -9832,6 +10877,16 @@ export interface FilterOptionsMap {
9832
10877
  /** do not apply transposition if the input matches the specified geometry */
9833
10878
  passthrough?: 'none' | 'portrait' | 'landscape';
9834
10879
  };
10880
+ /**
10881
+ * Transpose Videotoolbox frames
10882
+ * @see https://ffmpeg.org/ffmpeg-filters.html#transpose_005fvt
10883
+ */
10884
+ transpose_vt: {
10885
+ /** set transpose direction */
10886
+ dir?: 'cclock_flip' | 'clock' | 'cclock' | 'clock_flip' | 'reversal' | 'hflip' | 'vflip';
10887
+ /** do not apply transposition if the input matches the specified geometry */
10888
+ passthrough?: 'none' | 'portrait' | 'landscape';
10889
+ };
9835
10890
  /**
9836
10891
  * Transpose Vulkan Filter
9837
10892
  * @see https://ffmpeg.org/ffmpeg-filters.html#transpose_005fvulkan
@@ -9842,6 +10897,56 @@ export interface FilterOptionsMap {
9842
10897
  /** do not apply transposition if the input matches the specified geometry */
9843
10898
  passthrough?: 'none' | 'portrait' | 'landscape';
9844
10899
  };
10900
+ /**
10901
+ * Boost or cut upper frequencies.
10902
+ * @see https://ffmpeg.org/ffmpeg-filters.html#treble
10903
+ */
10904
+ treble: {
10905
+ /** set central frequency */
10906
+ frequency?: number;
10907
+ /** set central frequency */
10908
+ f?: number;
10909
+ /** set filter-width type */
10910
+ width_type?: 'h' | 'q' | 'o' | 's' | 'k';
10911
+ /** set filter-width type */
10912
+ t?: 'h' | 'q' | 'o' | 's' | 'k';
10913
+ /** set width */
10914
+ width?: number;
10915
+ /** set width */
10916
+ w?: number;
10917
+ /** set gain */
10918
+ gain?: number;
10919
+ /** set gain */
10920
+ g?: number;
10921
+ /** set number of poles */
10922
+ poles?: number;
10923
+ /** set number of poles */
10924
+ p?: number;
10925
+ /** set mix */
10926
+ mix?: number;
10927
+ /** set mix */
10928
+ m?: number;
10929
+ /** set channels to filter */
10930
+ channels?: string | number;
10931
+ /** set channels to filter */
10932
+ c?: string | number;
10933
+ /** normalize coefficients */
10934
+ normalize?: boolean;
10935
+ /** normalize coefficients */
10936
+ n?: boolean;
10937
+ /** set transform type */
10938
+ transform?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
10939
+ /** set transform type */
10940
+ a?: 'di' | 'dii' | 'tdi' | 'tdii' | 'latt' | 'svf' | 'zdf';
10941
+ /** set filtering precision */
10942
+ precision?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
10943
+ /** set filtering precision */
10944
+ r?: 'auto' | 's16' | 's32' | 'f32' | 'f64';
10945
+ /** set the block size */
10946
+ blocksize?: number;
10947
+ /** set the block size */
10948
+ b?: number;
10949
+ };
9845
10950
  /**
9846
10951
  * Apply tremolo effect.
9847
10952
  * @see https://ffmpeg.org/ffmpeg-filters.html#tremolo
@@ -9857,25 +10962,25 @@ export interface FilterOptionsMap {
9857
10962
  * @see https://ffmpeg.org/ffmpeg-filters.html#trim
9858
10963
  */
9859
10964
  trim: {
9860
- /** Timestamp of the first frame that */
10965
+ /** Timestamp of the first frame that should be passed */
9861
10966
  start?: string | number;
9862
- /** Timestamp of the first frame that */
10967
+ /** Timestamp of the first frame that should be passed */
9863
10968
  starti?: string | number;
9864
- /** Timestamp of the first frame that */
10969
+ /** Timestamp of the first frame that should be dropped again */
9865
10970
  end?: string | number;
9866
- /** Timestamp of the first frame that */
10971
+ /** Timestamp of the first frame that should be dropped again */
9867
10972
  endi?: string | number;
9868
- /** Timestamp of the first frame that should be */
10973
+ /** Timestamp of the first frame that should be passed */
9869
10974
  start_pts?: number;
9870
- /** Timestamp of the first frame that should be */
10975
+ /** Timestamp of the first frame that should be dropped again */
9871
10976
  end_pts?: number;
9872
10977
  /** Maximum duration of the output */
9873
10978
  duration?: string | number;
9874
10979
  /** Maximum duration of the output */
9875
10980
  durationi?: string | number;
9876
- /** Number of the first frame that should be passed */
10981
+ /** Number of the first frame that should be passed to the output */
9877
10982
  start_frame?: number;
9878
- /** Number of the first frame that should be dropped */
10983
+ /** Number of the first frame that should be dropped again */
9879
10984
  end_frame?: number;
9880
10985
  };
9881
10986
  /**
@@ -10060,36 +11165,6 @@ export interface FilterOptionsMap {
10060
11165
  /** reset rotation */
10061
11166
  reset_rot?: boolean;
10062
11167
  };
10063
- /**
10064
- * Convert 360 projection of video.
10065
- * @see https://ffmpeg.org/ffmpeg-filters.html#v360_005fvulkan
10066
- */
10067
- v360_vulkan: {
10068
- /** set input projection */
10069
- input?: number;
10070
- /** set output projection */
10071
- output?: number;
10072
- /** output width */
10073
- w?: number;
10074
- /** output height */
10075
- h?: number;
10076
- /** yaw rotation */
10077
- yaw?: number;
10078
- /** pitch rotation */
10079
- pitch?: number;
10080
- /** roll rotation */
10081
- roll?: number;
10082
- /** rotation order */
10083
- rorder?: string | number;
10084
- /** set output horizontal FOV angle */
10085
- h_fov?: number;
10086
- /** set output vertical FOV angle */
10087
- v_fov?: number;
10088
- /** set input horizontal FOV angle */
10089
- ih_fov?: number;
10090
- /** set input vertical FOV angle */
10091
- iv_fov?: number;
10092
- };
10093
11168
  /**
10094
11169
  * Apply a Wavelet based Denoiser.
10095
11170
  * @see https://ffmpeg.org/ffmpeg-filters.html#vaguedenoiser
@@ -10240,7 +11315,7 @@ export interface FilterOptionsMap {
10240
11315
  vidstabdetect: {
10241
11316
  /** path to the file used to write the transforms */
10242
11317
  result?: string | number;
10243
- /** how shaky is the video and how quick is the camera? */
11318
+ /** how shaky is the video and how quick is the camera? 1: little (fast) 10: very strong/quick (slow) */
10244
11319
  shakiness?: number;
10245
11320
  /** (>=shakiness) 1: low 15: high (slow) */
10246
11321
  accuracy?: number;
@@ -10250,7 +11325,7 @@ export interface FilterOptionsMap {
10250
11325
  mincontrast?: number;
10251
11326
  /** 0: draw nothing; 1,2: show fields and transforms */
10252
11327
  show?: number;
10253
- /** virtual tripod mode (if >0): motion is compared to a reference */
11328
+ /** virtual tripod mode (if >0): motion is compared to a reference reference frame (frame # is the value) */
10254
11329
  tripod?: number;
10255
11330
  /** transforms data file format */
10256
11331
  fileformat?: 'ascii' | 'binary';
@@ -10378,28 +11453,84 @@ export interface FilterOptionsMap {
10378
11453
  /** Output pixel format */
10379
11454
  format?: string | number;
10380
11455
  /** Scale type */
10381
- scale_type?: number;
11456
+ scale_type?: 'bilinear' | 'bicubic';
10382
11457
  /** Color profile */
10383
- color_profile?: number;
10384
- /** Input color range */
10385
- in_color_range?: number;
10386
- /** Output color range */
10387
- out_color_range?: number;
10388
- /** Input color primaries */
10389
- in_primaries?: number;
11458
+ color_profile?: 'bt601' | 'bt709' | 'bt2020';
11459
+ /** Color range */
11460
+ color_range?: 'studio' | 'full';
10390
11461
  /** Output color primaries */
10391
- out_primaries?: number;
10392
- /** Input transfer characteristics */
10393
- in_trc?: number;
11462
+ primaries?: 'bt709' | 'bt470m' | 'bt470bg' | 'smpte170m' | 'smpte240m' | 'film' | 'bt2020' | 'smpte428' | 'smpte431' | 'smpte432' | 'jedec-p22';
10394
11463
  /** Output transfer characteristics */
10395
- out_trc?: number;
11464
+ trc?: 'bt709' | 'gamma22' | 'gamma28' | 'smpte170m' | 'smpte240m' | 'linear' | 'log' | 'log-sqrt' | 'iec61966-2-4' | 'bt1361-ecg' | 'iec61966-2-1' | 'bt2020-10' | 'bt2020-12' | 'smpte2084' | 'smpte428' | 'arib-std-b67';
10396
11465
  /** decrease or increase w/h if necessary to keep the original AR */
10397
- force_original_aspect_ratio?: number;
11466
+ force_original_aspect_ratio?: 'disable' | 'decrease' | 'increase';
10398
11467
  /** enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used */
10399
11468
  force_divisible_by?: number;
10400
11469
  /** reset SAR to 1 and scale to square pixels if scaling proportionally */
10401
11470
  reset_sar?: boolean;
10402
11471
  };
11472
+ /**
11473
+ * Quick Sync Video
11474
+ * @see https://ffmpeg.org/ffmpeg-filters.html#vpp_005fqsv
11475
+ */
11476
+ vpp_qsv: {
11477
+ /** deinterlace mode: 0=off, 1=bob, 2=advanced */
11478
+ deinterlace?: 'bob' | 'advanced';
11479
+ /** denoise level [0, 100] */
11480
+ denoise?: number;
11481
+ /** enhancement level [0, 100] */
11482
+ detail?: number;
11483
+ /** output framerate */
11484
+ framerate?: string | number;
11485
+ /** Enable ProcAmp */
11486
+ procamp?: number;
11487
+ /** ProcAmp hue */
11488
+ hue?: number;
11489
+ /** ProcAmp saturation */
11490
+ saturation?: number;
11491
+ /** ProcAmp contrast */
11492
+ contrast?: number;
11493
+ /** ProcAmp brightness */
11494
+ brightness?: number;
11495
+ /** set transpose direction */
11496
+ transpose?: 'cclock_hflip' | 'clock' | 'cclock' | 'clock_hflip' | 'reversal' | 'hflip' | 'vflip';
11497
+ /** set the width crop area expression */
11498
+ cw?: string | number;
11499
+ /** set the height crop area expression */
11500
+ ch?: string | number;
11501
+ /** set the x crop area expression */
11502
+ cx?: string | number;
11503
+ /** set the y crop area expression */
11504
+ cy?: string | number;
11505
+ /** Output video width(0=input video width, -1=keep input video aspect) */
11506
+ w?: string | number;
11507
+ /** Output video width(0=input video width, -1=keep input video aspect) */
11508
+ width?: string | number;
11509
+ /** Output video height(0=input video height, -1=keep input video aspect) */
11510
+ h?: string | number;
11511
+ /** Output video height(0=input video height, -1=keep input video aspect) */
11512
+ height?: string | number;
11513
+ /** Output pixel format */
11514
+ format?: string | number;
11515
+ /** Internal parallelization depth, the higher the value the higher the latency. */
11516
+ async_depth?: number;
11517
+ /** scaling & format conversion mode (mode compute(3), vd(4) and ve(5) are only available on some platforms) */
11518
+ scale_mode?: 'auto' | 'low_power' | 'hq' | 'compute' | 'vd' | 've';
11519
+ /** Generate output at frame rate or field rate, available only for deinterlace mode */
11520
+ rate?: 'frame' | 'field';
11521
+ /** Output color range */
11522
+ out_range?: 'full' | 'limited' | 'jpeg' | 'mpeg' | 'tv' | 'pc';
11523
+ /** Output color matrix coefficient set */
11524
+ out_color_matrix?: string | number;
11525
+ /** Output color primaries */
11526
+ out_color_primaries?: string | number;
11527
+ /** Output color transfer characteristics */
11528
+ out_color_transfer?: string | number;
11529
+ /** Perform tonemapping (0=disable tonemapping, 1=perform tonemapping if the input has HDR metadata) */
11530
+ tonemap?: number;
11531
+ /** Apply pass through mode if possible. */
11532
+ passthrough?: boolean;
11533
+ };
10403
11534
  /**
10404
11535
  * Rockchip RGA (2D Raster Graphic Acceleration) video post-process (scale/crop/transpose)
10405
11536
  * @see https://ffmpeg.org/ffmpeg-filters.html#vpp_005frkrga
@@ -10444,7 +11575,7 @@ export interface FilterOptionsMap {
10444
11575
  /** Use display output duplication for screen capture */
10445
11576
  duplicate_output?: boolean;
10446
11577
  /** Capture synchronization mode */
10447
- capture_mode?: number;
11578
+ capture_mode?: 'keep_framerate' | 'wait_for_present' | 'get_current';
10448
11579
  };
10449
11580
  /**
10450
11581
  * Stack video inputs vertically.
@@ -10555,8 +11686,6 @@ export interface FilterOptionsMap {
10555
11686
  model?: string | number;
10556
11687
  /** Language for transcription ('auto' for auto-detect) */
10557
11688
  language?: string | number;
10558
- /** Translate from source language to English */
10559
- translate?: boolean;
10560
11689
  /** Audio queue size */
10561
11690
  queue?: string | number;
10562
11691
  /** Use GPU for processing */
@@ -10590,7 +11719,20 @@ export interface FilterOptionsMap {
10590
11719
  * Cross-correlate first video stream with second video stream.
10591
11720
  * @see https://ffmpeg.org/ffmpeg-filters.html#xcorrelate
10592
11721
  */
10593
- xcorrelate: {};
11722
+ xcorrelate: {
11723
+ /** set planes to cross-correlate */
11724
+ planes?: number;
11725
+ /** when to process secondary frame */
11726
+ secondary?: 'first' | 'all';
11727
+ /** Action to take when encountering EOF from secondary input */
11728
+ eof_action?: 'repeat' | 'endall' | 'pass';
11729
+ /** force termination when the shortest input terminates */
11730
+ shortest?: boolean;
11731
+ /** extend last frame of secondary streams beyond EOF */
11732
+ repeatlast?: boolean;
11733
+ /** How strictly to sync streams based on secondary input timestamps */
11734
+ ts_sync_mode?: 'default' | 'nearest';
11735
+ };
10594
11736
  /**
10595
11737
  * Cross fade one video with another video.
10596
11738
  * @see https://ffmpeg.org/ffmpeg-filters.html#xfade
@@ -10691,12 +11833,40 @@ export interface FilterOptionsMap {
10691
11833
  * Deinterlace the input image.
10692
11834
  * @see https://ffmpeg.org/ffmpeg-filters.html#yadif
10693
11835
  */
10694
- yadif: {};
11836
+ yadif: {
11837
+ /** specify the interlacing mode */
11838
+ mode?: 'send_frame' | 'send_field' | 'send_frame_nospatial' | 'send_field_nospatial';
11839
+ /** specify the assumed picture field parity */
11840
+ parity?: 'tff' | 'bff' | 'auto';
11841
+ /** specify which frames to deinterlace */
11842
+ deint?: 'all' | 'interlaced';
11843
+ };
10695
11844
  /**
10696
11845
  * Deinterlace CUDA frames
10697
11846
  * @see https://ffmpeg.org/ffmpeg-filters.html#yadif_005fcuda
10698
11847
  */
10699
- yadif_cuda: {};
11848
+ yadif_cuda: {
11849
+ /** specify the interlacing mode */
11850
+ mode?: 'send_frame' | 'send_field' | 'send_frame_nospatial' | 'send_field_nospatial';
11851
+ /** specify the assumed picture field parity */
11852
+ parity?: 'tff' | 'bff' | 'auto';
11853
+ /** specify which frames to deinterlace */
11854
+ deint?: 'all' | 'interlaced';
11855
+ };
11856
+ /**
11857
+ * Deinterlace D3D11 frames using YADIF
11858
+ * @see https://ffmpeg.org/ffmpeg-filters.html#yadif_005fd3d11
11859
+ */
11860
+ yadif_d3d11: {
11861
+ /** specify the interlacing mode */
11862
+ mode?: 'send_frame' | 'send_field' | 'send_frame_nospatial' | 'send_field_nospatial';
11863
+ /** specify the assumed picture field parity */
11864
+ parity?: 'tff' | 'bff' | 'auto';
11865
+ /** specify which frames to deinterlace */
11866
+ deint?: 'all' | 'interlaced';
11867
+ /** Force output through an internal unordered-access texture */
11868
+ force_output_copy?: boolean;
11869
+ };
10700
11870
  /**
10701
11871
  * Deinterlace (YADIF) the video through OpenCL.
10702
11872
  * @see https://ffmpeg.org/ffmpeg-filters.html#yadif_005fopencl
@@ -10709,6 +11879,18 @@ export interface FilterOptionsMap {
10709
11879
  /** specify which frames to deinterlace */
10710
11880
  deint?: 'all' | 'interlaced';
10711
11881
  };
11882
+ /**
11883
+ * YADIF for VideoToolbox frames using Metal compute
11884
+ * @see https://ffmpeg.org/ffmpeg-filters.html#yadif_005fvideotoolbox
11885
+ */
11886
+ yadif_videotoolbox: {
11887
+ /** specify the interlacing mode */
11888
+ mode?: 'send_frame' | 'send_field' | 'send_frame_nospatial' | 'send_field_nospatial';
11889
+ /** specify the assumed picture field parity */
11890
+ parity?: 'tff' | 'bff' | 'auto';
11891
+ /** specify which frames to deinterlace */
11892
+ deint?: 'all' | 'interlaced';
11893
+ };
10712
11894
  /**
10713
11895
  * Yet another edge preserving blur filter.
10714
11896
  * @see https://ffmpeg.org/ffmpeg-filters.html#yaepblur
@@ -10902,7 +12084,7 @@ export interface FilterOptionsMap {
10902
12084
  npl?: number;
10903
12085
  /** allow approximate gamma */
10904
12086
  agamma?: boolean;
10905
- /** parameter A, which is parameter \"b\" for bicubic, */
12087
+ /** parameter A, which is parameter \"b\" for bicubic, and the number of filter taps for lanczos */
10906
12088
  param_a?: number;
10907
12089
  /** parameter B, which is parameter \"c\" for bicubic */
10908
12090
  param_b?: number;