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

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.
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)