typed-ffmpeg-compatible 2.1.0a0__py3-none-any.whl → 2.2.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
typed_ffmpeg/filters.py CHANGED
@@ -39,6 +39,10 @@ def acrossfade(
39
39
  "losi",
40
40
  "sinc",
41
41
  "isinc",
42
+ "quat",
43
+ "quatr",
44
+ "qsin2",
45
+ "hsin2",
42
46
  ]
43
47
  | Default = Default("tri"),
44
48
  curve2: Int
@@ -63,8 +67,13 @@ def acrossfade(
63
67
  "losi",
64
68
  "sinc",
65
69
  "isinc",
70
+ "quat",
71
+ "quatr",
72
+ "qsin2",
73
+ "hsin2",
66
74
  ]
67
75
  | Default = Default("tri"),
76
+ extra_options: dict[str, Any] = None,
68
77
  **kwargs: Any
69
78
  ) -> AudioStream:
70
79
  """
@@ -75,8 +84,8 @@ def acrossfade(
75
84
  nb_samples: set number of samples for cross fade duration (from 1 to 2.14748e+08) (default 44100)
76
85
  duration: set cross fade duration (default 0)
77
86
  overlap: overlap 1st stream end with 2nd stream start (default true)
78
- curve1: set fade curve type for 1st stream (from -1 to 18) (default tri)
79
- curve2: set fade curve type for 2nd stream (from -1 to 18) (default tri)
87
+ curve1: set fade curve type for 1st stream (from -1 to 22) (default tri)
88
+ curve2: set fade curve type for 2nd stream (from -1 to 22) (default tri)
80
89
 
81
90
  Returns:
82
91
  default: the audio stream
@@ -96,6 +105,7 @@ def acrossfade(
96
105
  "curve1": curve1,
97
106
  "curve2": curve2,
98
107
  }
108
+ | (extra_options or {})
99
109
  | kwargs
100
110
  )
101
111
  return filter_node.audio(0)
@@ -105,6 +115,7 @@ def ainterleave(
105
115
  *streams: AudioStream,
106
116
  nb_inputs: Int = Auto("len(streams)"),
107
117
  duration: Int | Literal["longest", "shortest", "first"] | Default = Default("longest"),
118
+ extra_options: dict[str, Any] = None,
108
119
  **kwargs: Any
109
120
  ) -> AudioStream:
110
121
  """
@@ -131,6 +142,7 @@ def ainterleave(
131
142
  "nb_inputs": nb_inputs,
132
143
  "duration": duration,
133
144
  }
145
+ | (extra_options or {})
134
146
  | kwargs
135
147
  )
136
148
  return filter_node.audio(0)
@@ -145,6 +157,7 @@ def alphamerge(
145
157
  repeatlast: Boolean = Default(True),
146
158
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
147
159
  enable: String = Default(None),
160
+ extra_options: dict[str, Any] = None,
148
161
  **kwargs: Any
149
162
  ) -> VideoStream:
150
163
  """
@@ -176,12 +189,15 @@ def alphamerge(
176
189
  "ts_sync_mode": ts_sync_mode,
177
190
  "enable": enable,
178
191
  }
192
+ | (extra_options or {})
179
193
  | kwargs
180
194
  )
181
195
  return filter_node.video(0)
182
196
 
183
197
 
184
- def amerge(*streams: AudioStream, inputs: Int = Auto("len(streams)"), **kwargs: Any) -> AudioStream:
198
+ def amerge(
199
+ *streams: AudioStream, inputs: Int = Auto("len(streams)"), extra_options: dict[str, Any] = None, **kwargs: Any
200
+ ) -> AudioStream:
185
201
  """
186
202
 
187
203
  Merge two or more audio streams into a single multi-channel stream.
@@ -202,6 +218,7 @@ def amerge(*streams: AudioStream, inputs: Int = Auto("len(streams)"), **kwargs:
202
218
  **{
203
219
  "inputs": inputs,
204
220
  }
221
+ | (extra_options or {})
205
222
  | kwargs
206
223
  )
207
224
  return filter_node.audio(0)
@@ -214,6 +231,7 @@ def amix(
214
231
  dropout_transition: Float = Default(2.0),
215
232
  weights: String = Default("1 1"),
216
233
  normalize: Boolean = Default(True),
234
+ extra_options: dict[str, Any] = None,
217
235
  **kwargs: Any
218
236
  ) -> AudioStream:
219
237
  """
@@ -244,12 +262,15 @@ def amix(
244
262
  "weights": weights,
245
263
  "normalize": normalize,
246
264
  }
265
+ | (extra_options or {})
247
266
  | kwargs
248
267
  )
249
268
  return filter_node.audio(0)
250
269
 
251
270
 
252
- def amultiply(_multiply0: AudioStream, _multiply1: AudioStream, **kwargs: Any) -> AudioStream:
271
+ def amultiply(
272
+ _multiply0: AudioStream, _multiply1: AudioStream, extra_options: dict[str, Any] = None, **kwargs: Any
273
+ ) -> AudioStream:
253
274
  """
254
275
 
255
276
  Multiply two audio streams.
@@ -265,7 +286,7 @@ def amultiply(_multiply0: AudioStream, _multiply1: AudioStream, **kwargs: Any) -
265
286
  FFMpegFilterDef(name="amultiply", typings_input=("audio", "audio"), typings_output=("audio",)),
266
287
  _multiply0,
267
288
  _multiply1,
268
- **{} | kwargs
289
+ **{} | (extra_options or {}) | kwargs
269
290
  )
270
291
  return filter_node.audio(0)
271
292
 
@@ -278,8 +299,9 @@ def anlmf(
278
299
  mu: Float = Default(0.75),
279
300
  eps: Float = Default(1.0),
280
301
  leakage: Float = Default(0.0),
281
- out_mode: Int | Literal["i", "d", "o", "n"] | Default = Default("o"),
302
+ out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
282
303
  enable: String = Default(None),
304
+ extra_options: dict[str, Any] = None,
283
305
  **kwargs: Any
284
306
  ) -> AudioStream:
285
307
  """
@@ -291,7 +313,7 @@ def anlmf(
291
313
  mu: set the filter mu (from 0 to 2) (default 0.75)
292
314
  eps: set the filter eps (from 0 to 1) (default 1)
293
315
  leakage: set the filter leakage (from 0 to 1) (default 0)
294
- out_mode: set output mode (from 0 to 3) (default o)
316
+ out_mode: set output mode (from 0 to 4) (default o)
295
317
  enable: timeline editing
296
318
 
297
319
  Returns:
@@ -313,6 +335,7 @@ def anlmf(
313
335
  "out_mode": out_mode,
314
336
  "enable": enable,
315
337
  }
338
+ | (extra_options or {})
316
339
  | kwargs
317
340
  )
318
341
  return filter_node.audio(0)
@@ -326,8 +349,9 @@ def anlms(
326
349
  mu: Float = Default(0.75),
327
350
  eps: Float = Default(1.0),
328
351
  leakage: Float = Default(0.0),
329
- out_mode: Int | Literal["i", "d", "o", "n"] | Default = Default("o"),
352
+ out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
330
353
  enable: String = Default(None),
354
+ extra_options: dict[str, Any] = None,
331
355
  **kwargs: Any
332
356
  ) -> AudioStream:
333
357
  """
@@ -339,7 +363,7 @@ def anlms(
339
363
  mu: set the filter mu (from 0 to 2) (default 0.75)
340
364
  eps: set the filter eps (from 0 to 1) (default 1)
341
365
  leakage: set the filter leakage (from 0 to 1) (default 0)
342
- out_mode: set output mode (from 0 to 3) (default o)
366
+ out_mode: set output mode (from 0 to 4) (default o)
343
367
  enable: timeline editing
344
368
 
345
369
  Returns:
@@ -361,16 +385,109 @@ def anlms(
361
385
  "out_mode": out_mode,
362
386
  "enable": enable,
363
387
  }
388
+ | (extra_options or {})
389
+ | kwargs
390
+ )
391
+ return filter_node.audio(0)
392
+
393
+
394
+ def apsnr(
395
+ _input0: AudioStream,
396
+ _input1: AudioStream,
397
+ *,
398
+ enable: String = Default(None),
399
+ extra_options: dict[str, Any] = None,
400
+ **kwargs: Any
401
+ ) -> AudioStream:
402
+ """
403
+
404
+ Measure Audio Peak Signal-to-Noise Ratio.
405
+
406
+ Args:
407
+ enable: timeline editing
408
+
409
+ Returns:
410
+ default: the audio stream
411
+
412
+ References:
413
+ [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#apsnr)
414
+
415
+ """
416
+ filter_node = filter_node_factory(
417
+ FFMpegFilterDef(name="apsnr", typings_input=("audio", "audio"), typings_output=("audio",)),
418
+ _input0,
419
+ _input1,
420
+ **{
421
+ "enable": enable,
422
+ }
423
+ | (extra_options or {})
364
424
  | kwargs
365
425
  )
366
426
  return filter_node.audio(0)
367
427
 
368
428
 
369
- def asdr(_input0: AudioStream, _input1: AudioStream, **kwargs: Any) -> AudioStream:
429
+ def arls(
430
+ _input: AudioStream,
431
+ _desired: AudioStream,
432
+ *,
433
+ order: Int = Default(16),
434
+ _lambda: Float = Default(1.0),
435
+ delta: Float = Default(2.0),
436
+ out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
437
+ enable: String = Default(None),
438
+ extra_options: dict[str, Any] = None,
439
+ **kwargs: Any
440
+ ) -> AudioStream:
441
+ """
442
+
443
+ Apply Recursive Least Squares algorithm to first audio stream.
444
+
445
+ Args:
446
+ order: set the filter order (from 1 to 32767) (default 16)
447
+ _lambda: set the filter lambda (from 0 to 1) (default 1)
448
+ delta: set the filter delta (from 0 to 32767) (default 2)
449
+ out_mode: set output mode (from 0 to 4) (default o)
450
+ enable: timeline editing
451
+
452
+ Returns:
453
+ default: the audio stream
454
+
455
+ References:
456
+ [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#arls)
457
+
458
+ """
459
+ filter_node = filter_node_factory(
460
+ FFMpegFilterDef(name="arls", typings_input=("audio", "audio"), typings_output=("audio",)),
461
+ _input,
462
+ _desired,
463
+ **{
464
+ "order": order,
465
+ "lambda": _lambda,
466
+ "delta": delta,
467
+ "out_mode": out_mode,
468
+ "enable": enable,
469
+ }
470
+ | (extra_options or {})
471
+ | kwargs
472
+ )
473
+ return filter_node.audio(0)
474
+
475
+
476
+ def asdr(
477
+ _input0: AudioStream,
478
+ _input1: AudioStream,
479
+ *,
480
+ enable: String = Default(None),
481
+ extra_options: dict[str, Any] = None,
482
+ **kwargs: Any
483
+ ) -> AudioStream:
370
484
  """
371
485
 
372
486
  Measure Audio Signal-to-Distortion Ratio.
373
487
 
488
+ Args:
489
+ enable: timeline editing
490
+
374
491
  Returns:
375
492
  default: the audio stream
376
493
 
@@ -382,13 +499,56 @@ def asdr(_input0: AudioStream, _input1: AudioStream, **kwargs: Any) -> AudioStre
382
499
  FFMpegFilterDef(name="asdr", typings_input=("audio", "audio"), typings_output=("audio",)),
383
500
  _input0,
384
501
  _input1,
385
- **{} | kwargs
502
+ **{
503
+ "enable": enable,
504
+ }
505
+ | (extra_options or {})
506
+ | kwargs
507
+ )
508
+ return filter_node.audio(0)
509
+
510
+
511
+ def asisdr(
512
+ _input0: AudioStream,
513
+ _input1: AudioStream,
514
+ *,
515
+ enable: String = Default(None),
516
+ extra_options: dict[str, Any] = None,
517
+ **kwargs: Any
518
+ ) -> AudioStream:
519
+ """
520
+
521
+ Measure Audio Scale-Invariant Signal-to-Distortion Ratio.
522
+
523
+ Args:
524
+ enable: timeline editing
525
+
526
+ Returns:
527
+ default: the audio stream
528
+
529
+ References:
530
+ [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#asisdr)
531
+
532
+ """
533
+ filter_node = filter_node_factory(
534
+ FFMpegFilterDef(name="asisdr", typings_input=("audio", "audio"), typings_output=("audio",)),
535
+ _input0,
536
+ _input1,
537
+ **{
538
+ "enable": enable,
539
+ }
540
+ | (extra_options or {})
541
+ | kwargs
386
542
  )
387
543
  return filter_node.audio(0)
388
544
 
389
545
 
390
546
  def astreamselect(
391
- *streams: AudioStream, inputs: Int = Auto("len(streams)"), map: String = Default(None), **kwargs: Any
547
+ *streams: AudioStream,
548
+ inputs: Int = Auto("len(streams)"),
549
+ map: String = Default(None),
550
+ extra_options: dict[str, Any] = None,
551
+ **kwargs: Any
392
552
  ) -> FilterNode:
393
553
  """
394
554
 
@@ -417,6 +577,7 @@ def astreamselect(
417
577
  "inputs": inputs,
418
578
  "map": map,
419
579
  }
580
+ | (extra_options or {})
420
581
  | kwargs
421
582
  )
422
583
 
@@ -428,7 +589,8 @@ def axcorrelate(
428
589
  _axcorrelate1: AudioStream,
429
590
  *,
430
591
  size: Int = Default(256),
431
- algo: Int | Literal["slow", "fast"] | Default = Default("slow"),
592
+ algo: Int | Literal["slow", "fast", "best"] | Default = Default("best"),
593
+ extra_options: dict[str, Any] = None,
432
594
  **kwargs: Any
433
595
  ) -> AudioStream:
434
596
  """
@@ -436,8 +598,8 @@ def axcorrelate(
436
598
  Cross-correlate two audio streams.
437
599
 
438
600
  Args:
439
- size: set segment size (from 2 to 131072) (default 256)
440
- algo: set algorithm (from 0 to 1) (default slow)
601
+ size: set the segment size (from 2 to 131072) (default 256)
602
+ algo: set the algorithm (from 0 to 2) (default best)
441
603
 
442
604
  Returns:
443
605
  default: the audio stream
@@ -454,6 +616,7 @@ def axcorrelate(
454
616
  "size": size,
455
617
  "algo": algo,
456
618
  }
619
+ | (extra_options or {})
457
620
  | kwargs
458
621
  )
459
622
  return filter_node.audio(0)
@@ -708,6 +871,7 @@ def blend(
708
871
  repeatlast: Boolean = Default(True),
709
872
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
710
873
  enable: String = Default(None),
874
+ extra_options: dict[str, Any] = None,
711
875
  **kwargs: Any
712
876
  ) -> VideoStream:
713
877
  """
@@ -769,6 +933,7 @@ def blend(
769
933
  "ts_sync_mode": ts_sync_mode,
770
934
  "enable": enable,
771
935
  }
936
+ | (extra_options or {})
772
937
  | kwargs
773
938
  )
774
939
  return filter_node.video(0)
@@ -788,6 +953,7 @@ def bm3d(
788
953
  ref: Boolean = Default(False),
789
954
  planes: Int = Default(7),
790
955
  enable: String = Default(None),
956
+ extra_options: dict[str, Any] = None,
791
957
  **kwargs: Any
792
958
  ) -> VideoStream:
793
959
  """
@@ -836,6 +1002,7 @@ def bm3d(
836
1002
  "planes": planes,
837
1003
  "enable": enable,
838
1004
  }
1005
+ | (extra_options or {})
839
1006
  | kwargs
840
1007
  )
841
1008
  return filter_node.video(0)
@@ -851,6 +1018,7 @@ def colormap(
851
1018
  type: Int | Literal["relative", "absolute"] | Default = Default("absolute"),
852
1019
  kernel: Int | Literal["euclidean", "weuclidean"] | Default = Default("euclidean"),
853
1020
  enable: String = Default(None),
1021
+ extra_options: dict[str, Any] = None,
854
1022
  **kwargs: Any
855
1023
  ) -> VideoStream:
856
1024
  """
@@ -883,6 +1051,7 @@ def colormap(
883
1051
  "kernel": kernel,
884
1052
  "enable": enable,
885
1053
  }
1054
+ | (extra_options or {})
886
1055
  | kwargs
887
1056
  )
888
1057
  return filter_node.video(0)
@@ -894,6 +1063,7 @@ def concat(
894
1063
  v: Int = Default(1),
895
1064
  a: Int = Default(0),
896
1065
  unsafe: Boolean = Default(False),
1066
+ extra_options: dict[str, Any] = None,
897
1067
  **kwargs: Any
898
1068
  ) -> FilterNode:
899
1069
  """
@@ -927,6 +1097,7 @@ def concat(
927
1097
  "a": a,
928
1098
  "unsafe": unsafe,
929
1099
  }
1100
+ | (extra_options or {})
930
1101
  | kwargs
931
1102
  )
932
1103
 
@@ -945,6 +1116,7 @@ def convolve(
945
1116
  repeatlast: Boolean = Default(True),
946
1117
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
947
1118
  enable: String = Default(None),
1119
+ extra_options: dict[str, Any] = None,
948
1120
  **kwargs: Any
949
1121
  ) -> VideoStream:
950
1122
  """
@@ -982,6 +1154,7 @@ def convolve(
982
1154
  "ts_sync_mode": ts_sync_mode,
983
1155
  "enable": enable,
984
1156
  }
1157
+ | (extra_options or {})
985
1158
  | kwargs
986
1159
  )
987
1160
  return filter_node.video(0)
@@ -996,6 +1169,7 @@ def corr(
996
1169
  repeatlast: Boolean = Default(True),
997
1170
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
998
1171
  enable: String = Default(None),
1172
+ extra_options: dict[str, Any] = None,
999
1173
  **kwargs: Any
1000
1174
  ) -> VideoStream:
1001
1175
  """
@@ -1027,6 +1201,7 @@ def corr(
1027
1201
  "ts_sync_mode": ts_sync_mode,
1028
1202
  "enable": enable,
1029
1203
  }
1204
+ | (extra_options or {})
1030
1205
  | kwargs
1031
1206
  )
1032
1207
  return filter_node.video(0)
@@ -1042,6 +1217,7 @@ def decimate(
1042
1217
  ppsrc: Boolean = Default(False),
1043
1218
  chroma: Boolean = Default(True),
1044
1219
  mixed: Boolean = Default(False),
1220
+ extra_options: dict[str, Any] = None,
1045
1221
  **kwargs: Any
1046
1222
  ) -> VideoStream:
1047
1223
  """
@@ -1082,6 +1258,7 @@ def decimate(
1082
1258
  "chroma": chroma,
1083
1259
  "mixed": mixed,
1084
1260
  }
1261
+ | (extra_options or {})
1085
1262
  | kwargs
1086
1263
  )
1087
1264
  return filter_node.video(0)
@@ -1099,6 +1276,7 @@ def deconvolve(
1099
1276
  repeatlast: Boolean = Default(True),
1100
1277
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1101
1278
  enable: String = Default(None),
1279
+ extra_options: dict[str, Any] = None,
1102
1280
  **kwargs: Any
1103
1281
  ) -> VideoStream:
1104
1282
  """
@@ -1136,6 +1314,7 @@ def deconvolve(
1136
1314
  "ts_sync_mode": ts_sync_mode,
1137
1315
  "enable": enable,
1138
1316
  }
1317
+ | (extra_options or {})
1139
1318
  | kwargs
1140
1319
  )
1141
1320
  return filter_node.video(0)
@@ -1148,6 +1327,7 @@ def displace(
1148
1327
  *,
1149
1328
  edge: Int | Literal["blank", "smear", "wrap", "mirror"] | Default = Default("smear"),
1150
1329
  enable: String = Default(None),
1330
+ extra_options: dict[str, Any] = None,
1151
1331
  **kwargs: Any
1152
1332
  ) -> VideoStream:
1153
1333
  """
@@ -1174,13 +1354,20 @@ def displace(
1174
1354
  "edge": edge,
1175
1355
  "enable": enable,
1176
1356
  }
1357
+ | (extra_options or {})
1177
1358
  | kwargs
1178
1359
  )
1179
1360
  return filter_node.video(0)
1180
1361
 
1181
1362
 
1182
1363
  def feedback(
1183
- _default: VideoStream, _feedin: VideoStream, *, x: Int = Default(0), w: Int = Default(0), **kwargs: Any
1364
+ _default: VideoStream,
1365
+ _feedin: VideoStream,
1366
+ *,
1367
+ x: Int = Default(0),
1368
+ w: Int = Default(0),
1369
+ extra_options: dict[str, Any] = None,
1370
+ **kwargs: Any
1184
1371
  ) -> tuple[VideoStream, VideoStream,]:
1185
1372
  """
1186
1373
 
@@ -1206,6 +1393,7 @@ def feedback(
1206
1393
  "x": x,
1207
1394
  "w": w,
1208
1395
  }
1396
+ | (extra_options or {})
1209
1397
  | kwargs
1210
1398
  )
1211
1399
  return (
@@ -1230,6 +1418,7 @@ def fieldmatch(
1230
1418
  blockx: Int = Default(16),
1231
1419
  blocky: Int = Default(16),
1232
1420
  combpel: Int = Default(80),
1421
+ extra_options: dict[str, Any] = None,
1233
1422
  **kwargs: Any
1234
1423
  ) -> VideoStream:
1235
1424
  """
@@ -1282,6 +1471,7 @@ def fieldmatch(
1282
1471
  "blocky": blocky,
1283
1472
  "combpel": combpel,
1284
1473
  }
1474
+ | (extra_options or {})
1285
1475
  | kwargs
1286
1476
  )
1287
1477
  return filter_node.video(0)
@@ -1292,6 +1482,7 @@ def framepack(
1292
1482
  _right: VideoStream,
1293
1483
  *,
1294
1484
  format: Int | Literal["sbs", "tab", "frameseq", "lines", "columns"] | Default = Default("sbs"),
1485
+ extra_options: dict[str, Any] = None,
1295
1486
  **kwargs: Any
1296
1487
  ) -> VideoStream:
1297
1488
  """
@@ -1315,6 +1506,7 @@ def framepack(
1315
1506
  **{
1316
1507
  "format": format,
1317
1508
  }
1509
+ | (extra_options or {})
1318
1510
  | kwargs
1319
1511
  )
1320
1512
  return filter_node.video(0)
@@ -1327,6 +1519,7 @@ def freezeframes(
1327
1519
  first: Int64 = Default(0),
1328
1520
  last: Int64 = Default(0),
1329
1521
  replace: Int64 = Default(0),
1522
+ extra_options: dict[str, Any] = None,
1330
1523
  **kwargs: Any
1331
1524
  ) -> VideoStream:
1332
1525
  """
@@ -1354,6 +1547,7 @@ def freezeframes(
1354
1547
  "last": last,
1355
1548
  "replace": replace,
1356
1549
  }
1550
+ | (extra_options or {})
1357
1551
  | kwargs
1358
1552
  )
1359
1553
  return filter_node.video(0)
@@ -1368,6 +1562,7 @@ def guided(
1368
1562
  guidance: Int | Literal["off", "on"] | Default = Default("off"),
1369
1563
  planes: Int = Default(1),
1370
1564
  enable: String = Default(None),
1565
+ extra_options: dict[str, Any] = None,
1371
1566
  **kwargs: Any
1372
1567
  ) -> VideoStream:
1373
1568
  """
@@ -1406,6 +1601,7 @@ def guided(
1406
1601
  "planes": planes,
1407
1602
  "enable": enable,
1408
1603
  }
1604
+ | (extra_options or {})
1409
1605
  | kwargs
1410
1606
  )
1411
1607
  return filter_node.video(0)
@@ -1422,6 +1618,7 @@ def haldclut(
1422
1618
  repeatlast: Boolean = Default(True),
1423
1619
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1424
1620
  enable: String = Default(None),
1621
+ extra_options: dict[str, Any] = None,
1425
1622
  **kwargs: Any
1426
1623
  ) -> VideoStream:
1427
1624
  """
@@ -1457,6 +1654,7 @@ def haldclut(
1457
1654
  "ts_sync_mode": ts_sync_mode,
1458
1655
  "enable": enable,
1459
1656
  }
1657
+ | (extra_options or {})
1460
1658
  | kwargs
1461
1659
  )
1462
1660
  return filter_node.video(0)
@@ -1470,6 +1668,7 @@ def headphone(
1470
1668
  type: Int | Literal["time", "freq"] | Default = Default("freq"),
1471
1669
  size: Int = Default(1024),
1472
1670
  hrir: Int | Literal["stereo", "multich"] | Default = Default("stereo"),
1671
+ extra_options: dict[str, Any] = None,
1473
1672
  **kwargs: Any
1474
1673
  ) -> AudioStream:
1475
1674
  """
@@ -1506,13 +1705,18 @@ def headphone(
1506
1705
  "size": size,
1507
1706
  "hrir": hrir,
1508
1707
  }
1708
+ | (extra_options or {})
1509
1709
  | kwargs
1510
1710
  )
1511
1711
  return filter_node.audio(0)
1512
1712
 
1513
1713
 
1514
1714
  def hstack(
1515
- *streams: VideoStream, inputs: Int = Auto("len(streams)"), shortest: Boolean = Default(False), **kwargs: Any
1715
+ *streams: VideoStream,
1716
+ inputs: Int = Auto("len(streams)"),
1717
+ shortest: Boolean = Default(False),
1718
+ extra_options: dict[str, Any] = None,
1719
+ **kwargs: Any
1516
1720
  ) -> VideoStream:
1517
1721
  """
1518
1722
 
@@ -1536,6 +1740,7 @@ def hstack(
1536
1740
  "inputs": inputs,
1537
1741
  "shortest": shortest,
1538
1742
  }
1743
+ | (extra_options or {})
1539
1744
  | kwargs
1540
1745
  )
1541
1746
  return filter_node.video(0)
@@ -1552,6 +1757,7 @@ def hysteresis(
1552
1757
  repeatlast: Boolean = Default(True),
1553
1758
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1554
1759
  enable: String = Default(None),
1760
+ extra_options: dict[str, Any] = None,
1555
1761
  **kwargs: Any
1556
1762
  ) -> VideoStream:
1557
1763
  """
@@ -1587,6 +1793,7 @@ def hysteresis(
1587
1793
  "ts_sync_mode": ts_sync_mode,
1588
1794
  "enable": enable,
1589
1795
  }
1796
+ | (extra_options or {})
1590
1797
  | kwargs
1591
1798
  )
1592
1799
  return filter_node.video(0)
@@ -1601,6 +1808,7 @@ def identity(
1601
1808
  repeatlast: Boolean = Default(True),
1602
1809
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1603
1810
  enable: String = Default(None),
1811
+ extra_options: dict[str, Any] = None,
1604
1812
  **kwargs: Any
1605
1813
  ) -> VideoStream:
1606
1814
  """
@@ -1632,6 +1840,7 @@ def identity(
1632
1840
  "ts_sync_mode": ts_sync_mode,
1633
1841
  "enable": enable,
1634
1842
  }
1843
+ | (extra_options or {})
1635
1844
  | kwargs
1636
1845
  )
1637
1846
  return filter_node.video(0)
@@ -1641,6 +1850,7 @@ def interleave(
1641
1850
  *streams: VideoStream,
1642
1851
  nb_inputs: Int = Auto("len(streams)"),
1643
1852
  duration: Int | Literal["longest", "shortest", "first"] | Default = Default("longest"),
1853
+ extra_options: dict[str, Any] = None,
1644
1854
  **kwargs: Any
1645
1855
  ) -> VideoStream:
1646
1856
  """
@@ -1667,6 +1877,7 @@ def interleave(
1667
1877
  "nb_inputs": nb_inputs,
1668
1878
  "duration": duration,
1669
1879
  }
1880
+ | (extra_options or {})
1670
1881
  | kwargs
1671
1882
  )
1672
1883
  return filter_node.video(0)
@@ -1677,6 +1888,7 @@ def join(
1677
1888
  inputs: Int = Auto("len(streams)"),
1678
1889
  channel_layout: String = Default("stereo"),
1679
1890
  map: String = Default(None),
1891
+ extra_options: dict[str, Any] = None,
1680
1892
  **kwargs: Any
1681
1893
  ) -> AudioStream:
1682
1894
  """
@@ -1703,6 +1915,7 @@ def join(
1703
1915
  "channel_layout": channel_layout,
1704
1916
  "map": map,
1705
1917
  }
1918
+ | (extra_options or {})
1706
1919
  | kwargs
1707
1920
  )
1708
1921
  return filter_node.audio(0)
@@ -1712,23 +1925,18 @@ def libvmaf(
1712
1925
  _main: VideoStream,
1713
1926
  _reference: VideoStream,
1714
1927
  *,
1715
- model_path: String = Default(None),
1716
1928
  log_path: String = Default(None),
1717
1929
  log_fmt: String = Default("xml"),
1718
- enable_transform: Boolean = Default(False),
1719
- psnr: Boolean = Default(False),
1720
- ssim: Boolean = Default(False),
1721
- ms_ssim: Boolean = Default(False),
1722
1930
  pool: String = Default(None),
1723
1931
  n_threads: Int = Default(0),
1724
1932
  n_subsample: Int = Default(1),
1725
- enable_conf_interval: Boolean = Default(False),
1726
1933
  model: String = Default("version=vmaf_v0.6.1"),
1727
1934
  feature: String = Default(None),
1728
1935
  eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
1729
1936
  shortest: Boolean = Default(False),
1730
1937
  repeatlast: Boolean = Default(True),
1731
1938
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1939
+ extra_options: dict[str, Any] = None,
1732
1940
  **kwargs: Any
1733
1941
  ) -> VideoStream:
1734
1942
  """
@@ -1736,17 +1944,11 @@ def libvmaf(
1736
1944
  Calculate the VMAF between two video streams.
1737
1945
 
1738
1946
  Args:
1739
- model_path: use model='path=...'.
1740
1947
  log_path: Set the file path to be used to write log.
1741
1948
  log_fmt: Set the format of the log (csv, json, xml, or sub). (default "xml")
1742
- enable_transform: use model='enable_transform=true'. (default false)
1743
- psnr: use feature='name=psnr'. (default false)
1744
- ssim: use feature='name=float_ssim'. (default false)
1745
- ms_ssim: use feature='name=float_ms_ssim'. (default false)
1746
1949
  pool: Set the pool method to be used for computing vmaf.
1747
1950
  n_threads: Set number of threads to be used when computing vmaf. (from 0 to UINT32_MAX) (default 0)
1748
1951
  n_subsample: Set interval for frame subsampling used when computing vmaf. (from 1 to UINT32_MAX) (default 1)
1749
- enable_conf_interval: model='enable_conf_interval=true'. (default false)
1750
1952
  model: Set the model to be used for computing vmaf. (default "version=vmaf_v0.6.1")
1751
1953
  feature: Set the feature to be used for computing vmaf.
1752
1954
  eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
@@ -1766,17 +1968,11 @@ def libvmaf(
1766
1968
  _main,
1767
1969
  _reference,
1768
1970
  **{
1769
- "model_path": model_path,
1770
1971
  "log_path": log_path,
1771
1972
  "log_fmt": log_fmt,
1772
- "enable_transform": enable_transform,
1773
- "psnr": psnr,
1774
- "ssim": ssim,
1775
- "ms_ssim": ms_ssim,
1776
1973
  "pool": pool,
1777
1974
  "n_threads": n_threads,
1778
1975
  "n_subsample": n_subsample,
1779
- "enable_conf_interval": enable_conf_interval,
1780
1976
  "model": model,
1781
1977
  "feature": feature,
1782
1978
  "eof_action": eof_action,
@@ -1784,6 +1980,7 @@ def libvmaf(
1784
1980
  "repeatlast": repeatlast,
1785
1981
  "ts_sync_mode": ts_sync_mode,
1786
1982
  }
1983
+ | (extra_options or {})
1787
1984
  | kwargs
1788
1985
  )
1789
1986
  return filter_node.video(0)
@@ -1796,6 +1993,7 @@ def limitdiff(
1796
1993
  reference: Boolean = Default(False),
1797
1994
  planes: Int = Default(15),
1798
1995
  enable: String = Default(None),
1996
+ extra_options: dict[str, Any] = None,
1799
1997
  **kwargs: Any
1800
1998
  ) -> VideoStream:
1801
1999
  """
@@ -1830,6 +2028,7 @@ def limitdiff(
1830
2028
  "planes": planes,
1831
2029
  "enable": enable,
1832
2030
  }
2031
+ | (extra_options or {})
1833
2032
  | kwargs
1834
2033
  )
1835
2034
  return filter_node.video(0)
@@ -1849,6 +2048,7 @@ def lut2(
1849
2048
  repeatlast: Boolean = Default(True),
1850
2049
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1851
2050
  enable: String = Default(None),
2051
+ extra_options: dict[str, Any] = None,
1852
2052
  **kwargs: Any
1853
2053
  ) -> VideoStream:
1854
2054
  """
@@ -1890,6 +2090,7 @@ def lut2(
1890
2090
  "ts_sync_mode": ts_sync_mode,
1891
2091
  "enable": enable,
1892
2092
  }
2093
+ | (extra_options or {})
1893
2094
  | kwargs
1894
2095
  )
1895
2096
  return filter_node.video(0)
@@ -1904,6 +2105,7 @@ def maskedclamp(
1904
2105
  overshoot: Int = Default(0),
1905
2106
  planes: Int = Default(15),
1906
2107
  enable: String = Default(None),
2108
+ extra_options: dict[str, Any] = None,
1907
2109
  **kwargs: Any
1908
2110
  ) -> VideoStream:
1909
2111
  """
@@ -1934,6 +2136,7 @@ def maskedclamp(
1934
2136
  "planes": planes,
1935
2137
  "enable": enable,
1936
2138
  }
2139
+ | (extra_options or {})
1937
2140
  | kwargs
1938
2141
  )
1939
2142
  return filter_node.video(0)
@@ -1946,6 +2149,7 @@ def maskedmax(
1946
2149
  *,
1947
2150
  planes: Int = Default(15),
1948
2151
  enable: String = Default(None),
2152
+ extra_options: dict[str, Any] = None,
1949
2153
  **kwargs: Any
1950
2154
  ) -> VideoStream:
1951
2155
  """
@@ -1972,6 +2176,7 @@ def maskedmax(
1972
2176
  "planes": planes,
1973
2177
  "enable": enable,
1974
2178
  }
2179
+ | (extra_options or {})
1975
2180
  | kwargs
1976
2181
  )
1977
2182
  return filter_node.video(0)
@@ -1984,6 +2189,7 @@ def maskedmerge(
1984
2189
  *,
1985
2190
  planes: Int = Default(15),
1986
2191
  enable: String = Default(None),
2192
+ extra_options: dict[str, Any] = None,
1987
2193
  **kwargs: Any
1988
2194
  ) -> VideoStream:
1989
2195
  """
@@ -2010,6 +2216,7 @@ def maskedmerge(
2010
2216
  "planes": planes,
2011
2217
  "enable": enable,
2012
2218
  }
2219
+ | (extra_options or {})
2013
2220
  | kwargs
2014
2221
  )
2015
2222
  return filter_node.video(0)
@@ -2022,6 +2229,7 @@ def maskedmin(
2022
2229
  *,
2023
2230
  planes: Int = Default(15),
2024
2231
  enable: String = Default(None),
2232
+ extra_options: dict[str, Any] = None,
2025
2233
  **kwargs: Any
2026
2234
  ) -> VideoStream:
2027
2235
  """
@@ -2048,6 +2256,7 @@ def maskedmin(
2048
2256
  "planes": planes,
2049
2257
  "enable": enable,
2050
2258
  }
2259
+ | (extra_options or {})
2051
2260
  | kwargs
2052
2261
  )
2053
2262
  return filter_node.video(0)
@@ -2061,6 +2270,7 @@ def maskedthreshold(
2061
2270
  planes: Int = Default(15),
2062
2271
  mode: Int | Literal["abs", "diff"] | Default = Default("abs"),
2063
2272
  enable: String = Default(None),
2273
+ extra_options: dict[str, Any] = None,
2064
2274
  **kwargs: Any
2065
2275
  ) -> VideoStream:
2066
2276
  """
@@ -2090,6 +2300,7 @@ def maskedthreshold(
2090
2300
  "mode": mode,
2091
2301
  "enable": enable,
2092
2302
  }
2303
+ | (extra_options or {})
2093
2304
  | kwargs
2094
2305
  )
2095
2306
  return filter_node.video(0)
@@ -2107,6 +2318,7 @@ def mergeplanes(
2107
2318
  map2p: Int = Default(0),
2108
2319
  map3s: Int = Default(0),
2109
2320
  map3p: Int = Default(0),
2321
+ extra_options: dict[str, Any] = None,
2110
2322
  **kwargs: Any
2111
2323
  ) -> VideoStream:
2112
2324
  """
@@ -2151,13 +2363,20 @@ def mergeplanes(
2151
2363
  "map3s": map3s,
2152
2364
  "map3p": map3p,
2153
2365
  }
2366
+ | (extra_options or {})
2154
2367
  | kwargs
2155
2368
  )
2156
2369
  return filter_node.video(0)
2157
2370
 
2158
2371
 
2159
2372
  def midequalizer(
2160
- _in0: VideoStream, _in1: VideoStream, *, planes: Int = Default(15), enable: String = Default(None), **kwargs: Any
2373
+ _in0: VideoStream,
2374
+ _in1: VideoStream,
2375
+ *,
2376
+ planes: Int = Default(15),
2377
+ enable: String = Default(None),
2378
+ extra_options: dict[str, Any] = None,
2379
+ **kwargs: Any
2161
2380
  ) -> VideoStream:
2162
2381
  """
2163
2382
 
@@ -2182,6 +2401,7 @@ def midequalizer(
2182
2401
  "planes": planes,
2183
2402
  "enable": enable,
2184
2403
  }
2404
+ | (extra_options or {})
2185
2405
  | kwargs
2186
2406
  )
2187
2407
  return filter_node.video(0)
@@ -2195,6 +2415,7 @@ def mix(
2195
2415
  planes: Flags = Default("F"),
2196
2416
  duration: Int | Literal["longest", "shortest", "first"] | Default = Default("longest"),
2197
2417
  enable: String = Default(None),
2418
+ extra_options: dict[str, Any] = None,
2198
2419
  **kwargs: Any
2199
2420
  ) -> VideoStream:
2200
2421
  """
@@ -2227,6 +2448,7 @@ def mix(
2227
2448
  "duration": duration,
2228
2449
  "enable": enable,
2229
2450
  }
2451
+ | (extra_options or {})
2230
2452
  | kwargs
2231
2453
  )
2232
2454
  return filter_node.video(0)
@@ -2246,6 +2468,7 @@ def morpho(
2246
2468
  repeatlast: Boolean = Default(True),
2247
2469
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
2248
2470
  enable: String = Default(None),
2471
+ extra_options: dict[str, Any] = None,
2249
2472
  **kwargs: Any
2250
2473
  ) -> VideoStream:
2251
2474
  """
@@ -2283,6 +2506,7 @@ def morpho(
2283
2506
  "ts_sync_mode": ts_sync_mode,
2284
2507
  "enable": enable,
2285
2508
  }
2509
+ | (extra_options or {})
2286
2510
  | kwargs
2287
2511
  )
2288
2512
  return filter_node.video(0)
@@ -2297,6 +2521,7 @@ def msad(
2297
2521
  repeatlast: Boolean = Default(True),
2298
2522
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
2299
2523
  enable: String = Default(None),
2524
+ extra_options: dict[str, Any] = None,
2300
2525
  **kwargs: Any
2301
2526
  ) -> VideoStream:
2302
2527
  """
@@ -2328,6 +2553,7 @@ def msad(
2328
2553
  "ts_sync_mode": ts_sync_mode,
2329
2554
  "enable": enable,
2330
2555
  }
2556
+ | (extra_options or {})
2331
2557
  | kwargs
2332
2558
  )
2333
2559
  return filter_node.video(0)
@@ -2341,6 +2567,7 @@ def multiply(
2341
2567
  offset: Float = Default(0.5),
2342
2568
  planes: Flags = Default("F"),
2343
2569
  enable: String = Default(None),
2570
+ extra_options: dict[str, Any] = None,
2344
2571
  **kwargs: Any
2345
2572
  ) -> VideoStream:
2346
2573
  """
@@ -2370,6 +2597,7 @@ def multiply(
2370
2597
  "planes": planes,
2371
2598
  "enable": enable,
2372
2599
  }
2600
+ | (extra_options or {})
2373
2601
  | kwargs
2374
2602
  )
2375
2603
  return filter_node.video(0)
@@ -2385,12 +2613,13 @@ def overlay(
2385
2613
  eval: Int | Literal["init", "frame"] | Default = Default("frame"),
2386
2614
  shortest: Boolean = Default(False),
2387
2615
  format: Int
2388
- | Literal["yuv420", "yuv420p10", "yuv422", "yuv422p10", "yuv444", "rgb", "gbrp", "auto"]
2616
+ | Literal["yuv420", "yuv420p10", "yuv422", "yuv422p10", "yuv444", "yuv444p10", "rgb", "gbrp", "auto"]
2389
2617
  | Default = Default("yuv420"),
2390
2618
  repeatlast: Boolean = Default(True),
2391
2619
  alpha: Int | Literal["straight", "premultiplied"] | Default = Default("straight"),
2392
2620
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
2393
2621
  enable: String = Default(None),
2622
+ extra_options: dict[str, Any] = None,
2394
2623
  **kwargs: Any
2395
2624
  ) -> VideoStream:
2396
2625
  """
@@ -2403,7 +2632,7 @@ def overlay(
2403
2632
  eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
2404
2633
  eval: specify when to evaluate expressions (from 0 to 1) (default frame)
2405
2634
  shortest: force termination when the shortest input terminates (default false)
2406
- format: set output format (from 0 to 7) (default yuv420)
2635
+ format: set output format (from 0 to 8) (default yuv420)
2407
2636
  repeatlast: repeat overlay of the last overlay frame (default true)
2408
2637
  alpha: alpha format (from 0 to 1) (default straight)
2409
2638
  ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
@@ -2432,6 +2661,7 @@ def overlay(
2432
2661
  "ts_sync_mode": ts_sync_mode,
2433
2662
  "enable": enable,
2434
2663
  }
2664
+ | (extra_options or {})
2435
2665
  | kwargs
2436
2666
  )
2437
2667
  return filter_node.video(0)
@@ -2449,6 +2679,7 @@ def paletteuse(
2449
2679
  new: Boolean = Default(False),
2450
2680
  alpha_threshold: Int = Default(128),
2451
2681
  debug_kdtree: String = Default(None),
2682
+ extra_options: dict[str, Any] = None,
2452
2683
  **kwargs: Any
2453
2684
  ) -> VideoStream:
2454
2685
  """
@@ -2482,6 +2713,7 @@ def paletteuse(
2482
2713
  "alpha_threshold": alpha_threshold,
2483
2714
  "debug_kdtree": debug_kdtree,
2484
2715
  }
2716
+ | (extra_options or {})
2485
2717
  | kwargs
2486
2718
  )
2487
2719
  return filter_node.video(0)
@@ -2492,6 +2724,7 @@ def premultiply(
2492
2724
  planes: Int = Default(15),
2493
2725
  inplace: Boolean = Default(False),
2494
2726
  enable: String = Default(None),
2727
+ extra_options: dict[str, Any] = None,
2495
2728
  **kwargs: Any
2496
2729
  ) -> VideoStream:
2497
2730
  """
@@ -2522,6 +2755,7 @@ def premultiply(
2522
2755
  "inplace": inplace,
2523
2756
  "enable": enable,
2524
2757
  }
2758
+ | (extra_options or {})
2525
2759
  | kwargs
2526
2760
  )
2527
2761
  return filter_node.video(0)
@@ -2539,6 +2773,7 @@ def psnr(
2539
2773
  repeatlast: Boolean = Default(True),
2540
2774
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
2541
2775
  enable: String = Default(None),
2776
+ extra_options: dict[str, Any] = None,
2542
2777
  **kwargs: Any
2543
2778
  ) -> VideoStream:
2544
2779
  """
@@ -2576,6 +2811,7 @@ def psnr(
2576
2811
  "ts_sync_mode": ts_sync_mode,
2577
2812
  "enable": enable,
2578
2813
  }
2814
+ | (extra_options or {})
2579
2815
  | kwargs
2580
2816
  )
2581
2817
  return filter_node.video(0)
@@ -2588,6 +2824,7 @@ def remap(
2588
2824
  *,
2589
2825
  format: Int | Literal["color", "gray"] | Default = Default("color"),
2590
2826
  fill: Color = Default("black"),
2827
+ extra_options: dict[str, Any] = None,
2591
2828
  **kwargs: Any
2592
2829
  ) -> VideoStream:
2593
2830
  """
@@ -2614,104 +2851,12 @@ def remap(
2614
2851
  "format": format,
2615
2852
  "fill": fill,
2616
2853
  }
2854
+ | (extra_options or {})
2617
2855
  | kwargs
2618
2856
  )
2619
2857
  return filter_node.video(0)
2620
2858
 
2621
2859
 
2622
- def scale2ref(
2623
- _default: VideoStream,
2624
- _ref: VideoStream,
2625
- *,
2626
- w: String = Default(None),
2627
- h: String = Default(None),
2628
- flags: String = Default(""),
2629
- interl: Boolean = Default(False),
2630
- in_color_matrix: String
2631
- | Literal["auto", "bt601", "bt470", "smpte170m", "bt709", "fcc", "smpte240m", "bt2020"]
2632
- | Default = Default("auto"),
2633
- out_color_matrix: String
2634
- | Literal["auto", "bt601", "bt470", "smpte170m", "bt709", "fcc", "smpte240m", "bt2020"]
2635
- | Default = Default(None),
2636
- in_range: Int
2637
- | Literal["auto", "unknown", "full", "limited", "jpeg", "mpeg", "tv", "pc"]
2638
- | Default = Default("auto"),
2639
- out_range: Int
2640
- | Literal["auto", "unknown", "full", "limited", "jpeg", "mpeg", "tv", "pc"]
2641
- | Default = Default("auto"),
2642
- in_v_chr_pos: Int = Default(-513),
2643
- in_h_chr_pos: Int = Default(-513),
2644
- out_v_chr_pos: Int = Default(-513),
2645
- out_h_chr_pos: Int = Default(-513),
2646
- force_original_aspect_ratio: Int | Literal["disable", "decrease", "increase"] | Default = Default("disable"),
2647
- force_divisible_by: Int = Default(1),
2648
- param0: Double = Default("DBL_MAX"),
2649
- param1: Double = Default("DBL_MAX"),
2650
- eval: Int | Literal["init", "frame"] | Default = Default("init"),
2651
- **kwargs: Any
2652
- ) -> tuple[VideoStream, VideoStream,]:
2653
- """
2654
-
2655
- Scale the input video size and/or convert the image format to the given reference.
2656
-
2657
- Args:
2658
- w: Output video width
2659
- h: Output video height
2660
- flags: Flags to pass to libswscale (default "")
2661
- interl: set interlacing (default false)
2662
- in_color_matrix: set input YCbCr type (default "auto")
2663
- out_color_matrix: set output YCbCr type
2664
- in_range: set input color range (from 0 to 2) (default auto)
2665
- out_range: set output color range (from 0 to 2) (default auto)
2666
- in_v_chr_pos: input vertical chroma position in luma grid/256 (from -513 to 512) (default -513)
2667
- in_h_chr_pos: input horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)
2668
- out_v_chr_pos: output vertical chroma position in luma grid/256 (from -513 to 512) (default -513)
2669
- out_h_chr_pos: output horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)
2670
- force_original_aspect_ratio: decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)
2671
- force_divisible_by: enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)
2672
- param0: Scaler param 0 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)
2673
- param1: Scaler param 1 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)
2674
- eval: specify when to evaluate expressions (from 0 to 1) (default init)
2675
-
2676
- Returns:
2677
- default: the video stream
2678
- ref: the video stream
2679
-
2680
- References:
2681
- [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#scale2ref)
2682
-
2683
- """
2684
- filter_node = filter_node_factory(
2685
- FFMpegFilterDef(name="scale2ref", typings_input=("video", "video"), typings_output=("video", "video")),
2686
- _default,
2687
- _ref,
2688
- **{
2689
- "w": w,
2690
- "h": h,
2691
- "flags": flags,
2692
- "interl": interl,
2693
- "in_color_matrix": in_color_matrix,
2694
- "out_color_matrix": out_color_matrix,
2695
- "in_range": in_range,
2696
- "out_range": out_range,
2697
- "in_v_chr_pos": in_v_chr_pos,
2698
- "in_h_chr_pos": in_h_chr_pos,
2699
- "out_v_chr_pos": out_v_chr_pos,
2700
- "out_h_chr_pos": out_h_chr_pos,
2701
- "force_original_aspect_ratio": force_original_aspect_ratio,
2702
- "force_divisible_by": force_divisible_by,
2703
- "param0": param0,
2704
- "param1": param1,
2705
- "eval": eval,
2706
- }
2707
- | kwargs
2708
- )
2709
- return (
2710
- filter_node.video(0),
2711
- filter_node.video(1),
2712
- )
2713
-
2714
-
2715
2860
  def sidechaincompress(
2716
2861
  _main: AudioStream,
2717
2862
  _sidechain: AudioStream,
@@ -2728,6 +2873,7 @@ def sidechaincompress(
2728
2873
  detection: Int | Literal["peak", "rms"] | Default = Default("rms"),
2729
2874
  level_sc: Double = Default(1.0),
2730
2875
  mix: Double = Default(1.0),
2876
+ extra_options: dict[str, Any] = None,
2731
2877
  **kwargs: Any
2732
2878
  ) -> AudioStream:
2733
2879
  """
@@ -2773,6 +2919,7 @@ def sidechaincompress(
2773
2919
  "level_sc": level_sc,
2774
2920
  "mix": mix,
2775
2921
  }
2922
+ | (extra_options or {})
2776
2923
  | kwargs
2777
2924
  )
2778
2925
  return filter_node.audio(0)
@@ -2795,6 +2942,7 @@ def sidechaingate(
2795
2942
  link: Int | Literal["average", "maximum"] | Default = Default("average"),
2796
2943
  level_sc: Double = Default(1.0),
2797
2944
  enable: String = Default(None),
2945
+ extra_options: dict[str, Any] = None,
2798
2946
  **kwargs: Any
2799
2947
  ) -> AudioStream:
2800
2948
  """
@@ -2842,6 +2990,7 @@ def sidechaingate(
2842
2990
  "level_sc": level_sc,
2843
2991
  "enable": enable,
2844
2992
  }
2993
+ | (extra_options or {})
2845
2994
  | kwargs
2846
2995
  )
2847
2996
  return filter_node.audio(0)
@@ -2858,6 +3007,7 @@ def signature(
2858
3007
  th_xh: Int = Default(116),
2859
3008
  th_di: Int = Default(0),
2860
3009
  th_it: Double = Default(0.5),
3010
+ extra_options: dict[str, Any] = None,
2861
3011
  **kwargs: Any
2862
3012
  ) -> VideoStream:
2863
3013
  """
@@ -2898,6 +3048,7 @@ def signature(
2898
3048
  "th_di": th_di,
2899
3049
  "th_it": th_it,
2900
3050
  }
3051
+ | (extra_options or {})
2901
3052
  | kwargs
2902
3053
  )
2903
3054
  return filter_node.video(0)
@@ -2939,6 +3090,7 @@ def spectrumsynth(
2939
3090
  | Default = Default("rect"),
2940
3091
  overlap: Float = Default(1.0),
2941
3092
  orientation: Int | Literal["vertical", "horizontal"] | Default = Default("vertical"),
3093
+ extra_options: dict[str, Any] = None,
2942
3094
  **kwargs: Any
2943
3095
  ) -> AudioStream:
2944
3096
  """
@@ -2974,6 +3126,7 @@ def spectrumsynth(
2974
3126
  "overlap": overlap,
2975
3127
  "orientation": orientation,
2976
3128
  }
3129
+ | (extra_options or {})
2977
3130
  | kwargs
2978
3131
  )
2979
3132
  return filter_node.audio(0)
@@ -2989,6 +3142,7 @@ def ssim(
2989
3142
  repeatlast: Boolean = Default(True),
2990
3143
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
2991
3144
  enable: String = Default(None),
3145
+ extra_options: dict[str, Any] = None,
2992
3146
  **kwargs: Any
2993
3147
  ) -> VideoStream:
2994
3148
  """
@@ -3022,13 +3176,18 @@ def ssim(
3022
3176
  "ts_sync_mode": ts_sync_mode,
3023
3177
  "enable": enable,
3024
3178
  }
3179
+ | (extra_options or {})
3025
3180
  | kwargs
3026
3181
  )
3027
3182
  return filter_node.video(0)
3028
3183
 
3029
3184
 
3030
3185
  def streamselect(
3031
- *streams: VideoStream, inputs: Int = Auto("len(streams)"), map: String = Default(None), **kwargs: Any
3186
+ *streams: VideoStream,
3187
+ inputs: Int = Auto("len(streams)"),
3188
+ map: String = Default(None),
3189
+ extra_options: dict[str, Any] = None,
3190
+ **kwargs: Any
3032
3191
  ) -> FilterNode:
3033
3192
  """
3034
3193
 
@@ -3057,6 +3216,7 @@ def streamselect(
3057
3216
  "inputs": inputs,
3058
3217
  "map": map,
3059
3218
  }
3219
+ | (extra_options or {})
3060
3220
  | kwargs
3061
3221
  )
3062
3222
 
@@ -3071,6 +3231,7 @@ def threshold(
3071
3231
  *,
3072
3232
  planes: Int = Default(15),
3073
3233
  enable: String = Default(None),
3234
+ extra_options: dict[str, Any] = None,
3074
3235
  **kwargs: Any
3075
3236
  ) -> VideoStream:
3076
3237
  """
@@ -3100,6 +3261,7 @@ def threshold(
3100
3261
  "planes": planes,
3101
3262
  "enable": enable,
3102
3263
  }
3264
+ | (extra_options or {})
3103
3265
  | kwargs
3104
3266
  )
3105
3267
  return filter_node.video(0)
@@ -3110,6 +3272,7 @@ def unpremultiply(
3110
3272
  planes: Int = Default(15),
3111
3273
  inplace: Boolean = Default(False),
3112
3274
  enable: String = Default(None),
3275
+ extra_options: dict[str, Any] = None,
3113
3276
  **kwargs: Any
3114
3277
  ) -> VideoStream:
3115
3278
  """
@@ -3140,6 +3303,7 @@ def unpremultiply(
3140
3303
  "inplace": inplace,
3141
3304
  "enable": enable,
3142
3305
  }
3306
+ | (extra_options or {})
3143
3307
  | kwargs
3144
3308
  )
3145
3309
  return filter_node.video(0)
@@ -3157,6 +3321,7 @@ def varblur(
3157
3321
  repeatlast: Boolean = Default(True),
3158
3322
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3159
3323
  enable: String = Default(None),
3324
+ extra_options: dict[str, Any] = None,
3160
3325
  **kwargs: Any
3161
3326
  ) -> VideoStream:
3162
3327
  """
@@ -3194,6 +3359,7 @@ def varblur(
3194
3359
  "ts_sync_mode": ts_sync_mode,
3195
3360
  "enable": enable,
3196
3361
  }
3362
+ | (extra_options or {})
3197
3363
  | kwargs
3198
3364
  )
3199
3365
  return filter_node.video(0)
@@ -3208,6 +3374,7 @@ def vif(
3208
3374
  repeatlast: Boolean = Default(True),
3209
3375
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3210
3376
  enable: String = Default(None),
3377
+ extra_options: dict[str, Any] = None,
3211
3378
  **kwargs: Any
3212
3379
  ) -> VideoStream:
3213
3380
  """
@@ -3239,13 +3406,18 @@ def vif(
3239
3406
  "ts_sync_mode": ts_sync_mode,
3240
3407
  "enable": enable,
3241
3408
  }
3409
+ | (extra_options or {})
3242
3410
  | kwargs
3243
3411
  )
3244
3412
  return filter_node.video(0)
3245
3413
 
3246
3414
 
3247
3415
  def vstack(
3248
- *streams: VideoStream, inputs: Int = Auto("len(streams)"), shortest: Boolean = Default(False), **kwargs: Any
3416
+ *streams: VideoStream,
3417
+ inputs: Int = Auto("len(streams)"),
3418
+ shortest: Boolean = Default(False),
3419
+ extra_options: dict[str, Any] = None,
3420
+ **kwargs: Any
3249
3421
  ) -> VideoStream:
3250
3422
  """
3251
3423
 
@@ -3269,6 +3441,7 @@ def vstack(
3269
3441
  "inputs": inputs,
3270
3442
  "shortest": shortest,
3271
3443
  }
3444
+ | (extra_options or {})
3272
3445
  | kwargs
3273
3446
  )
3274
3447
  return filter_node.video(0)
@@ -3285,6 +3458,7 @@ def xcorrelate(
3285
3458
  repeatlast: Boolean = Default(True),
3286
3459
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3287
3460
  enable: String = Default(None),
3461
+ extra_options: dict[str, Any] = None,
3288
3462
  **kwargs: Any
3289
3463
  ) -> VideoStream:
3290
3464
  """
@@ -3320,6 +3494,7 @@ def xcorrelate(
3320
3494
  "ts_sync_mode": ts_sync_mode,
3321
3495
  "enable": enable,
3322
3496
  }
3497
+ | (extra_options or {})
3323
3498
  | kwargs
3324
3499
  )
3325
3500
  return filter_node.video(0)
@@ -3378,11 +3553,24 @@ def xfade(
3378
3553
  "zoomin",
3379
3554
  "fadefast",
3380
3555
  "fadeslow",
3556
+ "hlwind",
3557
+ "hrwind",
3558
+ "vuwind",
3559
+ "vdwind",
3560
+ "coverleft",
3561
+ "coverright",
3562
+ "coverup",
3563
+ "coverdown",
3564
+ "revealleft",
3565
+ "revealright",
3566
+ "revealup",
3567
+ "revealdown",
3381
3568
  ]
3382
3569
  | Default = Default("fade"),
3383
3570
  duration: Duration = Default(1.0),
3384
3571
  offset: Duration = Default(0.0),
3385
3572
  expr: String = Default(None),
3573
+ extra_options: dict[str, Any] = None,
3386
3574
  **kwargs: Any
3387
3575
  ) -> VideoStream:
3388
3576
  """
@@ -3390,7 +3578,7 @@ def xfade(
3390
3578
  Cross fade one video with another video.
3391
3579
 
3392
3580
  Args:
3393
- transition: set cross fade transition (from -1 to 45) (default fade)
3581
+ transition: set cross fade transition (from -1 to 57) (default fade)
3394
3582
  duration: set cross fade duration (default 1)
3395
3583
  offset: set cross fade start relative to first input stream (default 0)
3396
3584
  expr: set expression for custom transition
@@ -3412,6 +3600,7 @@ def xfade(
3412
3600
  "offset": offset,
3413
3601
  "expr": expr,
3414
3602
  }
3603
+ | (extra_options or {})
3415
3604
  | kwargs
3416
3605
  )
3417
3606
  return filter_node.video(0)
@@ -3427,6 +3616,7 @@ def xmedian(
3427
3616
  repeatlast: Boolean = Default(True),
3428
3617
  ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3429
3618
  enable: String = Default(None),
3619
+ extra_options: dict[str, Any] = None,
3430
3620
  **kwargs: Any
3431
3621
  ) -> VideoStream:
3432
3622
  """
@@ -3463,6 +3653,7 @@ def xmedian(
3463
3653
  "ts_sync_mode": ts_sync_mode,
3464
3654
  "enable": enable,
3465
3655
  }
3656
+ | (extra_options or {})
3466
3657
  | kwargs
3467
3658
  )
3468
3659
  return filter_node.video(0)
@@ -3475,6 +3666,7 @@ def xstack(
3475
3666
  grid: Image_size = Default(None),
3476
3667
  shortest: Boolean = Default(False),
3477
3668
  fill: String = Default("none"),
3669
+ extra_options: dict[str, Any] = None,
3478
3670
  **kwargs: Any
3479
3671
  ) -> VideoStream:
3480
3672
  """
@@ -3505,6 +3697,7 @@ def xstack(
3505
3697
  "shortest": shortest,
3506
3698
  "fill": fill,
3507
3699
  }
3700
+ | (extra_options or {})
3508
3701
  | kwargs
3509
3702
  )
3510
3703
  return filter_node.video(0)